@@ -507,7 +507,10 @@ ev_view_presentation_update_current_page (EvViewPresentation *pview,
507
507
}
508
508
}
509
509
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
+ }
511
514
512
515
if (pview -> page_cache )
513
516
ev_page_cache_set_page_range (pview -> page_cache , page , page );
@@ -523,6 +526,21 @@ ev_view_presentation_update_current_page (EvViewPresentation *pview,
523
526
gtk_widget_queue_draw (GTK_WIDGET (pview ));
524
527
}
525
528
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
+
526
544
void
527
545
ev_view_presentation_next_page (EvViewPresentation * pview )
528
546
{
@@ -1373,7 +1391,7 @@ ev_view_presentation_set_property (GObject *object,
1373
1391
pview -> enable_animations = EV_IS_DOCUMENT_TRANSITION (pview -> document );
1374
1392
break ;
1375
1393
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 ) );
1377
1395
break ;
1378
1396
case PROP_ROTATION :
1379
1397
ev_view_presentation_set_rotation (pview , g_value_get_uint (value ));
@@ -1395,6 +1413,9 @@ ev_view_presentation_get_property (GObject *object,
1395
1413
EvViewPresentation * pview = EV_VIEW_PRESENTATION (object );
1396
1414
1397
1415
switch (prop_id ) {
1416
+ case PROP_CURRENT_PAGE :
1417
+ g_value_set_uint (value , pview -> current_page );
1418
+ break ;
1398
1419
case PROP_ROTATION :
1399
1420
g_value_set_uint (value , ev_view_presentation_get_rotation (pview ));
1400
1421
break ;
@@ -1478,7 +1499,7 @@ ev_view_presentation_class_init (EvViewPresentationClass *klass)
1478
1499
"The current page" ,
1479
1500
0 , G_MAXUINT , 0 ,
1480
1501
G_PARAM_WRITABLE |
1481
- G_PARAM_CONSTRUCT_ONLY ));
1502
+ G_PARAM_CONSTRUCT ));
1482
1503
g_object_class_install_property (gobject_class ,
1483
1504
PROP_ROTATION ,
1484
1505
g_param_spec_uint ("rotation" ,
0 commit comments