Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/libview
diff options
context:
space:
mode:
authorCarlos Garcia Campos <carlosgc@gnome.org>2010-04-25 16:20:56 (GMT)
committer Carlos Garcia Campos <carlosgc@gnome.org>2010-04-25 16:20:56 (GMT)
commit46746347b389f78dfd026b511600fbe46b019bc1 (patch)
treeccf5e30e4fbfe1500d7d2ac866d7634662cacf69 /libview
parentd578d4048cd4cb85bcb3f84a30e552ddd1709bd3 (diff)
[presentation] Make inverted colors mode work in presentation mode too
Fixes bug #614693.
Diffstat (limited to 'libview')
-rw-r--r--libview/ev-view-presentation.c22
-rw-r--r--libview/ev-view-presentation.h3
2 files changed, 22 insertions, 3 deletions
diff --git a/libview/ev-view-presentation.c b/libview/ev-view-presentation.c
index 7cf94bd..5df5cfa 100644
--- a/libview/ev-view-presentation.c
+++ b/libview/ev-view-presentation.c
@@ -36,7 +36,8 @@ enum {
PROP_0,
PROP_DOCUMENT,
PROP_CURRENT_PAGE,
- PROP_ROTATION
+ PROP_ROTATION,
+ PROP_INVERTED_COLORS
};
enum {
@@ -60,6 +61,7 @@ struct _EvViewPresentation
cairo_surface_t *current_surface;
EvDocument *document;
guint rotation;
+ gboolean inverted_colors;
EvPresentationState state;
gdouble scale;
gint monitor_width;
@@ -323,6 +325,9 @@ job_finished_cb (EvJob *job,
{
EvJobRender *job_render = EV_JOB_RENDER (job);
+ if (pview->inverted_colors)
+ ev_document_misc_invert_surface (job_render->surface);
+
if (job != pview->curr_job)
return;
@@ -1326,6 +1331,9 @@ ev_view_presentation_set_property (GObject *object,
case PROP_ROTATION:
pview->rotation = g_value_get_uint (value);
break;
+ case PROP_INVERTED_COLORS:
+ pview->inverted_colors = g_value_get_boolean (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
@@ -1401,6 +1409,14 @@ ev_view_presentation_class_init (EvViewPresentationClass *klass)
0, 360, 0,
G_PARAM_WRITABLE |
G_PARAM_CONSTRUCT_ONLY));
+ g_object_class_install_property (gobject_class,
+ PROP_INVERTED_COLORS,
+ g_param_spec_boolean ("inverted_colors",
+ "Inverted Colors",
+ "Whether presentation is displayed with inverted colors",
+ FALSE,
+ G_PARAM_WRITABLE |
+ G_PARAM_CONSTRUCT_ONLY));
signals[CHANGE_PAGE] =
g_signal_new ("change_page",
@@ -1461,7 +1477,8 @@ ev_view_presentation_init (EvViewPresentation *pview)
GtkWidget *
ev_view_presentation_new (EvDocument *document,
guint current_page,
- guint rotation)
+ guint rotation,
+ gboolean inverted_colors)
{
g_return_val_if_fail (EV_IS_DOCUMENT (document), NULL);
g_return_val_if_fail (current_page < ev_document_get_n_pages (document), NULL);
@@ -1470,6 +1487,7 @@ ev_view_presentation_new (EvDocument *document,
"document", document,
"current_page", current_page,
"rotation", rotation,
+ "inverted_colors", inverted_colors,
NULL));
}
diff --git a/libview/ev-view-presentation.h b/libview/ev-view-presentation.h
index dde9ad8..24553b0 100644
--- a/libview/ev-view-presentation.h
+++ b/libview/ev-view-presentation.h
@@ -42,7 +42,8 @@ GType ev_view_presentation_get_type (void) G_GNUC_CONST;
GtkWidget *ev_view_presentation_new (EvDocument *document,
guint current_page,
- guint rotation);
+ guint rotation,
+ gboolean inverted_colors);
guint ev_view_presentation_get_current_page (EvViewPresentation *pview);
G_END_DECLS