Check buffer mode in exwm-reset

This should prevent users from misoperation.
This commit is contained in:
Chris Feng 2015-08-06 14:41:28 +08:00
parent 3fb90b9eaa
commit 1e36a22b3f
2 changed files with 5 additions and 8 deletions

View file

@ -111,11 +111,7 @@ The optional FORCE option is for internal use only."
(unless (and (<= 0 index) (< index exwm-workspace-number))
(user-error "[EXWM] Workspace index out of range: %d" index))
(when (or force (/= exwm-workspace-current-index index))
;; Exit fullscreen mode
(with-current-buffer (window-buffer)
(when (and (eq major-mode 'exwm-mode) exwm--fullscreen)
(exwm-layout-unset-fullscreen)
(exwm-input-grab-keyboard)))
(exwm-reset) ;exit full screen
(let ((frame (elt exwm-workspace--list index)))
(setq exwm-workspace--current frame
exwm-workspace-current-index index)

View file

@ -195,9 +195,10 @@
(defun exwm-reset ()
"Reset window to standard state: non-fullscreen, line-mode."
(interactive)
(with-current-buffer (window-buffer (selected-window))
(when exwm--fullscreen (exwm-layout-unset-fullscreen))
(exwm-input-grab-keyboard)))
(with-current-buffer (window-buffer)
(when (and (eq major-mode 'exwm-mode) exwm--fullscreen)
(exwm-layout-unset-fullscreen)
(exwm-input-grab-keyboard))))
(defmacro exwm--with-current-id (id &rest body)
"Evaluate BODY in the context of the buffer corresponding to window ID."