about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--exwm-input.el2
-rw-r--r--exwm-workspace.el3
2 files changed, 4 insertions, 1 deletions
diff --git a/exwm-input.el b/exwm-input.el
index 7833130d78..2d3b481898 100644
--- a/exwm-input.el
+++ b/exwm-input.el
@@ -1046,6 +1046,7 @@ where both ORIGINAL-KEY and SIMULATED-KEY are key sequences."
   (with-current-buffer
       (window-buffer (frame-selected-window exwm-workspace--current))
     (when (and (derived-mode-p 'exwm-mode)
+               (not (exwm-workspace--client-p))
                (eq exwm--selected-input-mode 'char-mode))
       (exwm-input--grab-keyboard exwm--id))))
 
@@ -1055,6 +1056,7 @@ where both ORIGINAL-KEY and SIMULATED-KEY are key sequences."
   (with-current-buffer
       (window-buffer (frame-selected-window exwm-workspace--current))
     (when (and (derived-mode-p 'exwm-mode)
+               (not (exwm-workspace--client-p))
                (eq exwm--selected-input-mode 'char-mode)
                (eq exwm--input-mode 'line-mode))
       (exwm-input--release-keyboard exwm--id))))
diff --git a/exwm-workspace.el b/exwm-workspace.el
index 41343187ed..736f46f82c 100644
--- a/exwm-workspace.el
+++ b/exwm-workspace.el
@@ -167,7 +167,8 @@ NIL if FRAME is not a workspace"
 
 (defsubst exwm-workspace--client-p (&optional frame)
   "Return non-nil if FRAME is an emacsclient frame."
-  (frame-parameter frame 'client))
+  (or (frame-parameter frame 'client)
+      (not (display-graphic-p frame))))
 
 (defvar exwm-workspace--switch-map nil
   "Keymap used for interactively selecting workspace.")