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

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

[nongnu] elpa/focus fe94e0de69 43/82: Split activation/deactivation into


From: ELPA Syncer
Subject: [nongnu] elpa/focus fe94e0de69 43/82: Split activation/deactivation into functions
Date: Tue, 6 Sep 2022 04:58:56 -0400 (EDT)

branch: elpa/focus
commit fe94e0de69dd8085eaaa71d1ca73dffa6f7a40a8
Author: Lars Tveito <larstvei@ifi.uio.no>
Commit: Lars Tveito <larstvei@ifi.uio.no>

    Split activation/deactivation into functions
---
 focus.el | 30 +++++++++++++++++++++++-------
 1 file changed, 23 insertions(+), 7 deletions(-)

diff --git a/focus.el b/focus.el
index 578243ac34..31e4b2b53c 100644
--- a/focus.el
+++ b/focus.el
@@ -197,6 +197,28 @@ This is added to the `pre-command-hook' when
           (run-at-time focus-read-only-blink-seconds nil
                        'focus-read-only-hide-cursor (current-buffer)))))
 
+(defun focus-read-only-init ()
+  "Run when `focus-read-only-mode' is activated.
+Enables `read-only-mode', hides the cursor and adds
+`focus-read-only-cursor-blink' to `pre-command-hook'. Also
+`focus-read-only-terminate' is added to the `kill-buffer-hook'."
+  (read-only-mode 1)
+  (setq cursor-type nil)
+  (add-hook 'pre-command-hook 'focus-read-only-cursor-blink nil t)
+  (add-hook 'kill-buffer-hook 'focus-read-only-terminate t))
+
+(defun focus-read-only-terminate ()
+  "Run when `focus-read-only-mode' is deactivated.
+Disables `read-only-mode' and shows the cursor again. It cleans
+up the `focus-read-only-blink-timer' and hooks."
+  (read-only-mode -1)
+  (setq cursor-type t)
+  (when focus-read-only-blink-timer
+    (cancel-timer focus-read-only-blink-timer))
+  (setq focus-read-only-blink-timer nil)
+  (remove-hook 'pre-command-hook 'focus-read-only-cursor-blink t)
+  (remove-hook 'kill-buffer-hook 'focus-read-only-terminate t))
+
 (defun turn-off-focus-read-only-mode ()
   "Turn off `focus-read-only-mode'."
   (interactive)
@@ -223,13 +245,7 @@ This is added to the `pre-command-hook' when
             (define-key map (kbd "i") 'turn-off-focus-read-only-mode)
             (define-key map (kbd "q") 'turn-off-focus-read-only-mode)
             map)
-  (read-only-mode (if focus-read-only-mode 1 -1))
-  (when focus-read-only-blink-timer (cancel-timer focus-read-only-blink-timer))
-  (setq cursor-type (not focus-read-only-mode))
-  (setq focus-read-only-blink-timer nil)
-  (remove-hook 'pre-command-hook 'focus-read-only-cursor-blink t)
-  (when focus-read-only-mode
-    (add-hook 'pre-command-hook 'focus-read-only-cursor-blink nil t)))
+  (if focus-read-only-mode (focus-read-only-init) (focus-read-only-terminate)))
 
 (provide 'focus)
 ;;; focus.el ends here



reply via email to

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