aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl Heuer1996-05-21 14:40:56 +0000
committerKarl Heuer1996-05-21 14:40:56 +0000
commitcaf9b328c30608c3603d958d82c5899cd1645f8b (patch)
tree9d44cb722771072a8562f57ce8832755474f3541
parent9c005c6533576cd20c393cf7ea6e9eae11ef15ba (diff)
downloademacs-caf9b328c30608c3603d958d82c5899cd1645f8b.tar.gz
emacs-caf9b328c30608c3603d958d82c5899cd1645f8b.zip
(win32-handle-scroll-bar-event): Restore
original window selection after scrolling.
-rw-r--r--lisp/term/w32-win.el39
1 files changed, 21 insertions, 18 deletions
diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el
index d5da3ab9f7e..559075cf313 100644
--- a/lisp/term/w32-win.el
+++ b/lisp/term/w32-win.el
@@ -84,24 +84,27 @@
84(defun win32-handle-scroll-bar-event (event) 84(defun win32-handle-scroll-bar-event (event)
85 "Handle Win32 scroll bar events to do normal Window style scrolling." 85 "Handle Win32 scroll bar events to do normal Window style scrolling."
86 (interactive "e") 86 (interactive "e")
87 (let* ((position (event-start event)) 87 (let ((old-window (selected-window)))
88 (window (nth 0 position)) 88 (unwind-protect
89 (portion-whole (nth 2 position)) 89 (let* ((position (event-start event))
90 (bar-part (nth 4 position))) 90 (window (nth 0 position))
91 (save-excursion 91 (portion-whole (nth 2 position))
92 (select-window window) 92 (bar-part (nth 4 position)))
93 (cond 93 (save-excursion
94 ((eq bar-part 'up) 94 (select-window window)
95 (scroll-down 1)) 95 (cond
96 ((eq bar-part 'above-handle) 96 ((eq bar-part 'up)
97 (scroll-down)) 97 (scroll-down 1))
98 ((eq bar-part 'handle) 98 ((eq bar-part 'above-handle)
99 (scroll-bar-maybe-set-window-start event)) 99 (scroll-down))
100 ((eq bar-part 'below-handle) 100 ((eq bar-part 'handle)
101 (scroll-up)) 101 (scroll-bar-maybe-set-window-start event))
102 ((eq bar-part 'down) 102 ((eq bar-part 'below-handle)
103 (scroll-up 1)) 103 (scroll-up))
104 )))) 104 ((eq bar-part 'down)
105 (scroll-up 1))
106 )))
107 (select-window old-window))))
105 108
106;; The following definition is used for debugging. 109;; The following definition is used for debugging.
107;(defun win32-handle-scroll-bar-event (event) (interactive "e") (princ event)) 110;(defun win32-handle-scroll-bar-event (event) (interactive "e") (princ event))