diff options
author | Björn Bidar <bjorn.bidar@thaodan.de> | 2023-10-05 21:24:08 +0300 |
---|---|---|
committer | marty hiatt <martianhiatus@riseup.net> | 2023-12-31 10:59:18 +0100 |
commit | 20b41bfa9512cc643c23b8e3d8062c8bebf0be79 (patch) | |
tree | 1586b2dab05f3c61983c7c3c703f611fdcd8bea2 /lisp | |
parent | 3437dbbeeaa340e85ad1f2e9108469761c3e1aa6 (diff) |
Avoid error when there's only one window in a frame when closing window
Use `(quit-window 'kill)` instead of `(kill-buffer-and-window)` to
avoid error when there's only one window instead the frame:
`kill-buffer-and-window: Attempt to delete minibuffer or sole ordinary window`
Signed-off-by: Björn Bidar <bjorn.bidar@thaodan.de>
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/mastodon-discover.el | 4 | ||||
-rw-r--r-- | lisp/mastodon-profile.el | 7 | ||||
-rw-r--r-- | lisp/mastodon-toot.el | 3 | ||||
-rw-r--r-- | lisp/mastodon.el | 8 |
4 files changed, 16 insertions, 6 deletions
diff --git a/lisp/mastodon-discover.el b/lisp/mastodon-discover.el index 5548b29..715954f 100644 --- a/lisp/mastodon-discover.el +++ b/lisp/mastodon-discover.el @@ -35,6 +35,8 @@ (declare-function discover-add-context-menu "discover") +(autoload 'mastodon-kill-window "mastodon") + (defun mastodon-discover () "Plug Mastodon functionality into `discover'." (interactive) @@ -115,7 +117,7 @@ ("C-c C-c" "Cycle profile views" mastodon-profile--account-view-cycle)) ("Quit" ("q" "Quit mastodon and bury buffer." kill-this-buffer) - ("Q" "Quit mastodon buffer and kill window." kill-buffer-and-window) + ("Q" "Quit mastodon buffer and kill window." mastodon--kill-window) ("M-C-q" "Quit mastodon and kill all buffers." mastodon-kill-all-buffers))))))) (provide 'mastodon-discover) diff --git a/lisp/mastodon-profile.el b/lisp/mastodon-profile.el index 0d93747..22dd586 100644 --- a/lisp/mastodon-profile.el +++ b/lisp/mastodon-profile.el @@ -50,6 +50,7 @@ (autoload 'mastodon-http--patch-json "mastodon-http") (autoload 'mastodon-http--post "mastodon-http.el") (autoload 'mastodon-http--triage "mastodon-http.el") +(autoload 'mastodon-kill-window "mastodon") (autoload 'mastodon-media--get-media-link-rendering "mastodon-media.el") (autoload 'mastodon-media--inline-images "mastodon-media.el") (autoload 'mastodon-mode "mastodon.el") @@ -294,7 +295,7 @@ NO-REBLOGS means do not display boosts in statuses." "Cancel updating user profile and kill buffer and window." (interactive) (when (y-or-n-p "Cancel updating your profile note?") - (kill-buffer-and-window))) + (mastodon-kill-window))) (defun mastodon-profile--note-remove-header () "Get the body of a toot from the current compose buffer." @@ -310,9 +311,9 @@ Ask for confirmation if length > 500 characters." (url (mastodon-http--api "accounts/update_credentials"))) (if (> (mastodon-toot--count-toot-chars note) 500) (when (y-or-n-p "Note is over mastodon's max for profile notes (500). Proceed?") - (kill-buffer-and-window) + (quit-window 'kill) (mastodon-profile--user-profile-send-updated-do url note)) - (kill-buffer-and-window) + (quit-window 'kill) (mastodon-profile--user-profile-send-updated-do url note)))) (defun mastodon-profile--user-profile-send-updated-do (url note) diff --git a/lisp/mastodon-toot.el b/lisp/mastodon-toot.el index c96ee5b..c26db1e 100644 --- a/lisp/mastodon-toot.el +++ b/lisp/mastodon-toot.el @@ -64,6 +64,7 @@ (autoload 'mastodon-http--put "mastodon-http") (autoload 'mastodon-http--read-file-as-string "mastodon-http") (autoload 'mastodon-http--triage "mastodon-http") +(autoload 'mastodon-kill-window "mastodon") (autoload 'mastodon-profile--fetch-server-account-settings "mastodon-profile") (autoload 'mastodon-profile--fetch-server-account-settings-maybe "mastodon-profile") (autoload 'mastodon-profile--get-source-pref "mastodon-profile") @@ -682,7 +683,7 @@ CANCEL means the toot was not sent, so we save the toot text as a draft." mastodon-toot-draft-toots-list :test 'equal))) ;; prevent some weird bug when cancelling a non-empty toot: (delete #'mastodon-toot--save-toot-text after-change-functions) - (kill-buffer-and-window) + (quit-window 'kill) (mastodon-toot--restore-previous-window-config prev-window-config))) (defun mastodon-toot--cancel () diff --git a/lisp/mastodon.el b/lisp/mastodon.el index acd1462..bac4d67 100644 --- a/lisp/mastodon.el +++ b/lisp/mastodon.el @@ -142,6 +142,12 @@ The default value \"%F %T\" prints ISO8601-style YYYY-mm-dd HH:MM:SS. Use. e.g. \"%c\" for your locale's date and time format." :type 'string) + +(defun mastodon-kill-window () + "Quit window and delete helper." + (interactive) + (quit-window 'kill)) + (defvar mastodon-mode-map (let ((map (make-sparse-keymap))) ;; navigation inside a timeline @@ -169,7 +175,7 @@ Use. e.g. \"%c\" for your locale's date and time format." (define-key map (kbd "/") #'mastodon-switch-to-buffer) ;; quitting mastodon (define-key map (kbd "q") #'kill-current-buffer) - (define-key map (kbd "Q") #'kill-buffer-and-window) + (define-key map (kbd "Q") #'mastodon-kill-window) (define-key map (kbd "M-C-q") #'mastodon-kill-all-buffers) ;; toot actions (define-key map (kbd "c") #'mastodon-tl--toggle-spoiler-text-in-toot) |