[gtk+/wip/window-scales: 60/84] offscreenwindow: Handle window_scale



commit f43e521921a56062cba366994c197b19cafdb1e1
Author: Alexander Larsson <alexl redhat com>
Date:   Thu Jun 20 19:25:45 2013 +0200

    offscreenwindow: Handle window_scale
    
    We create similar windows in the right way to get the
    device scale right.

 gdk/gdkoffscreenwindow.c |   24 ++++++++++++++----------
 1 files changed, 14 insertions(+), 10 deletions(-)
---
diff --git a/gdk/gdkoffscreenwindow.c b/gdk/gdkoffscreenwindow.c
index c2703b6..454ca89 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;
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]