gdkwindow-x11: Multiply opaque region rects by the window scale

This fixes rendering issues under HiDPI
This commit is contained in:
Jasper St. Pierre
2013-09-04 14:45:01 -04:00
parent 4094df6519
commit 29dda194bb

View File

@ -5559,11 +5559,14 @@ static void
gdk_x11_window_set_opaque_region (GdkWindow *window, gdk_x11_window_set_opaque_region (GdkWindow *window,
cairo_region_t *region) cairo_region_t *region)
{ {
GdkWindowImplX11 *impl = GDK_WINDOW_IMPL_X11 (window->impl);
GdkDisplay *display; GdkDisplay *display;
int nitems; int nitems;
gulong *data; gulong *data;
if (GDK_WINDOW_DESTROYED (window))
return;
if (region != NULL) if (region != NULL)
{ {
int i, nrects; int i, nrects;
@ -5576,10 +5579,10 @@ gdk_x11_window_set_opaque_region (GdkWindow *window,
{ {
cairo_rectangle_int_t rect; cairo_rectangle_int_t rect;
cairo_region_get_rectangle (region, i, &rect); cairo_region_get_rectangle (region, i, &rect);
data[i*4+0] = rect.x; data[i*4+0] = rect.x * impl->window_scale;
data[i*4+1] = rect.y; data[i*4+1] = rect.y * impl->window_scale;
data[i*4+2] = rect.width; data[i*4+2] = rect.width * impl->window_scale;
data[i*4+3] = rect.height; data[i*4+3] = rect.height * impl->window_scale;
} }
} }
else else