]> git.eshelyaron.com Git - emacs.git/commitdiff
(win32-handle-scroll-bar-event): Restore
authorKarl Heuer <kwzh@gnu.org>
Tue, 21 May 1996 14:40:56 +0000 (14:40 +0000)
committerKarl Heuer <kwzh@gnu.org>
Tue, 21 May 1996 14:40:56 +0000 (14:40 +0000)
original window selection after scrolling.

lisp/term/w32-win.el

index d5da3ab9f7ed3063cea370c36b647e8854d199a4..559075cf3135cf21bfa7c617f0cee57864b75569 100644 (file)
 (defun win32-handle-scroll-bar-event (event)
   "Handle Win32 scroll bar events to do normal Window style scrolling."
   (interactive "e")
-  (let* ((position (event-start event))
-        (window (nth 0 position))
-        (portion-whole (nth 2 position))
-        (bar-part (nth 4 position)))
-    (save-excursion
-      (select-window window)
-      (cond
-       ((eq bar-part 'up)
-       (scroll-down 1))
-       ((eq bar-part 'above-handle)
-       (scroll-down))
-       ((eq bar-part 'handle)
-       (scroll-bar-maybe-set-window-start event))
-       ((eq bar-part 'below-handle)
-       (scroll-up))
-       ((eq bar-part 'down)
-       (scroll-up 1))
-       ))))
+  (let ((old-window (selected-window)))
+    (unwind-protect
+       (let* ((position (event-start event))
+              (window (nth 0 position))
+              (portion-whole (nth 2 position))
+              (bar-part (nth 4 position)))
+         (save-excursion
+           (select-window window)
+           (cond
+            ((eq bar-part 'up)
+             (scroll-down 1))
+            ((eq bar-part 'above-handle)
+             (scroll-down))
+            ((eq bar-part 'handle)
+             (scroll-bar-maybe-set-window-start event))
+            ((eq bar-part 'below-handle)
+             (scroll-up))
+            ((eq bar-part 'down)
+             (scroll-up 1))
+            )))
+      (select-window old-window))))
 
 ;; The following definition is used for debugging.
 ;(defun win32-handle-scroll-bar-event (event) (interactive "e") (princ event))