mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-27 14:10:30 +00:00
surface: Fix the fallback move-to-rect implementation
On X11, the final and flipped rects were reporting global coordinates. This was showing up as misplaced popover beaks.
This commit is contained in:
parent
78c94f9357
commit
c7f9f8f63d
@ -271,6 +271,7 @@ gdk_surface_real_move_to_rect (GdkSurface *surface,
|
|||||||
GdkRectangle final_rect;
|
GdkRectangle final_rect;
|
||||||
gboolean flipped_x;
|
gboolean flipped_x;
|
||||||
gboolean flipped_y;
|
gboolean flipped_y;
|
||||||
|
int x, y;
|
||||||
|
|
||||||
/* This implementation only works for backends that
|
/* This implementation only works for backends that
|
||||||
* can provide root coordinates via get_root_coords.
|
* can provide root coordinates via get_root_coords.
|
||||||
@ -373,6 +374,12 @@ gdk_surface_real_move_to_rect (GdkSurface *surface,
|
|||||||
else
|
else
|
||||||
gdk_surface_move (surface, final_rect.x, final_rect.y);
|
gdk_surface_move (surface, final_rect.x, final_rect.y);
|
||||||
|
|
||||||
|
gdk_surface_get_origin (toplevel, &x, &y);
|
||||||
|
final_rect.x -= x;
|
||||||
|
final_rect.y -= y;
|
||||||
|
flipped_rect.x -= x;
|
||||||
|
flipped_rect.y -= y;
|
||||||
|
|
||||||
g_signal_emit_by_name (surface,
|
g_signal_emit_by_name (surface,
|
||||||
"moved-to-rect",
|
"moved-to-rect",
|
||||||
&flipped_rect,
|
&flipped_rect,
|
||||||
|
Loading…
Reference in New Issue
Block a user