delete: Don't wrongly set window as not alive when pings are disabled

meta_display_ping_window() does nothing when check-alive-timeout is set
to 0, but meta_window_check_alive_on_event() was relying on it to reset
the events_during_ping. Without this events_during_ping was just
counting up until the threshold was reached and the window was marked as
not alive, preventing further pointer events from being sent to the
window.

Fix this by not doing anything in meta_window_check_alive_on_event() if
check-alive-timeout is 0, similar to meta_display_ping_window().

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3142
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3367>
This commit is contained in:
Sebastian Keller 2023-11-07 00:23:19 +01:00 committed by Marge Bot
parent 8cae7ff0f6
commit d978ab1890

View File

@ -96,9 +96,15 @@ void
meta_window_check_alive_on_event (MetaWindow *window, meta_window_check_alive_on_event (MetaWindow *window,
uint32_t timestamp) uint32_t timestamp)
{ {
unsigned int check_alive_timeout;
if (!meta_window_can_ping (window)) if (!meta_window_can_ping (window))
return; return;
check_alive_timeout = meta_prefs_get_check_alive_timeout ();
if (check_alive_timeout == 0)
return;
meta_display_ping_window (window, timestamp); meta_display_ping_window (window, timestamp);
window->events_during_ping++; window->events_during_ping++;