From: Martin Rudalics Date: Mon, 2 Jul 2007 05:40:12 +0000 (+0000) Subject: (mouse-drag-mode-line-1): Quit mouse tracking when X-Git-Tag: emacs-pretest-22.1.90~1309 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=20a65989fe617ef81420147ccdfb96c86b6e1b05;p=emacs.git (mouse-drag-mode-line-1): Quit mouse tracking when event is not a cons cell. Do not unread drag-mouse-1 events. Select right window in check whether space was stolen from window above. --- diff --git a/lisp/mouse.el b/lisp/mouse.el index 94d19d99a21..27b32e9f6f6 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -433,9 +433,8 @@ MODE-LINE-P non-nil means dragging a mode line; nil means a header line." ;; - there is a scroll-bar-movement event ;; (same as mouse movement for our purposes) ;; quit if - ;; - there is a keyboard event or some other unknown event - ;; unknown event. - (cond ((integerp event) + ;; - there is a keyboard event or some other unknown event. + (cond ((not (consp event)) (setq done t)) ((memq (car event) '(switch-frame select-window)) @@ -443,7 +442,11 @@ MODE-LINE-P non-nil means dragging a mode line; nil means a header line." ((not (memq (car event) '(mouse-movement scroll-bar-movement))) (when (consp event) - (push event unread-command-events)) + ;; Do not unread a drag-mouse-1 event since it will cause the + ;; selection of the window above when dragging the modeline + ;; above the selected window. + (unless (eq (car event) 'drag-mouse-1) + (push event unread-command-events))) (setq done t)) ((not (eq (car mouse) start-event-frame)) @@ -498,7 +501,10 @@ MODE-LINE-P non-nil means dragging a mode line; nil means a header line." (and (not should-enlarge-minibuffer) (> growth 0) mode-line-p - (/= top (nth 1 (window-edges))))) + (/= top + (nth 1 (window-edges + ;; Choose right window. + start-event-window))))) (set-window-configuration wconfig))))))))) (defun mouse-drag-mode-line (start-event)