From 2208d0af94aeb5b68d1209ad2b11cd46c14c8d23 Mon Sep 17 00:00:00 2001 From: infirit Date: Sun, 12 Jul 2015 19:44:26 +0200 Subject: Replace Gdk drawing with Cairo --- font-viewer/font-view.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'font-viewer') diff --git a/font-viewer/font-view.c b/font-viewer/font-view.c index 3c150441..54a402dd 100644 --- a/font-viewer/font-view.c +++ b/font-viewer/font-view.c @@ -115,6 +115,7 @@ create_text_pixmap(GtkWidget *drawing_area, FT_Face face) XftFont *font; gint *sizes = NULL, n_sizes, alpha_size; FcCharSet *charset = NULL; + cairo_t *cr; GdkWindow *window = gtk_widget_get_window (drawing_area); text = pango_language_get_sample_string(NULL); @@ -201,8 +202,10 @@ create_text_pixmap(GtkWidget *drawing_area, FT_Face face) pixmap_width, pixmap_height, -1); if (!pixmap) goto end; - gdk_draw_rectangle(pixmap, gtk_widget_get_style(drawing_area)->white_gc, - TRUE, 0, 0, pixmap_width, pixmap_height); + cr = gdk_cairo_create (pixmap); + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_paint (cr); + cairo_destroy (cr); xdrawable = GDK_DRAWABLE_XID(pixmap); draw = XftDrawCreate(xdisplay, xdrawable, xvisual, xcolormap); @@ -387,12 +390,14 @@ add_face_info(GtkWidget *table, gint *row_p, const gchar *uri, FT_Face face) static gboolean expose_event(GtkWidget *widget, GdkEventExpose *event, GdkPixmap *pixmap) { - gdk_draw_drawable(gtk_widget_get_window (widget), - gtk_widget_get_style (widget)->fg_gc[gtk_widget_get_state (widget)], - pixmap, - event->area.x, event->area.y, - event->area.x, event->area.y, - event->area.width, event->area.height); + cairo_t *cr; + cr = gdk_cairo_create (gtk_widget_get_window (widget)); + gdk_cairo_set_source_pixmap (cr, pixmap, 0, 0); + gdk_cairo_region (cr, event->region); + cairo_fill (cr); + + cairo_destroy (cr); + return FALSE; } #endif @@ -517,9 +522,6 @@ main(int argc, char **argv) gchar *font_file, *title; gint row; GtkWidget *window, *hbox, *table, *swin, *drawing_area; -#if !GTK_CHECK_VERSION (3, 0, 0) - GdkPixmap *pixmap; -#endif GdkColor white = { 0, 0xffff, 0xffff, 0xffff }; GtkWidget *button, *align; -- cgit v1.2.1