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

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

[elpa] externals/exwm 3b9d0dd 17/64: Fixes for manage/unmanage window


From: Chris Feng
Subject: [elpa] externals/exwm 3b9d0dd 17/64: Fixes for manage/unmanage window
Date: Thu, 17 Sep 2015 23:17:55 +0000

branch: externals/exwm
commit 3b9d0dd9217add078415ecda644b5cd19632f1fc
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>

    Fixes for manage/unmanage window
    
    * Make sure `exwm-manage--manage-window-queue` is cleaned
    * Improve input focus handling after unmanaging a window
    * Remove a redundant call to `exwm-layout--show`
---
 exwm-floating.el |    1 -
 exwm-manage.el   |   16 +++++++++++++---
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/exwm-floating.el b/exwm-floating.el
index f302bc0..3e9cade 100644
--- a/exwm-floating.el
+++ b/exwm-floating.el
@@ -199,7 +199,6 @@
             exwm--frame exwm-workspace--current))
     (select-frame exwm-workspace--current t)
     (set-window-buffer nil buffer)
-    (exwm-layout--show id)
     (exwm-input--set-focus id))
   (setq exwm-input--focus-lock nil))
 
diff --git a/exwm-manage.el b/exwm-manage.el
index 8594066..8bf118e 100644
--- a/exwm-manage.el
+++ b/exwm-manage.el
@@ -61,9 +61,11 @@ corresponding buffer.")
               (make-instance 'xcb:ChangeWindowAttributes
                              :window id :value-mask xcb:CW:EventMask
                              :event-mask exwm--client-event-mask))
-      (delq id exwm-manage--manage-window-queue) ;cleanup
+      (setq exwm-manage--manage-window-queue
+            (delq id exwm-manage--manage-window-queue)) ;cleanup
       (throw 'return 'dead))
-    (delq id exwm-manage--manage-window-queue) ;cleanup (late enough)
+    (setq exwm-manage--manage-window-queue
+          (delq id exwm-manage--manage-window-queue)) ;cleanup (late enough)
     (with-current-buffer (generate-new-buffer "*EXWM*")
       (push `(,id . ,(current-buffer)) exwm--id-buffer-alist)
       (exwm-mode)
@@ -193,7 +195,15 @@ corresponding buffer.")
         (let ((floating exwm--floating-frame))
           (kill-buffer)
           (when floating
-            (select-frame-set-input-focus exwm-workspace--current)))))))
+            (if (eq 'exwm-mode
+                    (with-current-buffer
+                        (window-buffer
+                         (frame-first-window exwm-workspace--current))
+                      major-mode))
+                ;; Input focus is to be set on a window
+                (x-focus-frame exwm-workspace--current)
+              ;; Set input focus on a frame
+              (select-frame-set-input-focus exwm-workspace--current))))))))
 
 (defun exwm-manage--scan ()
   "Search for existing windows and try to manage them."



reply via email to

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