1
0
Fork 0

frame: Fix crash when clicking below titlebar with broken gtk themes

When a gtk theme uses larger shadows for the unfocused state than for
the focused one, this can cause a crash in meta_frame_left_click_event.
Since whether to call meta_frame_left_click_event is decided based on
the decoration size before focusing and the control that was clicked on
after focusing, this can result in an event handled in
meta_frame_left_click_event being on the client area.

Fixes https://gitlab.gnome.org/GNOME/mutter/-/issues/1668

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1748>
This commit is contained in:
Sebastian Keller 2021-02-27 01:00:25 +01:00 committed by Marge Bot
parent 3263084bcf
commit c2968c89fe

View file

@ -1112,6 +1112,15 @@ meta_frame_left_click_event (MetaUIFrame *frame,
* that cannot be resized (e. g. it is maximized and the theme
* currently used has borders for maximized windows), see #751884 */
return FALSE;
case META_FRAME_CONTROL_CLIENT_AREA:
/* This can happen with broken gtk themes that have a larger shadow size
* in the unfocused state than in the focused one. Then when clicking
* below the titlebar area in the unfocused state would still be
* considered a click on the titlebar due to it being shifted down because
* of the shadow. This then causes the window to be focused before this
* function is called, which removes the shadow such that the same
* position is now considered to be on the client area */
return FALSE;
default:
g_assert_not_reached ();
return FALSE;