Explorar el Código

org-agenda-sticky: Make customizing it call `org-toggle-sticky-agenda'

Max Mikhanosha hace 14 años
padre
commit
86dd7d27a3
Se han modificado 1 ficheros con 17 adiciones y 9 borrados
  1. 17 9
      lisp/org-agenda.el

+ 17 - 9
lisp/org-agenda.el

@@ -1816,23 +1816,31 @@ works you probably want to add it to `org-agenda-custom-commands' for good."
 
 
 ;;; Multiple agenda buffers support
 ;;; Multiple agenda buffers support
 
 
+(defun org-toggle-sticky-agenda (&optional arg)
+  "Toggle `org-agenda-sticky'."
+  (interactive "P")
+  (let ((new-value (if arg (> (prefix-numeric-value arg) 0)
+		     (not org-agenda-sticky))))
+    (if (equal new-value org-agenda-sticky)
+	(message "Sticky agenda was already %s"
+		 (if org-agenda-sticky "enabled" "disabled"))
+      (setq org-agenda-sticky new-value)
+      (org-agenda-kill-all-agenda-buffers)
+      (message "Sticky agenda was %s" (if org-agenda-sticky "enabled" "disabled")))))
+
+(defvar org-agenda-sticky nil)
 (defcustom org-agenda-sticky nil
 (defcustom org-agenda-sticky nil
-   "Non-nil means agenda q key will bury agenda buffers.
+  "Non-nil means agenda q key will bury agenda buffers.
 Agenda commands will then show existing buffer instead of generating new ones.
 Agenda commands will then show existing buffer instead of generating new ones.
 When nil, `q' will kill the single agenda buffer."
 When nil, `q' will kill the single agenda buffer."
   :group 'org-agenda
   :group 'org-agenda
-  :type 'boolean)
+  :type 'boolean
+  :set (lambda (var val)
+	 (org-toggle-sticky-agenda (if val 1 0))))
 
 
 (defvar org-agenda-buffer nil
 (defvar org-agenda-buffer nil
   "Agenda buffer currently being generated.")
   "Agenda buffer currently being generated.")
 
 
-(defun org-toggle-sticky-agenda (&optional arg)
-  "Toggle `org-agenda-sticky'."
-  (interactive)
-  (setq org-agenda-sticky (or arg (not org-agenda-sticky)))
-  (org-agenda-kill-all-agenda-buffers)
-  (message "Sticky agenda was %s" (if org-agenda-sticky "enabled" "disabled")))
-
 (defvar org-agenda-last-prefix-arg nil)
 (defvar org-agenda-last-prefix-arg nil)
 (defvar org-agenda-this-buffer-name nil)
 (defvar org-agenda-this-buffer-name nil)
 (defvar org-agenda-doing-sticky-redo nil)
 (defvar org-agenda-doing-sticky-redo nil)