mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-26 13:41:07 +00:00
x11: Remove last_wmspec_check_time
In fetch_net_wm_check_window(), before updating the wmspec_check_window, a check is performed to verify a 15s difference between last_wmspec_check_time and the current monotonic time. The comment suggests that this check is done to ensure that it doesn't check for a new check window repeatedly over and over again. While that was the case origionally, currently the last_wmspec_check_time only gets updated when wmspec_check_window is set, which is already checked earlier, making the time check useless. This check causes issues on cold boots where gtk4 applications are not able to obtain the wmspec_check_window until 15 seconds after boot, making gtk unable to check for extended wm_hints during that time. Fixes: #6558
This commit is contained in:
parent
c37e88d561
commit
ab33b56ec9
@ -665,7 +665,6 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
|
|||||||
if (x11_screen->wmspec_check_window == xevent->xdestroywindow.window)
|
if (x11_screen->wmspec_check_window == xevent->xdestroywindow.window)
|
||||||
{
|
{
|
||||||
x11_screen->wmspec_check_window = None;
|
x11_screen->wmspec_check_window = None;
|
||||||
x11_screen->last_wmspec_check_time = 0;
|
|
||||||
g_free (x11_screen->window_manager_name);
|
g_free (x11_screen->window_manager_name);
|
||||||
x11_screen->window_manager_name = g_strdup ("unknown");
|
x11_screen->window_manager_name = g_strdup ("unknown");
|
||||||
|
|
||||||
|
@ -1145,7 +1145,6 @@ fetch_net_wm_check_window (GdkX11Screen *x11_screen)
|
|||||||
{
|
{
|
||||||
GdkDisplay *display;
|
GdkDisplay *display;
|
||||||
Window window;
|
Window window;
|
||||||
guint64 now;
|
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
display = x11_screen->display;
|
display = x11_screen->display;
|
||||||
@ -1155,11 +1154,6 @@ fetch_net_wm_check_window (GdkX11Screen *x11_screen)
|
|||||||
if (x11_screen->wmspec_check_window != None)
|
if (x11_screen->wmspec_check_window != None)
|
||||||
return; /* already have it */
|
return; /* already have it */
|
||||||
|
|
||||||
now = g_get_monotonic_time ();
|
|
||||||
|
|
||||||
if ((now - x11_screen->last_wmspec_check_time) / 1e6 < 15)
|
|
||||||
return; /* we've checked recently */
|
|
||||||
|
|
||||||
window = get_net_supporting_wm_check (x11_screen, x11_screen->xroot_window);
|
window = get_net_supporting_wm_check (x11_screen, x11_screen->xroot_window);
|
||||||
if (window == None)
|
if (window == None)
|
||||||
return;
|
return;
|
||||||
@ -1184,7 +1178,6 @@ fetch_net_wm_check_window (GdkX11Screen *x11_screen)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
x11_screen->wmspec_check_window = window;
|
x11_screen->wmspec_check_window = window;
|
||||||
x11_screen->last_wmspec_check_time = now;
|
|
||||||
x11_screen->need_refetch_net_supported = TRUE;
|
x11_screen->need_refetch_net_supported = TRUE;
|
||||||
x11_screen->need_refetch_wm_name = TRUE;
|
x11_screen->need_refetch_wm_name = TRUE;
|
||||||
|
|
||||||
|
@ -48,7 +48,6 @@ struct _GdkX11Screen
|
|||||||
int xft_dpi;
|
int xft_dpi;
|
||||||
|
|
||||||
/* Window manager */
|
/* Window manager */
|
||||||
gint64 last_wmspec_check_time;
|
|
||||||
Window wmspec_check_window;
|
Window wmspec_check_window;
|
||||||
char *window_manager_name;
|
char *window_manager_name;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user