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

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

[elpa] externals/exwm 2005fa5 2/3: Make _NET_ACTIVE_WINDOW working for f


From: Chris Feng
Subject: [elpa] externals/exwm 2005fa5 2/3: Make _NET_ACTIVE_WINDOW working for floating X windows
Date: Sun, 22 Sep 2019 10:16:29 -0400 (EDT)

branch: externals/exwm
commit 2005fa5c5dcfdcc49e1ce0b631a1793e9c25604f
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>

    Make _NET_ACTIVE_WINDOW working for floating X windows
    
    * exwm.el (exwm--on-ClientMessage): Select floating frames for
    floating X windows on receiving _NET_ACTIVE_WINDOW.
---
 exwm.el | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/exwm.el b/exwm.el
index e5b603e..36dbcb6 100644
--- a/exwm.el
+++ b/exwm.el
@@ -446,16 +446,18 @@
         (when (buffer-live-p buffer)
           (with-current-buffer buffer
             (when (eq exwm--frame exwm-workspace--current)
-              (setq iconic (exwm-layout--iconic-state-p))
-              (when iconic
-                ;; State change: iconic => normal.
-                (set-window-buffer (frame-selected-window exwm--frame)
-                                   (current-buffer)))
-              ;; Focus transfer.
-              (setq window (get-buffer-window nil t))
-              (when (or iconic
-                        (not (eq window (selected-window))))
-                (select-window window)))))))
+              (if exwm--floating-frame
+                  (select-frame exwm--floating-frame)
+                (setq iconic (exwm-layout--iconic-state-p))
+                (when iconic
+                  ;; State change: iconic => normal.
+                  (set-window-buffer (frame-selected-window exwm--frame)
+                                     (current-buffer)))
+                ;; Focus transfer.
+                (setq window (get-buffer-window nil t))
+                (when (or iconic
+                          (not (eq window (selected-window))))
+                  (select-window window))))))))
      ;; _NET_CLOSE_WINDOW.
      ((= type xcb:Atom:_NET_CLOSE_WINDOW)
       (let ((buffer (exwm--id->buffer id)))



reply via email to

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