فهرست منبع

Merge branch 'keep-some-local-variables-at-rebuild' into keep-text-scale-in-agenda-at-reload

Marco Wahl 6 سال پیش
والد
کامیت
d6ebe38e2c
1فایلهای تغییر یافته به همراه26 افزوده شده و 18 حذف شده
  1. 26 18
      lisp/org-agenda.el

+ 26 - 18
lisp/org-agenda.el

@@ -2184,29 +2184,37 @@ The following commands are available:
 
 \\{org-agenda-mode-map}"
   (interactive)
-  (cond (org-agenda-doing-sticky-redo
-	 ;; Refreshing sticky agenda-buffer
-	 ;;
-	 ;; Preserve the value of `org-agenda-local-vars' variables,
-	 ;; while letting `kill-all-local-variables' kill the rest
-	 (let ((save (buffer-local-variables)))
-	   (kill-all-local-variables)
+  (let ((agenda-local-vars-to-keep
+	 '(text-scale-mode-amount
+	   text-scale-mode
+	   text-scale-mode-lighter
+	   face-remapping-alist))
+	(save (buffer-local-variables)))
+    (kill-all-local-variables)
+    (cond (org-agenda-doing-sticky-redo
+	   ;; Refreshing sticky agenda-buffer
+	   ;;
+	   ;; Preserve the value of `org-agenda-local-vars' variables.
 	   (mapc #'make-local-variable org-agenda-local-vars)
 	   (dolist (elem save)
 	     (pcase elem
 	       (`(,var . ,val)		;ignore unbound variables
 		(when (and val (memq var org-agenda-local-vars))
-		  (set var val))))))
-	 (setq-local org-agenda-this-buffer-is-sticky t))
-	(org-agenda-sticky
-	 ;; Creating a sticky Agenda buffer for the first time
-	 (kill-all-local-variables)
-	 (mapc 'make-local-variable org-agenda-local-vars)
-	 (setq-local org-agenda-this-buffer-is-sticky t))
-	(t
-	 ;; Creating a non-sticky agenda buffer
-	 (kill-all-local-variables)
-	 (setq-local org-agenda-this-buffer-is-sticky nil)))
+		  (set var val)))))
+	   (setq-local org-agenda-this-buffer-is-sticky t))
+	  (org-agenda-sticky
+	   ;; Creating a sticky Agenda buffer for the first time
+	   (mapc 'make-local-variable org-agenda-local-vars)
+	   (setq-local org-agenda-this-buffer-is-sticky t))
+	  (t
+	   ;; Creating a non-sticky agenda buffer
+	   (setq-local org-agenda-this-buffer-is-sticky nil)))
+    (mapc #'make-local-variable agenda-local-vars-to-keep)
+    (dolist (elem save)
+      (pcase elem
+	(`(,var . ,val)		;ignore unbound variables
+	 (when (and val (memq var agenda-local-vars-to-keep))
+	   (set var val))))))
   (setq org-agenda-undo-list nil
 	org-agenda-pending-undo-list nil
 	org-agenda-bulk-marked-entries nil)