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

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

[elpa] externals/exwm 3edf2e8: Fix systemtray applications crash when re


From: Chris Feng
Subject: [elpa] externals/exwm 3edf2e8: Fix systemtray applications crash when restarting
Date: Sun, 8 Oct 2017 12:32:32 -0400 (EDT)

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

    Fix systemtray applications crash when restarting
    
    * exwm-systemtray.el (exwm-systemtray--exit): Reparent out the tray
    embedder to protect tray icons.
---
 exwm-systemtray.el | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/exwm-systemtray.el b/exwm-systemtray.el
index 48bd8ea..4fc7ded 100644
--- a/exwm-systemtray.el
+++ b/exwm-systemtray.el
@@ -480,6 +480,18 @@ You shall use the default value if using auto-hide 
minibuffer.")
 (defun exwm-systemtray--exit ()
   "Exit the systemtray module."
   (when exwm-systemtray--connection
+    ;; Hide & reparent out the embedder before disconnection to prevent
+    ;; embedded icons from being reparented to an Emacs frame (which is the
+    ;; parent of the embedder).
+    (xcb:+request exwm-systemtray--connection
+        (make-instance 'xcb:UnmapWindow
+                       :window exwm-systemtray--embedder))
+    (xcb:+request exwm-systemtray--connection
+        (make-instance 'xcb:ReparentWindow
+                       :window exwm-systemtray--embedder
+                       :parent exwm--root
+                       :x 0
+                       :y 0))
     (xcb:disconnect exwm-systemtray--connection)
     (setq exwm-systemtray--connection nil
           exwm-systemtray--list nil



reply via email to

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