summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdk/gdkoffscreenwindow.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/gdk/gdkoffscreenwindow.c b/gdk/gdkoffscreenwindow.c
index c2703b6a92..454ca8944c 100644
--- a/gdk/gdkoffscreenwindow.c
+++ b/gdk/gdkoffscreenwindow.c
@@ -141,18 +141,11 @@ _gdk_offscreen_window_create_surface (GdkWindow *offscreen,
gint width,
gint height)
{
- cairo_surface_t *similar;
- cairo_surface_t *surface;
-
g_return_val_if_fail (GDK_IS_OFFSCREEN_WINDOW (offscreen->impl), NULL);
- similar = _gdk_window_ref_cairo_surface (offscreen->parent);
-
- surface = cairo_surface_create_similar (similar, CAIRO_CONTENT_COLOR_ALPHA, width, height);
-
- cairo_surface_destroy (similar);
-
- return surface;
+ return gdk_window_create_similar_surface (offscreen->parent,
+ CAIRO_CONTENT_COLOR_ALPHA,
+ width, height);
}
void
@@ -687,6 +680,16 @@ gdk_offscreen_window_get_frame_extents (GdkWindow *window,
rect->height = window->height;
}
+static gint
+gdk_offscreen_window_get_scale_factor (GdkWindow *window)
+{
+
+ if (GDK_WINDOW_DESTROYED (window))
+ return 1;
+
+ return gdk_window_get_scale_factor (window->parent);
+}
+
static void
gdk_offscreen_window_class_init (GdkOffscreenWindowClass *klass)
{
@@ -773,4 +776,5 @@ gdk_offscreen_window_class_init (GdkOffscreenWindowClass *klass)
impl_class->get_property = NULL;
impl_class->change_property = NULL;
impl_class->delete_property = NULL;
+ impl_class->get_scale_factor = gdk_offscreen_window_get_scale_factor;
}