From 3f0f17000d1e4f5adca285ab28c67c1de86589f3 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Tue, 5 Apr 2011 19:05:45 -0700 Subject: [PATCH] Calendar fix for scroll-bar scrolling (b#8305). * lisp/calendar/cal-move.el (calendar-scroll-toolkit-scroll): New function. * lisp/calendar/calendar.el (calendar-mode-map): Check for toolkit scroll bars. --- lisp/ChangeLog | 6 ++++++ lisp/calendar/cal-move.el | 12 ++++++++++++ lisp/calendar/calendar.el | 17 ++++++++++------- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e98451a6909..072f35e528a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2011-04-06 Glenn Morris + + * calendar/cal-move.el (calendar-scroll-toolkit-scroll): New function. + * calendar/calendar.el (calendar-mode-map): + Check for toolkit scroll bars. (Bug#8305) + 2011-04-05 Chong Yidong * minibuffer.el (completion-in-region--postch) diff --git a/lisp/calendar/cal-move.el b/lisp/calendar/cal-move.el index c13a9a0a73a..72b34beda6b 100644 --- a/lisp/calendar/cal-move.el +++ b/lisp/calendar/cal-move.el @@ -204,6 +204,18 @@ EVENT is an event like `last-nonmenu-event'." (define-obsolete-function-alias 'scroll-calendar-left-three-months 'calendar-scroll-left-three-months "23.1") +;; cf scroll-bar-toolkit-scroll +;;;###cal-autoload +(defun calendar-scroll-toolkit-scroll (event) + "Function to scroll the calendar after a toolkit scroll-bar click." + (interactive "e") + (let ((part (nth 4 (event-end event)))) + ;; Not bothering with drag events (handle, end-scroll). + (cond ((memq part '(above-handle up top)) + (calendar-scroll-right nil event)) + ((memq part '(below-handle down bottom)) + (calendar-scroll-left nil event))))) + ;;;###cal-autoload (defun calendar-scroll-right-three-months (arg &optional event) "Scroll the displayed calendar window right by 3*ARG months. diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el index a4e53670530..99b0c21c94c 100644 --- a/lisp/calendar/calendar.el +++ b/lisp/calendar/calendar.el @@ -1648,14 +1648,17 @@ line." (define-key map [down-mouse-2] (easy-menu-binding cal-menu-global-mouse-menu)) - ;; Left-click moves us forward in time, right-click backwards. ;; cf scroll-bar.el. - (define-key map [vertical-scroll-bar mouse-1] 'calendar-scroll-left) - (define-key map [vertical-scroll-bar drag-mouse-1] 'calendar-scroll-left) - ;; down-mouse-2 stays as scroll-bar-drag. - (define-key map [vertical-scroll-bar mouse-3] 'calendar-scroll-right) - (define-key map [vertical-scroll-bar drag-mouse-3] 'calendar-scroll-right) - + (if (and (boundp 'x-toolkit-scroll-bars) x-toolkit-scroll-bars) + (define-key map [vertical-scroll-bar mouse-1] + 'calendar-scroll-toolkit-scroll) + ;; Left-click moves us forward in time, right-click backwards. + (define-key map [vertical-scroll-bar mouse-1] 'calendar-scroll-left) + (define-key map [vertical-scroll-bar drag-mouse-1] 'calendar-scroll-left) + ;; down-mouse-2 stays as scroll-bar-drag. + (define-key map [vertical-scroll-bar mouse-3] 'calendar-scroll-right) + (define-key map [vertical-scroll-bar drag-mouse-3] + 'calendar-scroll-right)) map) "Keymap for `calendar-mode'.") -- 2.11.4.GIT