@@ -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+
526544void
527545ev_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