comparison lisp/mouse.el @ 59470:f009f3970cd9

(mouse-drag-mode-line-1, mouse-drag-vertical-line, mouse-drag-region) (mouse-drag-region-1, mouse-drag-secondary): Ignore select-window events rather than fiddle with mouse-autoselect-window.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Tue, 11 Jan 2005 15:36:57 +0000
parents e070d86ca060
children e13b943b7f9a
comparison
equal deleted inserted replaced
59469:8507e984115b 59470:f009f3970cd9
1 ;;; mouse.el --- window system-independent mouse support 1 ;;; mouse.el --- window system-independent mouse support
2 2
3 ;; Copyright (C) 1993, 94, 95, 1999, 2000, 2001, 2002, 2003, 2004 3 ;; Copyright (C) 1993, 94, 95, 1999, 2000, 2001, 2002, 2003, 2004, 2005
4 ;; Free Software Foundation, Inc. 4 ;; Free Software Foundation, Inc.
5 5
6 ;; Maintainer: FSF 6 ;; Maintainer: FSF
7 ;; Keywords: hardware, mouse 7 ;; Keywords: hardware, mouse
8 8
395 (start-event-window (posn-window start)) 395 (start-event-window (posn-window start))
396 (start-event-frame (window-frame start-event-window)) 396 (start-event-frame (window-frame start-event-window))
397 (start-nwindows (count-windows t)) 397 (start-nwindows (count-windows t))
398 (old-selected-window (selected-window)) 398 (old-selected-window (selected-window))
399 (minibuffer (frame-parameter nil 'minibuffer)) 399 (minibuffer (frame-parameter nil 'minibuffer))
400 (mouse-autoselect-window nil)
401 should-enlarge-minibuffer event mouse y top bot edges wconfig growth) 400 should-enlarge-minibuffer event mouse y top bot edges wconfig growth)
402 (track-mouse 401 (track-mouse
403 (progn 402 (progn
404 ;; enlarge-window only works on the selected window, so 403 ;; enlarge-window only works on the selected window, so
405 ;; we must select the window where the start event originated. 404 ;; we must select the window where the start event originated.
433 ;; - there is a keyboard event or some other unknown event 432 ;; - there is a keyboard event or some other unknown event
434 ;; unknown event. 433 ;; unknown event.
435 (cond ((integerp event) 434 (cond ((integerp event)
436 (setq done t)) 435 (setq done t))
437 436
438 ((eq (car event) 'switch-frame) 437 ((memq (car event) '(switch-frame select-window))
439 nil) 438 nil)
440 439
441 ((not (memq (car event) '(mouse-movement scroll-bar-movement))) 440 ((not (memq (car event) '(mouse-movement scroll-bar-movement)))
442 (when (consp event) 441 (when (consp event)
443 (push event unread-command-events)) 442 (push event unread-command-events))
580 ;; quit if 579 ;; quit if
581 ;; - there is a keyboard event or some other unknown event 580 ;; - there is a keyboard event or some other unknown event
582 ;; unknown event. 581 ;; unknown event.
583 (cond ((integerp event) 582 (cond ((integerp event)
584 (setq done t)) 583 (setq done t))
585 ((eq (car event) 'switch-frame) 584 ((memq (car event) '(switch-frame select-window))
586 nil) 585 nil)
587 ((not (memq (car event) 586 ((not (memq (car event)
588 '(mouse-movement scroll-bar-movement))) 587 '(mouse-movement scroll-bar-movement)))
589 (if (consp event) 588 (if (consp event)
590 (setq unread-command-events 589 (setq unread-command-events
752 In Transient Mark mode, the highlighting remains as long as the mark 751 In Transient Mark mode, the highlighting remains as long as the mark
753 remains active. Otherwise, it remains until the next input event. 752 remains active. Otherwise, it remains until the next input event.
754 753
755 If the click is in the echo area, display the `*Messages*' buffer." 754 If the click is in the echo area, display the `*Messages*' buffer."
756 (interactive "e") 755 (interactive "e")
757 (let ((w (posn-window (event-start start-event))) 756 (let ((w (posn-window (event-start start-event))))
758 (mouse-autoselect-window nil)) 757 (if (and (window-minibuffer-p w)
759 (if (not (or (not (window-minibuffer-p w)) 758 (not (minibuffer-window-active-p w)))
760 (minibuffer-window-active-p w)))
761 (save-excursion 759 (save-excursion
762 (read-event) 760 (read-event)
763 (set-buffer "*Messages*") 761 (set-buffer "*Messages*")
764 (goto-char (point-max)) 762 (goto-char (point-max))
765 (display-buffer (current-buffer))) 763 (display-buffer (current-buffer)))
856 (let (event end end-point last-end-point (end-of-range (point))) 854 (let (event end end-point last-end-point (end-of-range (point)))
857 (track-mouse 855 (track-mouse
858 (while (progn 856 (while (progn
859 (setq event (read-event)) 857 (setq event (read-event))
860 (or (mouse-movement-p event) 858 (or (mouse-movement-p event)
861 (eq (car-safe event) 'switch-frame))) 859 (memq (car-safe event) '(switch-frame select-window))))
862 (if (eq (car-safe event) 'switch-frame) 860 (if (memq (car-safe event) '(switch-frame select-window))
863 nil 861 nil
864 (setq end (event-end event) 862 (setq end (event-end event)
865 end-point (posn-point end)) 863 end-point (posn-point end))
866 (if (numberp end-point) 864 (if (numberp end-point)
867 (setq last-end-point end-point)) 865 (setq last-end-point end-point))
1151 (if transient-mark-mode 1149 (if transient-mark-mode
1152 (delete-overlay mouse-drag-overlay) 1150 (delete-overlay mouse-drag-overlay)
1153 (move-overlay mouse-drag-overlay (point) (mark t))) 1151 (move-overlay mouse-drag-overlay (point) (mark t)))
1154 (catch 'mouse-show-mark 1152 (catch 'mouse-show-mark
1155 ;; In this loop, execute scroll bar and switch-frame events. 1153 ;; In this loop, execute scroll bar and switch-frame events.
1154 ;; Should we similarly handle `select-window' events? --Stef
1156 ;; Also ignore down-events that are undefined. 1155 ;; Also ignore down-events that are undefined.
1157 (while (progn (setq event (read-event)) 1156 (while (progn (setq event (read-event))
1158 (setq events (append events (list event))) 1157 (setq events (append events (list event)))
1159 (setq key (apply 'vector events)) 1158 (setq key (apply 'vector events))
1160 (or (and (consp event) 1159 (or (and (consp event)
1474 (let (event end end-point) 1473 (let (event end end-point)
1475 (track-mouse 1474 (track-mouse
1476 (while (progn 1475 (while (progn
1477 (setq event (read-event)) 1476 (setq event (read-event))
1478 (or (mouse-movement-p event) 1477 (or (mouse-movement-p event)
1479 (eq (car-safe event) 'switch-frame))) 1478 (memq (car-safe event) '(switch-frame select-window))))
1480 1479
1481 (if (eq (car-safe event) 'switch-frame) 1480 (if (memq (car-safe event) '(switch-frame select-window))
1482 nil 1481 nil
1483 (setq end (event-end event) 1482 (setq end (event-end event)
1484 end-point (posn-point end)) 1483 end-point (posn-point end))
1485 (cond 1484 (cond
1486 ;; Are we moving within the original window? 1485 ;; Are we moving within the original window?