[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/exwm 46461d9 1/2: Improve robustness
From: |
Chris Feng |
Subject: |
[elpa] externals/exwm 46461d9 1/2: Improve robustness |
Date: |
Sat, 17 Oct 2015 03:04:39 +0000 |
branch: externals/exwm
commit 46461d994b32da1813d3e531b02127c7b9281947
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>
Improve robustness
* exwm-input.el (exwm-input--update-focus, exwm-input--on-ButtonPress):
Make sure Emacs windows are alive before manipulating them.
---
exwm-input.el | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/exwm-input.el b/exwm-input.el
index 9def8ca..6c34853 100644
--- a/exwm-input.el
+++ b/exwm-input.el
@@ -111,7 +111,9 @@ It's updated in several occasions, and only used by
`exwm-input--set-focus'.")
(defun exwm-input--update-focus ()
"Update input focus."
- (when exwm-input--focus-window
+ (when (and exwm-input--focus-window
+ ;; The Emacs window may have been deleted
+ (window-buffer exwm-input--focus-window))
(with-current-buffer (window-buffer exwm-input--focus-window)
(if (eq major-mode 'exwm-mode)
(if (not (eq exwm--frame exwm-workspace--current))
@@ -203,7 +205,12 @@ It's updated in several occasions, and only used by
`exwm-input--set-focus'.")
;; The floating X window is on another workspace
(exwm-workspace-switch
(cl-position exwm--frame exwm-workspace--list))))))
- (select-window window)))
+ ;; It has been reported that the `window' may have be deleted
+ (if (window-live-p window)
+ (select-window window)
+ (setq window
+ (get-buffer-window (exwm--id->buffer event) t))
+ (when window (select-window window)))))
;; The event should be replayed
(setq mode xcb:Allow:ReplayPointer))))
(xcb:+request exwm--connection