emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/keycast 860b0781a4 05/10: keycast-mode-line-mode: Support


From: ELPA Syncer
Subject: [nongnu] elpa/keycast 860b0781a4 05/10: keycast-mode-line-mode: Support atomic and void global mode-line-format
Date: Mon, 5 Dec 2022 06:59:11 -0500 (EST)

branch: elpa/keycast
commit 860b0781a44b370ba5b41a80e838486325a89681
Author: Jonas Bernoulli <jonas@bernoul.li>
Commit: Jonas Bernoulli <jonas@bernoul.li>

    keycast-mode-line-mode: Support atomic and void global mode-line-format
    
    When normally not using a mode-line (e.g., because the header-line is
    used for that purpose), but the mode-line is used for keycast, then
    `keycast-mode-line-insert-after' additionally has to be set to "".
---
 keycast.el | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/keycast.el b/keycast.el
index 53c79621f6..ff8850f8e5 100644
--- a/keycast.el
+++ b/keycast.el
@@ -392,6 +392,7 @@ t to show the actual COMMAND, or a symbol to be shown 
instead."
 ;;; Mode-Line
 
 (defvar keycast--removed-tail nil)
+(defvar keycast--temporary-mode-line nil)
 
 (defalias 'keycast-mode 'keycast-mode-line-mode)
 
@@ -401,6 +402,11 @@ t to show the actual COMMAND, or a symbol to be shown 
instead."
   :global t
   (cond
    (keycast-mode-line-mode
+    (cond ((not (default-value 'mode-line-format))
+           (setq keycast--temporary-mode-line t)
+           (setq-default mode-line-format (list "")))
+          ((keycast--format-atom-p mode-line-format)
+           (setq-default mode-line-format (list "" mode-line-format))))
     (let ((cons (keycast--tree-member keycast-mode-line-insert-after
                                       (default-value 'mode-line-format))))
       (unless cons
@@ -419,13 +425,16 @@ t to show the actual COMMAND, or a symbol to be shown 
instead."
    (t
     (let ((cons (keycast--tree-member 'keycast-mode-line
                                       (default-value 'mode-line-format))))
-      (cond (keycast--removed-tail
+      (cond (keycast--temporary-mode-line
+             (setq-default mode-line-format nil)
+             (setq keycast--temporary-mode-line nil))
+            (keycast--removed-tail
              (setcar cons (car keycast--removed-tail))
-             (setcdr cons (cdr keycast--removed-tail)))
+             (setcdr cons (cdr keycast--removed-tail))
+             (setq keycast--removed-tail nil))
             (t
              (setcar cons (cadr cons))
              (setcdr cons (cddr cons)))))
-    (setq keycast--removed-tail nil)
     (unless (keycast--mode-active-p)
       (remove-hook 'post-command-hook #'keycast--update)
       (remove-hook 'minibuffer-exit-hook #'keycast--minibuffer-exit)))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]