Skip to content

Commit 50bdf3f

Browse files
William Jon McCannraveit65
authored andcommitted
1 parent 454ca8b commit 50bdf3f

File tree

1 file changed

+24
-3
lines changed

1 file changed

+24
-3
lines changed

libview/ev-view-presentation.c

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -507,7 +507,10 @@ ev_view_presentation_update_current_page (EvViewPresentation *pview,
507507
}
508508
}
509509

510-
pview->current_page = page;
510+
if (pview->current_page != page) {
511+
pview->current_page = page;
512+
g_object_notify (G_OBJECT (pview), "current-page");
513+
}
511514

512515
if (pview->page_cache)
513516
ev_page_cache_set_page_range (pview->page_cache, page, page);
@@ -523,6 +526,21 @@ ev_view_presentation_update_current_page (EvViewPresentation *pview,
523526
gtk_widget_queue_draw (GTK_WIDGET (pview));
524527
}
525528

529+
static void
530+
ev_view_presentation_set_current_page (EvViewPresentation *pview,
531+
guint page)
532+
{
533+
if (pview->current_page == page)
534+
return;
535+
536+
if (!gtk_widget_get_realized (GTK_WIDGET (pview))) {
537+
pview->current_page = page;
538+
g_object_notify (G_OBJECT (pview), "current-page");
539+
} else {
540+
ev_view_presentation_update_current_page (pview, page);
541+
}
542+
}
543+
526544
void
527545
ev_view_presentation_next_page (EvViewPresentation *pview)
528546
{
@@ -1373,7 +1391,7 @@ ev_view_presentation_set_property (GObject *object,
13731391
pview->enable_animations = EV_IS_DOCUMENT_TRANSITION (pview->document);
13741392
break;
13751393
case PROP_CURRENT_PAGE:
1376-
pview->current_page = g_value_get_uint (value);
1394+
ev_view_presentation_set_current_page (pview, g_value_get_uint (value));
13771395
break;
13781396
case PROP_ROTATION:
13791397
ev_view_presentation_set_rotation (pview, g_value_get_uint (value));
@@ -1395,6 +1413,9 @@ ev_view_presentation_get_property (GObject *object,
13951413
EvViewPresentation *pview = EV_VIEW_PRESENTATION (object);
13961414

13971415
switch (prop_id) {
1416+
case PROP_CURRENT_PAGE:
1417+
g_value_set_uint (value, pview->current_page);
1418+
break;
13981419
case PROP_ROTATION:
13991420
g_value_set_uint (value, ev_view_presentation_get_rotation (pview));
14001421
break;
@@ -1478,7 +1499,7 @@ ev_view_presentation_class_init (EvViewPresentationClass *klass)
14781499
"The current page",
14791500
0, G_MAXUINT, 0,
14801501
G_PARAM_WRITABLE |
1481-
G_PARAM_CONSTRUCT_ONLY));
1502+
G_PARAM_CONSTRUCT));
14821503
g_object_class_install_property (gobject_class,
14831504
PROP_ROTATION,
14841505
g_param_spec_uint ("rotation",

0 commit comments

Comments
 (0)