[x11] Fix coordinate space of rect in gdk_x11_surface_get_frame_extents when called on popups.

If we take the early return we don't unscale this at the bottom of the
function, causing wrong coordinates in HiDPI screens.

This bug also affects GTK3 (I noticed this running Firefox tests on X).
This commit is contained in:
Emilio Cobos Álvarez 2022-06-20 10:11:29 +02:00
parent 381c34783d
commit 5301a74bd3
No known key found for this signature in database
GPG Key ID: E1152D0994E4BF8A

View File

@ -2793,14 +2793,19 @@ gdk_x11_surface_get_frame_extents (GdkSurface *surface,
impl = GDK_X11_SURFACE (surface);
/* Refine our fallback answer a bit using local information */
rect->x = impl->abs_x * impl->surface_scale;
rect->y = impl->abs_y * impl->surface_scale;
rect->width = surface->width * impl->surface_scale;
rect->height = surface->height * impl->surface_scale;
rect->x = impl->abs_x;
rect->y = impl->abs_y;
rect->width = surface->width;
rect->height = surface->height;
if (GDK_SURFACE_DESTROYED (surface) || impl->override_redirect)
return;
rect->x *= impl->surface_scale;
rect->y *= impl->surface_scale;
rect->width *= impl->surface_scale;
rect->height *= impl->surface_scale;
nvroots = 0;
vroots = NULL;