From: Carlos Garcia Campos Date: Thu, 15 Jul 2010 19:11:50 +0000 (+0200) Subject: [libdocument] Use cairo instead of gdk_draw_rectangle() X-Git-Tag: EVINCE_2_31_6~46 X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=cd9ceb034f67f4590d18ed61e41e74cb45de8cdf;p=evince.git [libdocument] Use cairo instead of gdk_draw_rectangle() --- diff --git a/libdocument/ev-document-misc.c b/libdocument/ev-document-misc.c index de404051..c0f75eae 100644 --- a/libdocument/ev-document-misc.c +++ b/libdocument/ev-document-misc.c @@ -133,7 +133,7 @@ ev_document_misc_get_page_border_size (gint page_width, void -ev_document_misc_paint_one_page (GdkDrawable *drawable, +ev_document_misc_paint_one_page (cairo_t *cr, GtkWidget *widget, GdkRectangle *area, GtkBorder *border, @@ -143,35 +143,35 @@ ev_document_misc_paint_one_page (GdkDrawable *drawable, GtkStyle *style = gtk_widget_get_style (widget); GtkStateType state = gtk_widget_get_state (widget); - gdk_draw_rectangle (drawable, - highlight ? style->text_gc[state] : style->dark_gc[state], - TRUE, - area->x, - area->y, - area->width, - area->height); - gdk_draw_rectangle (drawable, - inverted_colors ? style->black_gc : style->white_gc, - TRUE, - area->x + border->left, - area->y + border->top, - area->width - (border->left + border->right), - area->height - (border->top + border->bottom)); - gdk_draw_rectangle (drawable, - style->mid_gc[state], - TRUE, - area->x, - area->y + area->height - (border->bottom - border->top), - border->bottom - border->top, - border->bottom - border->top); - gdk_draw_rectangle (drawable, - style->mid_gc[state], - TRUE, - area->x + area->width - (border->right - border->left), - area->y, - border->right - border->left, - border->right - border->left); + gdk_cairo_set_source_color (cr, highlight ? &style->text[state] : &style->dark[state]); + gdk_cairo_rectangle (cr, area); + cairo_fill (cr); + if (inverted_colors) + cairo_set_source_rgb (cr, 0, 0, 0); + else + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_rectangle (cr, + area->x + border->left, + area->y + border->top, + area->width - (border->left + border->right), + area->height - (border->top + border->bottom)); + cairo_fill (cr); + + gdk_cairo_set_source_color (cr, &style->mid[state]); + cairo_rectangle (cr, + area->x, + area->y + area->height - (border->bottom - border->top), + border->bottom - border->top, + border->bottom - border->top); + cairo_fill (cr); + + cairo_rectangle (cr, + area->x + area->width - (border->right - border->left), + area->y, + border->right - border->left, + border->right - border->left); + cairo_fill (cr); } cairo_surface_t * diff --git a/libdocument/ev-document-misc.h b/libdocument/ev-document-misc.h index 7fbf716a..dfce2e2e 100644 --- a/libdocument/ev-document-misc.h +++ b/libdocument/ev-document-misc.h @@ -42,7 +42,7 @@ GdkPixbuf *ev_document_misc_get_loading_thumbnail (int width, void ev_document_misc_get_page_border_size (gint page_width, gint page_height, GtkBorder *border); -void ev_document_misc_paint_one_page (GdkDrawable *drawable, +void ev_document_misc_paint_one_page (cairo_t *cr, GtkWidget *widget, GdkRectangle *area, GtkBorder *border, diff --git a/libview/ev-view.c b/libview/ev-view.c index d5f2a71c..eee1b563 100644 --- a/libview/ev-view.c +++ b/libview/ev-view.c @@ -4214,7 +4214,7 @@ draw_one_page (EvView *view, bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (view)); current_page = ev_document_model_get_page (view->model); inverted_colors = ev_document_model_get_inverted_colors (view->model); - ev_document_misc_paint_one_page (bin_window, + ev_document_misc_paint_one_page (cr, GTK_WIDGET (view), page_area, border, page == current_page,