]> Pileus Git - ~andy/gtk/blobdiff - tests/testoffscreenwindow.c
stylecontext: Do invalidation on first resize container
[~andy/gtk] / tests / testoffscreenwindow.c
index 161c9c511f73745ccd14335c13dbcaa5c3d5d907..c3b064c57895bdd2f40cbc97de76ee9b155548bb 100644 (file)
@@ -1,23 +1,16 @@
 #include <gtk/gtk.h>
 
 static gboolean
-da_expose (GtkWidget *widget,
-           GdkEventExpose *event,
-           gpointer user_data)
+da_draw (GtkWidget *widget,
+         cairo_t   *cr,
+         gpointer   user_data)
 {
   GtkOffscreenWindow *offscreen = (GtkOffscreenWindow *)user_data;
-  GdkPixmap *pixmap;
-  cairo_t *cr;
 
-  if (GTK_WIDGET_DRAWABLE (widget))
-    {
-      pixmap = gdk_offscreen_window_get_pixmap (GTK_WIDGET (offscreen)->window);
-
-      cr = gdk_cairo_create (widget->window);
-      gdk_cairo_set_source_pixmap (cr, pixmap, 50, 50);
-      cairo_paint (cr);
-      cairo_destroy (cr);
-    }
+  cairo_set_source_surface (cr,
+                            gtk_offscreen_window_get_surface (offscreen),
+                            50, 50);
+  cairo_paint (cr);
 
   return FALSE;
 }
@@ -73,8 +66,8 @@ main (int argc, char **argv)
   gtk_container_add (GTK_CONTAINER (window), da);
 
   g_signal_connect (da,
-                    "expose-event",
-                    G_CALLBACK (da_expose),
+                    "draw",
+                    G_CALLBACK (da_draw),
                     offscreen);
 
   g_signal_connect (offscreen,