mirror of
https://codeberg.org/scip/novel-mode.git
synced 2025-12-16 20:10:59 +01:00
better restore of previous states
This commit is contained in:
@@ -143,12 +143,13 @@
|
|||||||
:link '(url-link :tag "Repository" "https://github.com/tlinden/novel-mode"))
|
:link '(url-link :tag "Repository" "https://github.com/tlinden/novel-mode"))
|
||||||
|
|
||||||
;; various vars to remember previous states
|
;; various vars to remember previous states
|
||||||
(defconst novel--mlf mode-line-format)
|
(defvar novel--mlf nil)
|
||||||
(defconst novel--vlm visual-line-mode)
|
(defvar novel--vlm nil)
|
||||||
(defconst novel--ww word-wrap)
|
(defvar novel--ww nil)
|
||||||
(defconst novel--mbm menu-bar-mode)
|
(defvar novel--mbm nil)
|
||||||
(defconst novel--tbm tool-bar-mode)
|
(defvar novel--tbm nil)
|
||||||
(defconst novel--sbm scroll-bar-mode)
|
(defvar novel--sbm nil)
|
||||||
|
(defvar novel--ct nil)
|
||||||
|
|
||||||
;; set on startup
|
;; set on startup
|
||||||
(defvar novel--max-margin nil)
|
(defvar novel--max-margin nil)
|
||||||
@@ -216,6 +217,18 @@ COMMANDS is a list of alternating OLDDEF NEWDEF command names."
|
|||||||
(novel--defkey map (vector 'remap old) new)
|
(novel--defkey map (vector 'remap old) new)
|
||||||
(substitute-key-definition old new map global-map)))))
|
(substitute-key-definition old new map global-map)))))
|
||||||
|
|
||||||
|
(defun novel--backup-states()
|
||||||
|
"Store current states in variables for later restoration"
|
||||||
|
;; various vars to remember previous states
|
||||||
|
(setq novel--mlf mode-line-format
|
||||||
|
novel--vlm visual-line-mode
|
||||||
|
novel--ww word-wrap
|
||||||
|
novel--mbm menu-bar-mode
|
||||||
|
novel--tbm tool-bar-mode
|
||||||
|
novel--ct cursor-type
|
||||||
|
novel--sbm scroll-bar-mode))
|
||||||
|
|
||||||
|
|
||||||
;;;; Hooks:
|
;;;; Hooks:
|
||||||
|
|
||||||
(defvar novel-mode-pre-start-hook ()
|
(defvar novel-mode-pre-start-hook ()
|
||||||
@@ -300,6 +313,7 @@ COMMANDS is a list of alternating OLDDEF NEWDEF command names."
|
|||||||
(if (null (get this-command 'state-on-p))
|
(if (null (get this-command 'state-on-p))
|
||||||
;; enable, primary novel mode setup
|
;; enable, primary novel mode setup
|
||||||
(progn
|
(progn
|
||||||
|
(novel--backup-states)
|
||||||
(run-hooks 'novel-mode-pre-start-hook)
|
(run-hooks 'novel-mode-pre-start-hook)
|
||||||
|
|
||||||
(setq novel--max-margin (/ (- (window-body-width) 40) 2))
|
(setq novel--max-margin (/ (- (window-body-width) 40) 2))
|
||||||
@@ -340,25 +354,21 @@ COMMANDS is a list of alternating OLDDEF NEWDEF command names."
|
|||||||
(setq scroll-step 0
|
(setq scroll-step 0
|
||||||
scroll-conservatively 0
|
scroll-conservatively 0
|
||||||
line-spacing nil
|
line-spacing nil
|
||||||
cursor-type 'box
|
cursor-type novel--ct
|
||||||
mode-line-format novel--mlf
|
mode-line-format novel--mlf
|
||||||
visual-line-mode novel--vlm
|
visual-line-mode novel--vlm
|
||||||
word-wrap novel--ww
|
word-wrap novel--ww
|
||||||
)
|
menu-bar-mode novel--mbm
|
||||||
|
tool-bar-mode novel--tbm
|
||||||
|
scroll-bar-mode novel--sbm)
|
||||||
|
|
||||||
|
(set-fringe-mode 1)
|
||||||
(set-window-margins nil 0 0)
|
(set-window-margins nil 0 0)
|
||||||
(variable-pitch-mode 0)
|
(variable-pitch-mode 0)
|
||||||
(text-scale-increase -2)
|
(text-scale-increase -2)
|
||||||
|
|
||||||
(put this-command 'state-on-p nil)
|
(put this-command 'state-on-p nil)
|
||||||
|
|
||||||
(menu-bar-mode novel--mbm)
|
|
||||||
(tool-bar-mode novel--tbm)
|
|
||||||
(scroll-bar-mode novel--sbm)
|
|
||||||
(set-fringe-mode 1)
|
|
||||||
|
|
||||||
(novel--reset-remap-self-insert)
|
(novel--reset-remap-self-insert)
|
||||||
|
|
||||||
(if (not novel--invert-state)
|
(if (not novel--invert-state)
|
||||||
(novel-invert))
|
(novel-invert))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user