From: Glenn Morris Date: Thu, 26 Jun 2008 04:54:37 +0000 (+0000) Subject: (calendar-cursor-holidays): Handle mouse events. X-Git-Tag: emacs-pretest-23.0.90~4481 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=3b7de42e679ad9647d246cd12d0974a7eff9f672;p=emacs.git (calendar-cursor-holidays): Handle mouse events. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 0dcebf8ca69..df9749c1d94 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,12 +1,10 @@ 2008-06-26 Kenichi Handa - * composite.el (terminal-composition-base-character-p): New - funciton. - (terminal-composition-function): Use - terminal-composition-base-character-p. Include the base character + * composite.el (terminal-composition-base-character-p): New function. + (terminal-composition-function): + Use terminal-composition-base-character-p. Include the base character in the composition. - (auto-compose-chars): Don't check font-object for terminal - display. + (auto-compose-chars): Don't check font-object for terminal display. 2008-06-26 Glenn Morris @@ -29,6 +27,10 @@ * calendar/cal-menu.el (calendar-mouse-print-dates): Remove function. (cal-menu-context-mouse-menu): Use calendar-print-other-dates. + * calendar/holidays.el (calendar-cursor-holidays): Handle mouse events. + * calendar/cal-menu.el (calendar-mouse-holidays): Remove function. + (cal-menu-context-mouse-menu): Use calendar-cursor-holidays. + * calendar/cal-move.el (calendar-cursor-to-nearest-date): Use calendar-column-to-segment, calendar-month-edges, and the 'date property to handle intermonth text. diff --git a/lisp/calendar/holidays.el b/lisp/calendar/holidays.el index 5ddc587dcc6..8b554e05825 100644 --- a/lisp/calendar/holidays.el +++ b/lisp/calendar/holidays.el @@ -625,25 +625,34 @@ The holidays are those in the list `calendar-holidays'." 'check-calendar-holidays 'calendar-check-holidays "23.1") ;;;###cal-autoload -(defun calendar-cursor-holidays (&optional date) +(defun calendar-cursor-holidays (&optional date event) "Find holidays for the date specified by the cursor in the calendar window. Optional DATE is a list (month day year) to use instead of the -cursor position." - (interactive) +cursor position. EVENT specifies a buffer position to use for a date." + (interactive (list nil last-nonmenu-event)) (message "Checking holidays...") - (or date (setq date (calendar-cursor-to-date t))) - (let* ((date-string (calendar-date-string date)) - (holiday-list (calendar-check-holidays date)) - (holiday-string (mapconcat 'identity holiday-list "; ")) - (msg (format "%s: %s" date-string holiday-string))) + (or date (setq date (calendar-cursor-to-date t event))) + (let ((date-string (calendar-date-string date)) + (holiday-list (calendar-check-holidays date)) + selection msg) + (if (mouse-event-p event) + (and (setq selection (cal-menu-x-popup-menu event + (format "Holidays for %s" date-string) + (if holiday-list + (mapcar 'list holiday-list) + '("None")))) + (call-interactively selection)) (if (not holiday-list) (message "No holidays known for %s" date-string) - (if (<= (length msg) (frame-width)) + (if (<= (length (setq msg + (format "%s: %s" date-string + (mapconcat 'identity holiday-list "; ")))) + (frame-width)) (message "%s" msg) (calendar-in-read-only-buffer holiday-buffer (calendar-set-mode-line date-string) (insert (mapconcat 'identity holiday-list "\n"))) - (message "Checking holidays...done"))))) + (message "Checking holidays...done")))))) ;; FIXME move to calendar? ;;;###cal-autoload