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

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

[elpa] externals/exwm e95b9ebf1d 5/7: Refresh the tray icon background w


From: Adrián Medraño Calvo
Subject: [elpa] externals/exwm e95b9ebf1d 5/7: Refresh the tray icon background when updating the background color
Date: Thu, 10 Nov 2022 17:56:02 -0500 (EST)

branch: externals/exwm
commit e95b9ebf1d3dc8e78ae02875f388a2876d54dd94
Author: Steven Allen <steven@stebalien.com>
Commit: Adrián Medraño Calvo <adrian@medranocalvo.com>

    Refresh the tray icon background when updating the background color
    
    * exwm-systemtray.el (exwm-systemtray--refresh-background-color):
    Add optional parameter REMAP to force redrawing of the background.
    (exwm-systemtray--on-theme-change): Use it.
---
 exwm-systemtray.el | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/exwm-systemtray.el b/exwm-systemtray.el
index d2bd428c8c..62e034ef7c 100644
--- a/exwm-systemtray.el
+++ b/exwm-systemtray.el
@@ -258,11 +258,21 @@ using 32-bit depth.  Using `workspace-background' 
instead.")
                          :window exwm-systemtray--embedder-window))))
   (xcb:flush exwm-systemtray--connection))
 
-(defun exwm-systemtray--refresh-background-color ()
-  "Refresh background color after theme change or workspace switch."
+(defun exwm-systemtray--refresh-background-color (&optional remap)
+  "Refresh background color after theme change or workspace switch.
+If REMAP is not nil, map and unmap the embedder window so that the background 
is
+redrawn."
   ;; Only `workspace-background' is dependent on current theme and workspace.
   (when (eq 'workspace-background exwm-systemtray-background-color)
-    (exwm-systemtray--set-background-color)))
+    (exwm-systemtray--set-background-color)
+    (when remap
+      (xcb:+request exwm-systemtray--connection
+                    (make-instance 'xcb:UnmapWindow
+                                   :window exwm-systemtray--embedder-window))
+      (xcb:+request exwm-systemtray--connection
+                    (make-instance 'xcb:MapWindow
+                                   :window exwm-systemtray--embedder-window))
+      (xcb:flush exwm-systemtray--connection))))
 
 (defun exwm-systemtray--set-background-color ()
   "Change the background color of the embedder.
@@ -453,7 +463,7 @@ indicate how to support actual transparency."
 
 (defun exwm-systemtray--on-theme-change (_theme)
   "Refresh system tray upon theme change."
-  (exwm-systemtray--refresh-background-color))
+  (exwm-systemtray--refresh-background-color 'remap))
 
 (defun exwm-systemtray--refresh-all ()
   "Reposition/Refresh the system tray."



reply via email to

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