diff options
author | Javier Jardón <jjardon@gnome.org> | 2010-09-27 00:06:00 +0200 |
---|---|---|
committer | Javier Jardón <jjardon@gnome.org> | 2010-09-27 00:07:20 +0200 |
commit | e16f9bc51cb3419868a64851fe83a2a9d74e7c51 (patch) | |
tree | 1bc5f90ad19e517bf63fe74c5bf6fdb8ed7f1125 /demos | |
parent | b8b6ceef16d52527d96d8c15d61751cc6ef502ab (diff) | |
download | gtk+-e16f9bc51cb3419868a64851fe83a2a9d74e7c51.tar.gz |
gtk-demo: Use draw signal in toolpalette demo
Diffstat (limited to 'demos')
-rw-r--r-- | demos/gtk-demo/toolpalette.c | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/demos/gtk-demo/toolpalette.c b/demos/gtk-demo/toolpalette.c index b6f12283be..537fddd41a 100644 --- a/demos/gtk-demo/toolpalette.c +++ b/demos/gtk-demo/toolpalette.c @@ -81,21 +81,17 @@ canvas_item_draw (const CanvasItem *item, } static gboolean -canvas_expose_event (GtkWidget *widget, - GdkEventExpose *event) +canvas_draw (GtkWidget *widget, + cairo_t *cr) { GtkAllocation allocation; - cairo_t *cr; GList *iter; - - cr = gdk_cairo_create (gtk_widget_get_window (widget)); - gdk_cairo_region (cr, event->region); - cairo_clip (cr); - - gtk_widget_get_allocation (widget, &allocation); + gint width, height; cairo_set_source_rgb (cr, 1, 1, 1); - cairo_rectangle (cr, 0, 0, allocation.width, allocation.height); + width = gtk_widget_get_allocated_width (widget); + height = gtk_widget_get_allocated_height (widget); + cairo_rectangle (cr, 0, 0, width, height); cairo_fill (cr); for (iter = canvas_items; iter; iter = iter->next) @@ -104,8 +100,6 @@ canvas_expose_event (GtkWidget *widget, if (drop_item) canvas_item_draw (drop_item, cr, TRUE); - cairo_destroy (cr); - return TRUE; } @@ -572,7 +566,7 @@ do_toolpalette (GtkWidget *do_widget) gtk_widget_set_app_paintable (contents, TRUE); g_object_connect (contents, - "signal::expose-event", canvas_expose_event, NULL, + "signal::draw", canvas_draw, NULL, "signal::drag-data-received", passive_canvas_drag_data_received, NULL, NULL); @@ -600,7 +594,7 @@ do_toolpalette (GtkWidget *do_widget) gtk_widget_set_app_paintable (contents, TRUE); g_object_connect (contents, - "signal::expose-event", canvas_expose_event, NULL, + "signal::draw", canvas_draw, NULL, "signal::drag-motion", interactive_canvas_drag_motion, NULL, "signal::drag-data-received", interactive_canvas_drag_data_received, NULL, "signal::drag-leave", interactive_canvas_drag_leave, NULL, |