about summary refs log tree commit diff
path: root/exwm-workspace.el
diff options
context:
space:
mode:
Diffstat (limited to 'exwm-workspace.el')
-rw-r--r--exwm-workspace.el5
1 files changed, 5 insertions, 0 deletions
diff --git a/exwm-workspace.el b/exwm-workspace.el
index 3add2121ff4a..ed06f64ad2e5 100644
--- a/exwm-workspace.el
+++ b/exwm-workspace.el
@@ -111,6 +111,11 @@ 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)))
       (let ((frame (elt exwm-workspace--list index)))
         (setq exwm-workspace--current frame
               exwm-workspace-current-index index)