[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/exwm 5fde63c 1/3: Avoid activating already active X win
From: |
Chris Feng |
Subject: |
[elpa] externals/exwm 5fde63c 1/3: Avoid activating already active X windows |
Date: |
Sat, 17 Nov 2018 11:29:04 -0500 (EST) |
branch: externals/exwm
commit 5fde63cc453b080f3436751a1912440664a09663
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>
Avoid activating already active X windows
* exwm.el (exwm--on-ClientMessage): On receiving `_NET_ACTIVE_WINDOW'
events, check if the requested X windows are already active.
---
exwm.el | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/exwm.el b/exwm.el
index 6021f85..98b30f9 100644
--- a/exwm.el
+++ b/exwm.el
@@ -416,16 +416,21 @@
(exwm-workspace-switch (elt data 0)))
;; _NET_ACTIVE_WINDOW.
((= type xcb:Atom:_NET_ACTIVE_WINDOW)
- (let ((buffer (exwm--id->buffer id)))
+ (let ((buffer (exwm--id->buffer id))
+ iconic window)
(when (buffer-live-p buffer)
(with-current-buffer buffer
(when (eq exwm--frame exwm-workspace--current)
- (when (exwm-layout--iconic-state-p)
+ (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.
- (select-window (get-buffer-window nil t)))))))
+ (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)))