emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/mouse.el


From: Richard M. Stallman
Subject: [Emacs-diffs] Changes to emacs/lisp/mouse.el
Date: Tue, 13 Nov 2001 21:48:17 -0500

Index: emacs/lisp/mouse.el
diff -u emacs/lisp/mouse.el:1.228 emacs/lisp/mouse.el:1.229
--- emacs/lisp/mouse.el:1.228   Fri Nov  2 02:14:16 2001
+++ emacs/lisp/mouse.el Tue Nov 13 21:48:17 2001
@@ -953,56 +953,57 @@
 (defun mouse-show-mark ()
   (if transient-mark-mode
       (delete-overlay mouse-drag-overlay)
-    (let ((inhibit-quit t)
-         (echo-keystrokes 0)
-         event events key ignore
-         x-lost-selection-hooks)
-      (add-hook 'x-lost-selection-hooks
-               (lambda (seltype)
-                 (if (eq seltype 'PRIMARY)
-                     (progn (setq ignore t)
-                            (throw 'mouse-show-mark t)))))
-      (move-overlay mouse-drag-overlay (point) (mark t))
-      (catch 'mouse-show-mark
-       ;; In this loop, execute scroll bar and switch-frame events.
-       ;; Also ignore down-events that are undefined.
-       (while (progn (setq event (read-event))
-                     (setq events (append events (list event)))
-                     (setq key (apply 'vector events))
-                     (or (and (consp event)
-                              (eq (car event) 'switch-frame))
-                         (and (consp event)
-                              (eq (posn-point (event-end event))
-                                  'vertical-scroll-bar))
-                         (and (memq 'down (event-modifiers event))
-                              (not (key-binding key))
-                              (not (mouse-undouble-last-event events))
-                              (not (member key mouse-region-delete-keys)))))
-         (and (consp event)
-              (or (eq (car event) 'switch-frame)
-                  (eq (posn-point (event-end event))
-                      'vertical-scroll-bar))
-              (let ((keys (vector 'vertical-scroll-bar event)))
-                (and (key-binding keys)
-                     (progn
-                       (call-interactively (key-binding keys)
-                                           nil keys)
-                       (setq events nil)))))))
-      ;; If we lost the selection, just turn off the highlighting.
-      (if ignore
-         nil
-       ;; For certain special keys, delete the region.
-       (if (member key mouse-region-delete-keys)
-           (delete-region (overlay-start mouse-drag-overlay)
-                          (overlay-end mouse-drag-overlay))
-         ;; Otherwise, unread the key so it gets executed normally.
-         (setq unread-command-events
-               (nconc events unread-command-events))))
-      (setq quit-flag nil)
-      (delete-overlay mouse-drag-overlay))
-    (save-excursion
-      (goto-char (mark t))
-      (sit-for 1))))
+    (if (not (display-graphic-p))
+       (save-excursion
+         (goto-char (mark t))
+         (sit-for 1))
+      (let ((inhibit-quit t)
+           (echo-keystrokes 0)
+           event events key ignore
+           x-lost-selection-hooks)
+       (add-hook 'x-lost-selection-hooks
+                 (lambda (seltype)
+                   (if (eq seltype 'PRIMARY)
+                       (progn (setq ignore t)
+                              (throw 'mouse-show-mark t)))))
+       (move-overlay mouse-drag-overlay (point) (mark t))
+       (catch 'mouse-show-mark
+         ;; In this loop, execute scroll bar and switch-frame events.
+         ;; Also ignore down-events that are undefined.
+         (while (progn (setq event (read-event))
+                       (setq events (append events (list event)))
+                       (setq key (apply 'vector events))
+                       (or (and (consp event)
+                                (eq (car event) 'switch-frame))
+                           (and (consp event)
+                                (eq (posn-point (event-end event))
+                                    'vertical-scroll-bar))
+                           (and (memq 'down (event-modifiers event))
+                                (not (key-binding key))
+                                (not (mouse-undouble-last-event events))
+                                (not (member key mouse-region-delete-keys)))))
+           (and (consp event)
+                (or (eq (car event) 'switch-frame)
+                    (eq (posn-point (event-end event))
+                        'vertical-scroll-bar))
+                (let ((keys (vector 'vertical-scroll-bar event)))
+                  (and (key-binding keys)
+                       (progn
+                         (call-interactively (key-binding keys)
+                                             nil keys)
+                         (setq events nil)))))))
+       ;; If we lost the selection, just turn off the highlighting.
+       (if ignore
+           nil
+         ;; For certain special keys, delete the region.
+         (if (member key mouse-region-delete-keys)
+             (delete-region (overlay-start mouse-drag-overlay)
+                            (overlay-end mouse-drag-overlay))
+           ;; Otherwise, unread the key so it gets executed normally.
+           (setq unread-command-events
+                 (nconc events unread-command-events))))
+       (setq quit-flag nil)
+       (delete-overlay mouse-drag-overlay)))))
 
 (defun mouse-set-mark (click)
   "Set mark at the position clicked on with the mouse.
@@ -1606,7 +1607,9 @@
     (let ((buf (x-popup-menu event menu))
          (window (posn-window (event-start event))))
       (when buf
-           (or (framep window) (select-window window))
+       (select-window
+        (if (framep window) (frame-selected-window window)
+          window))
        (switch-to-buffer buf)))))
 
 (defun mouse-buffer-menu-alist (buffers)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]