]> www.fi.muni.cz Git - evince.git/commitdiff
Invert colors of pages when loading in inverted color mode
authorJuanjo Marín <juanj.marin@juntadeandalucia.es>
Tue, 4 May 2010 09:10:12 +0000 (11:10 +0200)
committerCarlos Garcia Campos <carlosgc@gnome.org>
Tue, 4 May 2010 09:10:12 +0000 (11:10 +0200)
Fixes bug #616110.

libdocument/ev-document-misc.c
libdocument/ev-document-misc.h
libview/ev-view.c

index 7f2f731abd18805566ed8f316b4c39d36ca098ec..4d8bc28153fa36085a5dd2ca97b9e12883861034 100644 (file)
@@ -118,7 +118,8 @@ ev_document_misc_paint_one_page (GdkDrawable  *drawable,
                                 GtkWidget    *widget,
                                 GdkRectangle *area,
                                 GtkBorder    *border,
-                                gboolean highlight)
+                                gboolean      highlight,
+                                gboolean      inverted_colors)
 {
        GtkStyle    *style = gtk_widget_get_style (widget);
        GtkStateType state = gtk_widget_get_state (widget);
@@ -131,7 +132,7 @@ ev_document_misc_paint_one_page (GdkDrawable  *drawable,
                            area->width,
                            area->height);
        gdk_draw_rectangle (drawable,
-                           style->white_gc,
+                           inverted_colors ? style->black_gc : style->white_gc,
                            TRUE,
                            area->x + border->left,
                            area->y + border->top,
index e3920766f265b415bab99690a5add381d049fc0a..2503aa78821c84686b348c2db429935d54d4b685 100644 (file)
@@ -43,7 +43,8 @@ void       ev_document_misc_paint_one_page       (GdkDrawable  *drawable,
                                                  GtkWidget    *widget,
                                                  GdkRectangle *area,
                                                  GtkBorder    *border,
-                                                 gboolean      highlight);
+                                                 gboolean      highlight,
+                                                 gboolean      inverted_colors);
 
 cairo_surface_t *ev_document_misc_surface_from_pixbuf (GdkPixbuf *pixbuf);
 GdkPixbuf       *ev_document_misc_pixbuf_from_surface (cairo_surface_t *surface);
index 244f19b0717ab1bc83abf6c223ccad8f8f5d043f..8f9d99af48e92ed13c4d72858a4457250be434ce 100644 (file)
@@ -3988,6 +3988,7 @@ draw_one_page (EvView       *view,
        GdkRectangle overlap;
        GdkRectangle real_page_area;
        gint         current_page;
+       gboolean     inverted_colors;
 
        g_assert (view->document);
 
@@ -4004,10 +4005,12 @@ draw_one_page (EvView       *view,
        *page_ready = TRUE;
 
        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 (view->layout.bin_window,
                                         GTK_WIDGET (view),
                                         page_area, border,
-                                        page == current_page);
+                                        page == current_page,
+                                        inverted_colors);
 
        if (gdk_rectangle_intersect (&real_page_area, expose_area, &overlap)) {
                gint             width, height;