]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-dualscreen.c
[dualscreen] cleanup [timer] let's call this stable
[evince.git] / shell / ev-dualscreen.c
index c439e84df2612b1c9b30c291e42252d007f51b2d..0fa9782179e591efeba0be1756013fa49c6e79be 100644 (file)
@@ -108,16 +108,18 @@ static void
 ev_dscwindow_set_page (EvDSCWindow *ev_dscwindow, gint page)
 {
        guint n_pages = ev_document_get_n_pages(ev_dscwindow->priv->presentation_document);
-
        if((ev_dscwindow->priv->page == 0) && (page == 1))
-               ;
-       if((ev_dscwindow->priv->page == n_pages-1) && (page == n_pages))
-               ;
-       ev_view_presentation_set_page (EV_VIEW_PRESENTATION(ev_dscwindow->priv->presentation_view), page);
-       ev_document_model_set_page(ev_dscwindow->priv->model, page);
-       ev_document_model_set_page(ev_dscwindow->priv->notes_model, page);
+               ev_presentation_timer_start (EV_PRESENTATION_TIMER (ev_dscwindow->priv->timer));
+       if(ev_dscwindow->priv->page != page) {
+               if(ev_view_presentation_get_current_page (EV_VIEW_PRESENTATION(ev_dscwindow->priv->presentation_view)) != page);
+                       ev_view_presentation_set_page (EV_VIEW_PRESENTATION(ev_dscwindow->priv->presentation_view), page);
+               if(ev_document_model_get_page (ev_dscwindow->priv->model) != page)
+                       ev_document_model_set_page(ev_dscwindow->priv->model, page);
+               if(ev_document_model_get_page (ev_dscwindow->priv->notes_model) != page)
+                       ev_document_model_set_page(ev_dscwindow->priv->notes_model, page);
+               ev_dscwindow->priv->page = page;
+       }
        ev_presentation_timer_set_page (EV_PRESENTATION_TIMER(ev_dscwindow->priv->timer), page);
-       ev_dscwindow->priv->page = page;
 }
 
 static void
@@ -360,7 +362,7 @@ ev_dscwindow_init (EvDSCWindow *ev_dscwindow)
 static void
 ev_dscwindow_dispose (GObject *obj)
 {
-       EvDSCWindow * ev_dscwindow = EV_DSCWINDOW (obj);
+       EvDSCWindow *ev_dscwindow = EV_DSCWINDOW (obj);
        EvDSCWindowPrivate *priv = ev_dscwindow->priv;
 
        if (priv->moveback_monitor >= 0) {
@@ -373,12 +375,12 @@ ev_dscwindow_dispose (GObject *obj)
 
                gtk_window_move (presentation_window, coords.x, coords.y);
        }
-       ev_window_stop_presentation (EV_WINDOW(priv->presentation_window), TRUE);
-       /*if (priv->overview) {
-               g_object_unref (priv->overview);
-               priv->overview = NULL;
+       /*if (priv->timer) {
+               g_object_unref (priv->timer);
+               priv->timer = NULL;
        }*/
-
+       ev_presentation_timer_stop(priv->timer);
+       ev_window_stop_presentation (EV_WINDOW(priv->presentation_window), TRUE);
        G_OBJECT_CLASS (ev_dscwindow_parent_class)->dispose (obj);
 }