From: Sebastian Dröge Date: Thu, 22 Jul 2010 07:21:33 +0000 (+0200) Subject: examples: Use cairo instead of gdk_draw_* API X-Git-Tag: 1.19.3~507^2~16721 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6089bfd36a798763960b284acfdda22ccd32dc50;p=platform%2Fupstream%2Fgstreamer.git examples: Use cairo instead of gdk_draw_* API Fixes bug #625003. --- diff --git a/tests/icles/metadata_editor.c b/tests/icles/metadata_editor.c index 8dae82ec5f..a5d3e88884 100644 --- a/tests/icles/metadata_editor.c +++ b/tests/icles/metadata_editor.c @@ -331,29 +331,34 @@ on_drawingMain_expose_event (GtkWidget * widget, GdkEventExpose * event, gpointer data) { GtkAllocation a; - gint w, h, x, y; + cairo_t *cr; + GdkRectangle rect; gtk_widget_get_allocation (widget, &a); if (draw_pixbuf == NULL) return FALSE; - w = gdk_pixbuf_get_width (draw_pixbuf); - h = gdk_pixbuf_get_height (draw_pixbuf); + rect.width = gdk_pixbuf_get_width (draw_pixbuf); + rect.height = gdk_pixbuf_get_height (draw_pixbuf); /* center image */ - x = (a.width - w) / 2; - y = (a.height - h) / 2; + rect.x = (a.width - rect.width) / 2; + rect.y = (a.height - rect.height) / 2; /* sanity check, shouldn't happen */ - if (x < 0) - x = 0; - if (y < 0) - y = 0; - - gdk_draw_pixbuf (GDK_DRAWABLE (gtk_widget_get_window (widget)), - gtk_widget_get_style (widget)->black_gc, - draw_pixbuf, 0, 0, x, y, w, h, GDK_RGB_DITHER_NONE, 0, 0); + if (rect.x < 0) + rect.x = 0; + if (rect.y < 0) + rect.y = 0; + + cr = gdk_cairo_create (event->window); + + gdk_cairo_set_source_pixbuf (cr, draw_pixbuf, 0, 0); + gdk_cairo_rectangle (cr, &rect); + cairo_fill (cr); + + cairo_destroy (cr); return TRUE; /* handled expose event */ }