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

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

[elpa] externals/exwm 86f2215 4/4: Fix unexpected focus change after a g


From: Chris Feng
Subject: [elpa] externals/exwm 86f2215 4/4: Fix unexpected focus change after a global key binding is activated
Date: Tue, 20 Feb 2018 09:24:54 -0500 (EST)

branch: externals/exwm
commit 86f2215be3db25a6b6aacd6f8b0cb132b049e034
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>

    Fix unexpected focus change after a global key binding is activated
    
    * exwm-core.el (exwm--unlock): Select FocusChange events on the root
    window.
    
    * exwm-input.el (exwm-input--on-FocusIn): Input focus should stay on
    the current workspace when the root window receives a FocusIn event.
---
 exwm-core.el  | 3 ++-
 exwm-input.el | 7 +++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/exwm-core.el b/exwm-core.el
index 41c3b57..f64a7f2 100644
--- a/exwm-core.el
+++ b/exwm-core.el
@@ -93,7 +93,8 @@
                      :window exwm--root
                      :value-mask xcb:CW:EventMask
                      :event-mask (eval-when-compile
-                                   (logior xcb:EventMask:SubstructureRedirect
+                                   (logior xcb:EventMask:FocusChange
+                                           xcb:EventMask:SubstructureRedirect
                                            xcb:EventMask:StructureNotify))))
   (xcb:flush exwm--connection))
 
diff --git a/exwm-input.el b/exwm-input.el
index 73a0dba..8102eb2 100644
--- a/exwm-input.el
+++ b/exwm-input.el
@@ -218,10 +218,9 @@ ARGS are additional arguments to CALLBACK."
     (xcb:unmarshal obj data)
     (with-slots (mode) obj
       ;; Revert input focus back to Emacs frame / X window when it's set on
-      ;; the root window or some workspace container.
-      (when (eq mode xcb:NotifyMode:Normal)
-        (x-focus-frame (selected-frame))
-        (select-window (selected-window))))))
+      ;; the root window.
+      (x-focus-frame exwm-workspace--current)
+      (select-window (frame-selected-window exwm-workspace--current)))))
 
 (defun exwm-input--on-EnterNotify (data _synthetic)
   "Handle EnterNotify events."



reply via email to

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