forked from AuroraMiddleware/gtk
wayland: do not clamp anchor values
Clamping the anchor values as introduced in commit 9a5ffcd
to fix bug
777176 breaks menu positioning.
By keeping the anchors rectangle size greater than zero, we end up
deducting some positive value from the original position, so there is no
need to clamp() actually, keeping the values positive is enough and
avoids the issue with menu positioning on the menubar.
An additional benefit is to make the code a lot simpler.
https://bugzilla.gnome.org/show_bug.cgi?id=778009
This commit is contained in:
parent
705fc62840
commit
afa78fcffe
@ -2655,25 +2655,11 @@ sanitize_anchor_rect (GdkWindow *window,
|
||||
{
|
||||
gint original_width = rect->width;
|
||||
gint original_height = rect->height;
|
||||
GdkWindow *parent = get_popup_parent (window);
|
||||
|
||||
rect->width = MAX (1, rect->width);
|
||||
rect->height = MAX (1, rect->height);
|
||||
rect->x -= rect->width - original_width;
|
||||
rect->y -= rect->height - original_height;
|
||||
|
||||
/* Make sure the anchor rectangle does not extend outside the window
|
||||
* geometry of the parent surface.
|
||||
*/
|
||||
if (parent)
|
||||
{
|
||||
GdkRectangle geometry;
|
||||
|
||||
/* The rectangle is relative to the parent window geometry */
|
||||
gdk_wayland_window_get_window_geometry (parent, &geometry);
|
||||
rect->x = CLAMP (rect->x, 0, geometry.width);
|
||||
rect->y = CLAMP (rect->y, 0, geometry.height);
|
||||
}
|
||||
rect->x = MAX (rect->x + original_width - rect->width, 0);
|
||||
rect->y = MAX (rect->y + original_height - rect->height, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
|
Loading…
Reference in New Issue
Block a user