[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/exwm f685de1 2/2: Fix click-to-focus on multi-monitor s
From: |
Chris Feng |
Subject: |
[elpa] externals/exwm f685de1 2/2: Fix click-to-focus on multi-monitor settings |
Date: |
Sat, 26 Sep 2015 01:52:21 +0000 |
branch: externals/exwm
commit f685de12d464b334ba7efdfe67e989dd63a96fa0
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>
Fix click-to-focus on multi-monitor settings
* exwm-input.el (exwm-input--on-ButtonPress): [click-to-focus] Switch to
the corresponding workspace if necessary.
---
exwm-input.el | 16 +++++++++++++++-
1 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/exwm-input.el b/exwm-input.el
index 9645182..9def8ca 100644
--- a/exwm-input.el
+++ b/exwm-input.el
@@ -187,8 +187,22 @@ It's updated in several occasions, and only used by
`exwm-input--set-focus'.")
(exwm-floating--start-moveresize event))
(t
;; Click to focus
- (let ((window (get-buffer-window (exwm--id->buffer event) t)))
+ (let ((window (get-buffer-window (exwm--id->buffer event) t))
+ frame)
(unless (eq window (selected-window))
+ (setq frame (window-frame window))
+ (unless (eq frame exwm-workspace--current)
+ (if (memq frame exwm-workspace--list)
+ ;; The X window is on another workspace
+ (exwm-workspace-switch
+ (cl-position frame exwm-workspace--list))
+ (with-current-buffer (window-buffer window)
+ (when (and (eq major-mode 'exwm-mode)
+ (not (eq exwm--frame
+ exwm-workspace--current)))
+ ;; The floating X window is on another workspace
+ (exwm-workspace-switch
+ (cl-position exwm--frame exwm-workspace--list))))))
(select-window window)))
;; The event should be replayed
(setq mode xcb:Allow:ReplayPointer))))