X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-dualscreen.c;h=66b08e167accff92b09463895d501070aab827ff;hb=70d212c3072eefb0e522166ed877ca4d71addbf1;hp=cdeb4aeaeef7af3d57978b7340a1f7f5430a2796;hpb=f3731bd3bdbcdc18c53e0f74bdaac93311046352;p=evince.git diff --git a/shell/ev-dualscreen.c b/shell/ev-dualscreen.c index cdeb4aea..66b08e16 100644 --- a/shell/ev-dualscreen.c +++ b/shell/ev-dualscreen.c @@ -44,7 +44,7 @@ struct _EvDSCWindowPrivate { GtkWidget *notesview_scrolled_window; GtkWidget *presentation_window; - EvView *presentation_view; + EvViewPresentation *presentation_view; EvDocument * presentation_document; gint moveback_monitor; }; @@ -197,16 +197,17 @@ ev_dscwindow_page_changed_cb (EvDocumentModel *model, EvDSCWindow *ev_dscwindow) { gint page = ev_document_model_get_page (model); - g_printf("page:%d\n",page); - - ev_view_presentation_set_page (EV_VIEW_PRESENTATION(ev_dscwindow->priv->presentation_view), page); + g_printf("m_page:%d\n",page); + if(page != ev_view_presentation_get_current_page (ev_dscwindow->priv->presentation_view)) + ev_view_presentation_set_page (EV_VIEW_PRESENTATION(ev_dscwindow->priv->presentation_view), page); } static void -ev_dscwindow_presentation_page_changed_cb (EvDocumentModel *model, +ev_dscwindow_presentation_page_changed_cb (EvViewPresentation *pview, GParamSpec *pspec, EvDSCWindow *ev_dscwindow) { - gint page = ev_view_presentation_get_current_page (ev_dscwindow->priv->presentation_view); + gint page = ev_view_presentation_get_current_page (pview); + g_printf("p_page:%d\n",page); ev_document_model_set_page (ev_dscwindow->priv->model, page); } @@ -216,20 +217,20 @@ ev_dscwindow_presentation_page_changed_cb (EvDocumentModel *model, **/ void ev_dscwindow_set_presentation (EvDSCWindow *ev_dscwindow, - EvWindow *presentation_window, EvDocument *document, GtkWidget *pview) + EvWindow *presentation_window, EvDocument *document, EvViewPresentation *pview) { if (!EV_IS_WINDOW (presentation_window)) return; - ev_dscwindow->priv->presentation_window = presentation_window; + ev_dscwindow->priv->presentation_window = GTK_WIDGET(presentation_window); ev_dscwindow->priv->presentation_document = document; - ev_dscwindow->priv->presentation_view = pview; + ev_dscwindow->priv->presentation_view = EV_VIEW_PRESENTATION(pview); + ev_document_model_set_document(ev_dscwindow->priv->model, + document); g_signal_connect (ev_dscwindow->priv->presentation_view, - "notify::page", + "notify::current_page", G_CALLBACK (ev_dscwindow_presentation_page_changed_cb), ev_dscwindow); - ev_document_model_set_document(ev_dscwindow->priv->model, - document); ev_dscwindow_window_placement (ev_dscwindow); } @@ -362,14 +363,14 @@ ev_dscwindow_dispose (GObject *obj) // ev_document_model_set_document (priv->model, NULL); // ev_view_set_document (EV_VIEW (priv->overview), NULL); - g_object_unref (priv->overview); +// g_object_unref (priv->overview); // } // if (EV_IS_VIEW (priv->notesview)) { // ev_view_set_document (EV_VIEW (priv->notesview), NULL); // g_object_unref (priv->notesview); // } /*TODO: save fulscreen state*/ - ev_window_stop_presentation (priv->presentation_window, 0); + ev_window_stop_presentation (EV_WINDOW(priv->presentation_window), 0); if (priv->moveback_monitor >= 0) { GtkWindow * presentation_window = GTK_WINDOW (priv->presentation_window);