diff lisp/mouse-sel.el @ 89909:68c22ea6027c

Sync to HEAD
author Kenichi Handa <handa@m17n.org>
date Fri, 16 Apr 2004 12:51:06 +0000
parents 375f2633d815
children 0fe073a08cef
line wrap: on
line diff
--- a/lisp/mouse-sel.el	Thu Apr 15 01:08:34 2004 +0000
+++ b/lisp/mouse-sel.el	Fri Apr 16 12:51:06 2004 +0000
@@ -196,6 +196,9 @@
 
 ;;=== User Command ========================================================
 
+(defvar mouse-sel-has-been-enabled nil
+  "Non-nil if Mouse Sel mode has been enabled at least once.")
+
 (defvar mouse-sel-original-bindings nil)
 (defvar mouse-sel-original-interprogram-cut-function nil)
 (defvar mouse-sel-original-interprogram-paste-function nil)
@@ -252,7 +255,8 @@
 	  (setq mouse-sel-original-interprogram-cut-function
 		interprogram-cut-function
 		mouse-sel-original-interprogram-paste-function
-		interprogram-paste-function)
+		interprogram-paste-function
+		mouse-sel-has-been-enabled t)
 	  (unless (eq mouse-sel-default-bindings 'interprogram-cut-paste)
 	    (setq interprogram-cut-function nil
 		  interprogram-paste-function nil))))
@@ -261,10 +265,13 @@
     (remove-hook 'x-lost-selection-hooks 'mouse-sel-lost-selection-hook)
     (dolist (binding mouse-sel-original-bindings)
       (global-set-key (car binding) (cdr binding)))
-    (setq interprogram-cut-function
-          mouse-sel-original-interprogram-cut-function
-          interprogram-paste-function
-          mouse-sel-original-interprogram-paste-function)))
+    ;; Restore the old values of these variables,
+    ;; only if they were actually saved previously.
+    (if mouse-sel-has-been-enabled
+	(setq interprogram-cut-function
+	      mouse-sel-original-interprogram-cut-function
+	      interprogram-paste-function
+	      mouse-sel-original-interprogram-paste-function))))
 
 ;;=== Internal Variables/Constants ========================================
 
@@ -704,4 +711,5 @@
 
 (provide 'mouse-sel)
 
+;;; arch-tag: 86e6c73f-deaa-48d3-a24e-c565fda1f7d7
 ;;; mouse-sel.el ends here