mirror of
https://github.com/brl/mutter.git
synced 2024-11-25 01:20:42 -05:00
window: Check aliveness a bit less aggressively
Currently we check whether a window is alive everytime it's focused. This means that an application that doesn't respond to the check-alive event during startup always showing the "application froze" dialog, without the user ever trying to interact with it. An example where this tends to to happen is with games, and for this particular scenario, it's purely an annoyance, as I never tried to interact with the game window in the first place, so I don't care that it's not responding - it's loading. To avoid these unnecessary particular "app-is-frozen" popups, remove the alive check from the focus function, and instead move it back to the "meta_window_activate_full()" call. To also trigger it slightly more often, also add it to the path that triggers the window focus when a user actively clicks on the window. This means that we currently check whether a window is alive on: * Any time the window is activated. This means e.g. alt-tab or selecting the window in the overview. * The user clicks on the window. Note that the second only works for an already focused window on Wayland, as on X11, we don't refocus it. This particular case isn't changed with this commit, as we didn't call meta_window_focus() to begin with here. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1182
This commit is contained in:
parent
08431a127a
commit
8df3b21a51
@ -3751,6 +3751,8 @@ meta_window_activate_full (MetaWindow *window,
|
||||
meta_window_focus (window, timestamp);
|
||||
else
|
||||
meta_workspace_activate_with_focus (window->workspace, window, timestamp);
|
||||
|
||||
meta_window_check_alive (window, timestamp);
|
||||
}
|
||||
|
||||
/* This function exists since most of the functionality in window_activate
|
||||
@ -4790,8 +4792,6 @@ meta_window_focus (MetaWindow *window,
|
||||
return;
|
||||
}
|
||||
|
||||
meta_window_check_alive (window, timestamp);
|
||||
|
||||
META_WINDOW_GET_CLASS (window)->focus (window, timestamp);
|
||||
|
||||
if (window->display->event_route == META_EVENT_ROUTE_NORMAL)
|
||||
@ -8349,6 +8349,7 @@ meta_window_handle_ungrabbed_event (MetaWindow *window,
|
||||
"Focusing %s due to button %u press (display.c)\n",
|
||||
window->desc, button);
|
||||
meta_window_focus (window, event->any.time);
|
||||
meta_window_check_alive (window, event->any.time);
|
||||
}
|
||||
else
|
||||
/* However, do allow terminals to lose focus due to new
|
||||
|
Loading…
Reference in New Issue
Block a user