[libgnomekbd] Blit pixmap using Cairo
- From: Sergey V. Udaltsov <svu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgnomekbd] Blit pixmap using Cairo
- Date: Fri, 20 Aug 2010 23:30:28 +0000 (UTC)
commit b16e552612e90797790b4fb7e74720fd38852fb6
Author: Benjamin Otte <otte redhat com>
Date: Thu Aug 19 12:31:29 2010 +0200
Blit pixmap using Cairo
https://bugzilla.gnome.org/show_bug.cgi?id=627353
libgnomekbd/gkbd-keyboard-drawing.c | 16 +++++++++-------
1 files changed, 9 insertions(+), 7 deletions(-)
---
diff --git a/libgnomekbd/gkbd-keyboard-drawing.c b/libgnomekbd/gkbd-keyboard-drawing.c
index 188e90e..909930b 100644
--- a/libgnomekbd/gkbd-keyboard-drawing.c
+++ b/libgnomekbd/gkbd-keyboard-drawing.c
@@ -1383,8 +1383,8 @@ static gboolean
expose_event (GtkWidget * widget,
GdkEventExpose * event, GkbdKeyboardDrawing * drawing)
{
- GtkStateType state = gtk_widget_get_state (GTK_WIDGET (drawing));
GtkAllocation allocation;
+ cairo_t *cr;
if (!drawing->xkb)
return FALSE;
@@ -1392,12 +1392,14 @@ expose_event (GtkWidget * widget,
if (drawing->pixmap == NULL)
return FALSE;
- gdk_draw_drawable (gtk_widget_get_window (widget),
- gtk_widget_get_style (widget)->fg_gc[state],
- drawing->pixmap,
- event->area.x, event->area.y,
- event->area.x, event->area.y,
- event->area.width, event->area.height);
+ cr = gdk_cairo_create (event->window);
+ gdk_cairo_region (cr, event->region);
+ cairo_clip (cr);
+
+ gdk_cairo_set_source_pixmap (cr, drawing->pixmap, 0, 0);
+ cairo_paint (cr);
+
+ cairo_destroy (cr);
if (gtk_widget_has_focus (widget)) {
gtk_widget_get_allocation (widget, &allocation);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]