emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/exwm eb91ee2 2/3: Restore keyboard grabbing after exiti


From: Adrián Medraño Calvo
Subject: [elpa] externals/exwm eb91ee2 2/3: Restore keyboard grabbing after exiting fullscreen
Date: Thu, 25 Oct 2018 10:40:40 -0400 (EDT)

branch: externals/exwm
commit eb91ee2c77787bbeb1df74f0237f5087d031217f
Author: Adrián Medraño Calvo <address@hidden>
Commit: Adrián Medraño Calvo <address@hidden>

    Restore keyboard grabbing after exiting fullscreen
    
    Recover the difference between the input mode selected by the user and
    actual one, which might be transient.  This was inadvertently removed in
    recent changes.
    
    * exwm-core.el (exwm--selected-input-mode): New variable.
    * exwm-input.el (exwm-input-grab-keyboard)
    (exwm-input-release-keyboard): Use it.
    * exwm-layout.el (exwm-layout-unset-fullscreen): Return to the
    selected input mode.
---
 exwm-core.el   | 6 +++++-
 exwm-input.el  | 2 ++
 exwm-layout.el | 2 +-
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/exwm-core.el b/exwm-core.el
index 612a26f..1f93949 100644
--- a/exwm-core.el
+++ b/exwm-core.el
@@ -158,7 +158,11 @@ least SECS seconds later."
 (defvar-local exwm--mode-line-format nil) ;save mode-line-format
 (defvar-local exwm--floating-frame-position nil) ;set when hidden.
 (defvar-local exwm--fixed-size nil)              ;fixed size
-(defvar-local exwm--input-mode 'line-mode)       ;Keyboard grabbed.
+(defvar-local exwm--selected-input-mode 'line-mode
+  "Input mode as selected by the user.
+One of `line-mode' or `char-mode'.")
+(defvar-local exwm--input-mode 'line-mode
+  "Actual input mode, i.e. whether mouse and keyboard are grabbed.")
 ;; Properties
 (defvar-local exwm--desktop nil "_NET_WM_DESKTOP.")
 (defvar-local exwm-window-type nil "_NET_WM_WINDOW_TYPE.")
diff --git a/exwm-input.el b/exwm-input.el
index 78e74cd..c757b09 100644
--- a/exwm-input.el
+++ b/exwm-input.el
@@ -756,6 +756,7 @@ button event."
                        (exwm--buffer->id (window-buffer)))))
   (when id
     (exwm--log "id=#x%x" id)
+    (setq exwm--selected-input-mode 'line-mode)
     (exwm-input--grab-keyboard id)
     (exwm-input--update-mode-line id)))
 
@@ -766,6 +767,7 @@ button event."
                        (exwm--buffer->id (window-buffer)))))
   (when id
     (exwm--log "id=#x%x" id)
+    (setq exwm--selected-input-mode  'char-mode)
     (exwm-input--release-keyboard id)
     (exwm-input--update-mode-line id)))
 
diff --git a/exwm-layout.el b/exwm-layout.el
index fe394e2..bee6901 100644
--- a/exwm-layout.el
+++ b/exwm-layout.el
@@ -199,7 +199,7 @@
         (make-instance 'xcb:ewmh:set-_NET_WM_STATE :window exwm--id :data []))
     (xcb:flush exwm--connection)
     (set-window-dedicated-p (get-buffer-window) nil)
-    (when (eq 'line-mode exwm--input-mode)
+    (when (eq 'line-mode exwm--selected-input-mode)
       (exwm-input--grab-keyboard exwm--id))))
 
 ;;;###autoload



reply via email to

[Prev in Thread] Current Thread [Next in Thread]