branch: externals/objed commit 828037d55af1854c8bc4575c6cfc564f8fd0c315 Author: Clemens Radermacher <clem...@posteo.net> Commit: Clemens Radermacher <clem...@posteo.net>
Improve init/reset checks --- objed.el | 43 +++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/objed.el b/objed.el index 11c8dca..68d7425 100644 --- a/objed.el +++ b/objed.el @@ -1250,22 +1250,26 @@ See `objed-cmd-alist'." (defun objed-init-p () "Default for `objed-init-p-function'." - (and (eq (key-binding (kbd "C-n")) - #'next-line) - (not (minibufferp)) - (not (active-minibuffer-window)) - (not (and (bobp) - (bound-and-true-p git-commit-mode))) - (not (derived-mode-p 'comint-mode)) - (not (and (bobp) (eobp))) - ;; only for modes which do not - ;; their their own modal setup - (or (memq (key-binding "f") - '(self-insert-command - org-self-insert-command - outshine-self-insert-command - outline-self-insert-command - undefined))))) + (when (window-live-p (get-buffer-window)) + (with-current-buffer (window-buffer (selected-window)) + (and (eq (key-binding (kbd "C-n")) + #'next-line) + (eq (key-binding "n") + #'self-insert-command) + (not (minibufferp)) + (not (active-minibuffer-window)) + (not (and (bobp) + (bound-and-true-p git-commit-mode))) + (not (derived-mode-p 'comint-mode)) + (not (and (bobp) (eobp))) + ;; only for modes which do not + ;; their their own modal setup + (or (memq (key-binding "f") + '(self-insert-command + org-self-insert-command + outshine-self-insert-command + outline-self-insert-command + undefined))))))) (defun objed--init (&optional sym) "Initialize `objed'. @@ -3623,10 +3627,9 @@ If region is active deactivate it first." Resets objed if appropriate." (unless (or objed--with-allow-input (not objed--buffer)) - (when (not (eq (current-buffer) objed--buffer)) - (objed--reset--objed-buffer) - (select-window (get-buffer-window (current-buffer)) t) - (objed--init (or objed--object 'char))))) + (when (or (not (eq (current-buffer) objed--buffer)) + (not (get-buffer-window (current-buffer)))) + (objed--reset--objed-buffer)))) (defun objed--reset--objed-buffer () "Reset `objed--buffer'."