[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master f9a7a81cde: Improve reliability of hotplugging window managers
From: |
Po Lu |
Subject: |
master f9a7a81cde: Improve reliability of hotplugging window managers |
Date: |
Wed, 9 Feb 2022 21:22:21 -0500 (EST) |
branch: master
commit f9a7a81cde41bacd63d280700089cc95490e4bea
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>
Improve reliability of hotplugging window managers
* src/xterm.c (x_make_frame_visible): Change the user time
window if the window manager supports something different from
what it did the first time the frame was made visible.
---
src/xterm.c | 31 +++++++++++++++++++++++--------
1 file changed, 23 insertions(+), 8 deletions(-)
diff --git a/src/xterm.c b/src/xterm.c
index 5b97da36ba..abfad61041 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -14534,21 +14534,36 @@ x_make_frame_visible (struct frame *f)
#ifndef USE_GTK
output = FRAME_X_OUTPUT (f);
- if (output->user_time_window == None)
+ if (!x_wm_supports (f, dpyinfo->Xatom_net_wm_user_time_window))
{
- XSetWindowAttributes attrs;
- memset (&attrs, 0, sizeof attrs);
-
- output->user_time_window
- = FRAME_OUTER_WINDOW (f);
-
- if (x_wm_supports (f, dpyinfo->Xatom_net_wm_user_time_window))
+ if (output->user_time_window == None)
+ output->user_time_window = FRAME_OUTER_WINDOW (f);
+ else if (output->user_time_window != FRAME_OUTER_WINDOW (f))
+ {
+ XDestroyWindow (dpyinfo->display,
+ output->user_time_window);
+ XDeleteProperty (dpyinfo->display,
+ FRAME_OUTER_WINDOW (f),
+ dpyinfo->Xatom_net_wm_user_time_window);
+ output->user_time_window = FRAME_OUTER_WINDOW (f);
+ }
+ }
+ else
+ {
+ if (output->user_time_window == FRAME_OUTER_WINDOW (f)
+ || output->user_time_window == None)
{
+ XSetWindowAttributes attrs;
+ memset (&attrs, 0, sizeof attrs);
+
output->user_time_window
= XCreateWindow (dpyinfo->display, FRAME_X_WINDOW (f),
-1, -1, 1, 1, 0, 0, InputOnly,
CopyFromParent, 0, &attrs);
+ XDeleteProperty (dpyinfo->display,
+ FRAME_OUTER_WINDOW (f),
+ dpyinfo->Xatom_net_wm_user_time);
XChangeProperty (dpyinfo->display,
FRAME_OUTER_WINDOW (f),
dpyinfo->Xatom_net_wm_user_time_window,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master f9a7a81cde: Improve reliability of hotplugging window managers,
Po Lu <=