[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/exwm d0c2ca7: Fix a possible deadlock
From: |
Chris Feng |
Subject: |
[elpa] externals/exwm d0c2ca7: Fix a possible deadlock |
Date: |
Thu, 6 Oct 2016 11:33:22 +0000 (UTC) |
branch: externals/exwm
commit d0c2ca75f8ac78d87aba3e80902fb0f113b10279
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>
Fix a possible deadlock
* exwm-input.el (exwm-input--update-focus): Unlock before switching
workspace. Also make sure the correct Emacs window is chosen for the
target workspace.
---
exwm-input.el | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/exwm-input.el b/exwm-input.el
index 4a8fdbb..a2f4780 100644
--- a/exwm-input.el
+++ b/exwm-input.el
@@ -212,7 +212,10 @@ This value should always be overwritten.")
(with-current-buffer (window-buffer window)
(if (eq major-mode 'exwm-mode)
(if (not (eq exwm--frame exwm-workspace--current))
- (exwm-workspace-switch exwm--frame)
+ (progn
+ (set-frame-parameter exwm--frame 'exwm-selected-window window)
+ (run-with-idle-timer 0 nil #'exwm-workspace-switch
+ exwm--frame))
(exwm--log "Set focus on #x%x" exwm--id)
(exwm-input--set-focus exwm--id)
(when exwm--floating-frame
@@ -233,7 +236,11 @@ This value should always be overwritten.")
(not (eq (selected-frame) exwm-workspace--current)))
;; The focus is on another workspace (e.g. it got clicked)
;; so switch to it.
- (exwm-workspace-switch (selected-frame))
+ (progn
+ (set-frame-parameter (selected-frame) 'exwm-selected-window
+ window)
+ (run-with-idle-timer 0 nil #'exwm-workspace-switch
+ (selected-frame)))
;; The focus is still on the current workspace.
(if (not (and (exwm-workspace--minibuffer-own-frame-p)
(minibufferp)))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/exwm d0c2ca7: Fix a possible deadlock,
Chris Feng <=