diff options
| -rw-r--r-- | lisp/term/w32-win.el | 39 |
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)) |