[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Orgmode] Patch for windowing problem
From: |
Bastien |
Subject: |
Re: [Orgmode] Patch for windowing problem |
Date: |
Fri, 17 Jul 2009 01:26:00 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux) |
Yes, would be nice if the Aquamacs crowd could test this!
Thanks Robert for the patch.
Robert Goldman <address@hidden> writes:
> In an earlier posting, I mentioned that I had a problem with org-mode on
> aquamacs; the cursor (really input focus) was getting "trapped" in a
> different frame when the *Calendar* buffer was not in the same frame as
> the source of the org-schedule command (either an org-mode buffer or a
> remember buffer). The attached patch to org.el fixes this problem for
> me. Would some of you all mind testing it out? It just wraps current
> frame save and pop around the use of the calendar (frames aren't managed
> by the save-excursion and save-window-excursion that already wrap this
> interaction).
>
> Thanks,
> Robert
> index feaa115..be07d58 100644
> --- a/lisp/org.el
> +++ b/lisp/org.el
> @@ -12010,6 +12010,15 @@ So these are more for recording a certain time/date."
> (defvar org-read-date-history nil)
> (defvar org-read-date-final-answer nil)
>
> +(defmacro save-frame-excursion (&rest body)
> + "Carry out some operations and then return to the currently
> +selected frame."
> + (let ((frame-var (gensym "FRAME")))
> + `(let ((,frame-var (selected-frame)))
> + (unwind-protect
> + (progn ,@body)
> + (select-frame-set-input-focus ,frame-var) ))))
> +
> (defun org-read-date (&optional with-time to-time from-string prompt
> default-time default-input)
> "Read a date, possibly a time, and make things smooth for the user.
> @@ -12088,77 +12097,78 @@ user."
> (org-read-date-popup-calendar
> (save-excursion
> (save-window-excursion
> - (calendar)
> - (calendar-forward-day (- (time-to-days def)
> - (calendar-absolute-from-gregorian
> - (calendar-current-date))))
> - (org-eval-in-calendar nil t)
> - (let* ((old-map (current-local-map))
> - (map (copy-keymap calendar-mode-map))
> - (minibuffer-local-map (copy-keymap minibuffer-local-map)))
> - (org-defkey map (kbd "RET") 'org-calendar-select)
> - (org-defkey map (if (featurep 'xemacs) [button1] [mouse-1])
> - 'org-calendar-select-mouse)
> - (org-defkey map (if (featurep 'xemacs) [button2] [mouse-2])
> - 'org-calendar-select-mouse)
> - (org-defkey minibuffer-local-map [(meta shift left)]
> - (lambda () (interactive)
> - (org-eval-in-calendar '(calendar-backward-month 1))))
> - (org-defkey minibuffer-local-map [(meta shift right)]
> - (lambda () (interactive)
> - (org-eval-in-calendar '(calendar-forward-month 1))))
> - (org-defkey minibuffer-local-map [(meta shift up)]
> - (lambda () (interactive)
> - (org-eval-in-calendar '(calendar-backward-year 1))))
> - (org-defkey minibuffer-local-map [(meta shift down)]
> - (lambda () (interactive)
> - (org-eval-in-calendar '(calendar-forward-year 1))))
> - (org-defkey minibuffer-local-map [?\e (shift left)]
> - (lambda () (interactive)
> - (org-eval-in-calendar '(calendar-backward-month 1))))
> - (org-defkey minibuffer-local-map [?\e (shift right)]
> - (lambda () (interactive)
> - (org-eval-in-calendar '(calendar-forward-month 1))))
> - (org-defkey minibuffer-local-map [?\e (shift up)]
> - (lambda () (interactive)
> - (org-eval-in-calendar '(calendar-backward-year 1))))
> - (org-defkey minibuffer-local-map [?\e (shift down)]
> - (lambda () (interactive)
> - (org-eval-in-calendar '(calendar-forward-year 1))))
> - (org-defkey minibuffer-local-map [(shift up)]
> - (lambda () (interactive)
> - (org-eval-in-calendar '(calendar-backward-week 1))))
> - (org-defkey minibuffer-local-map [(shift down)]
> - (lambda () (interactive)
> - (org-eval-in-calendar '(calendar-forward-week 1))))
> - (org-defkey minibuffer-local-map [(shift left)]
> - (lambda () (interactive)
> - (org-eval-in-calendar '(calendar-backward-day 1))))
> - (org-defkey minibuffer-local-map [(shift right)]
> - (lambda () (interactive)
> - (org-eval-in-calendar '(calendar-forward-day 1))))
> - (org-defkey minibuffer-local-map ">"
> - (lambda () (interactive)
> - (org-eval-in-calendar '(scroll-calendar-left 1))))
> - (org-defkey minibuffer-local-map "<"
> - (lambda () (interactive)
> - (org-eval-in-calendar '(scroll-calendar-right 1))))
> - (run-hooks 'org-read-date-minibuffer-setup-hook)
> - (unwind-protect
> - (progn
> - (use-local-map map)
> - (add-hook 'post-command-hook 'org-read-date-display)
> - (setq org-ans0 (read-string prompt default-input
> - 'org-read-date-history nil))
> - ;; org-ans0: from prompt
> - ;; org-ans1: from mouse click
> - ;; org-ans2: from calendar motion
> - (setq ans (concat org-ans0 " " (or org-ans1 org-ans2))))
> - (remove-hook 'post-command-hook 'org-read-date-display)
> - (use-local-map old-map)
> - (when org-read-date-overlay
> - (org-delete-overlay org-read-date-overlay)
> - (setq org-read-date-overlay nil)))))))
> + (save-frame-excursion
> + (calendar)
> + (calendar-forward-day (- (time-to-days def)
> + (calendar-absolute-from-gregorian
> + (calendar-current-date))))
> + (org-eval-in-calendar nil t)
> + (let* ((old-map (current-local-map))
> + (map (copy-keymap calendar-mode-map))
> + (minibuffer-local-map (copy-keymap minibuffer-local-map)))
> + (org-defkey map (kbd "RET") 'org-calendar-select)
> + (org-defkey map (if (featurep 'xemacs) [button1] [mouse-1])
> + 'org-calendar-select-mouse)
> + (org-defkey map (if (featurep 'xemacs) [button2] [mouse-2])
> + 'org-calendar-select-mouse)
> + (org-defkey minibuffer-local-map [(meta shift left)]
> + (lambda () (interactive)
> + (org-eval-in-calendar
> '(calendar-backward-month 1))))
> + (org-defkey minibuffer-local-map [(meta shift right)]
> + (lambda () (interactive)
> + (org-eval-in-calendar
> '(calendar-forward-month 1))))
> + (org-defkey minibuffer-local-map [(meta shift up)]
> + (lambda () (interactive)
> + (org-eval-in-calendar
> '(calendar-backward-year 1))))
> + (org-defkey minibuffer-local-map [(meta shift down)]
> + (lambda () (interactive)
> + (org-eval-in-calendar
> '(calendar-forward-year 1))))
> + (org-defkey minibuffer-local-map [?\e (shift left)]
> + (lambda () (interactive)
> + (org-eval-in-calendar
> '(calendar-backward-month 1))))
> + (org-defkey minibuffer-local-map [?\e (shift right)]
> + (lambda () (interactive)
> + (org-eval-in-calendar
> '(calendar-forward-month 1))))
> + (org-defkey minibuffer-local-map [?\e (shift up)]
> + (lambda () (interactive)
> + (org-eval-in-calendar
> '(calendar-backward-year 1))))
> + (org-defkey minibuffer-local-map [?\e (shift down)]
> + (lambda () (interactive)
> + (org-eval-in-calendar
> '(calendar-forward-year 1))))
> + (org-defkey minibuffer-local-map [(shift up)]
> + (lambda () (interactive)
> + (org-eval-in-calendar
> '(calendar-backward-week 1))))
> + (org-defkey minibuffer-local-map [(shift down)]
> + (lambda () (interactive)
> + (org-eval-in-calendar
> '(calendar-forward-week 1))))
> + (org-defkey minibuffer-local-map [(shift left)]
> + (lambda () (interactive)
> + (org-eval-in-calendar
> '(calendar-backward-day 1))))
> + (org-defkey minibuffer-local-map [(shift right)]
> + (lambda () (interactive)
> + (org-eval-in-calendar
> '(calendar-forward-day 1))))
> + (org-defkey minibuffer-local-map ">"
> + (lambda () (interactive)
> + (org-eval-in-calendar
> '(scroll-calendar-left 1))))
> + (org-defkey minibuffer-local-map "<"
> + (lambda () (interactive)
> + (org-eval-in-calendar
> '(scroll-calendar-right 1))))
> + (run-hooks 'org-read-date-minibuffer-setup-hook)
> + (unwind-protect
> + (progn
> + (use-local-map map)
> + (add-hook 'post-command-hook 'org-read-date-display)
> + (setq org-ans0 (read-string prompt default-input
> + 'org-read-date-history nil))
> + ;; org-ans0: from prompt
> + ;; org-ans1: from mouse click
> + ;; org-ans2: from calendar motion
> + (setq ans (concat org-ans0 " " (or org-ans1 org-ans2))))
> + (remove-hook 'post-command-hook 'org-read-date-display)
> + (use-local-map old-map)
> + (when org-read-date-overlay
> + (org-delete-overlay org-read-date-overlay)
> + (setq org-read-date-overlay nil))))))))
>
> (t ; Naked prompt only
> (unwind-protect
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> address@hidden
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
--
Bastien
- [Orgmode] Patch for windowing problem, Robert Goldman, 2009/07/16
- Re: [Orgmode] Patch for windowing problem,
Bastien <=
- Re: [Orgmode] Patch for windowing problem, Robert Goldman, 2009/07/16
- Re: [Orgmode] Patch for windowing problem, Bastien, 2009/07/17
- Re: [Orgmode] Patch for windowing problem, Robert Goldman, 2009/07/17
- Re: [Orgmode] Patch for windowing problem, Bastien, 2009/07/18
- Re: [Orgmode] Patch for windowing problem, Robert Goldman, 2009/07/20
- Re: [Orgmode] Patch for windowing problem, Bastien, 2009/07/20
- Re: [Orgmode] Patch for windowing problem, Robert Goldman, 2009/07/20
- Re: [Orgmode] Patch for windowing problem, Bastien, 2009/07/21
- Re: [Orgmode] Patch for windowing problem, Nick Dokos, 2009/07/22
- Re: [Orgmode] Patch for windowing problem, Bastien, 2009/07/22