mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-26 13:41:07 +00:00
GdkSurface: prevent popups from appearing offscreen in edge cases
This commit adds a single additional condition to the maybe_flip_position function in gdksurface.c. If a popup's unflipped position is below the bounds of its containing area, the popup uses its flipped position instead. This prevents tooltips from appearing below the bounds of the screen when a small widget is positioned very close to the bottom edge of the screen, such as in Budgie and XFCE panel applets.
This commit is contained in:
parent
7d34e7e0f7
commit
5c00dc7ef4
@ -256,7 +256,7 @@ maybe_flip_position (int bounds_pos,
|
|||||||
*flipped = TRUE;
|
*flipped = TRUE;
|
||||||
secondary = rect_pos + (1 - rect_sign) * rect_size / 2 - offset - (1 - surface_sign) * surface_size / 2;
|
secondary = rect_pos + (1 - rect_sign) * rect_size / 2 - offset - (1 - surface_sign) * surface_size / 2;
|
||||||
|
|
||||||
if (secondary >= bounds_pos && secondary + surface_size <= bounds_pos + bounds_size)
|
if ((secondary >= bounds_pos && secondary + surface_size <= bounds_pos + bounds_size) || primary > bounds_pos + bounds_size)
|
||||||
return secondary;
|
return secondary;
|
||||||
|
|
||||||
*flipped = FALSE;
|
*flipped = FALSE;
|
||||||
|
Loading…
Reference in New Issue
Block a user