]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-dualscreen.c
[dualscreen] [presentation] make presentation control dscwindow, presentation ->...
[evince.git] / shell / ev-dualscreen.c
index bb3c89e7d9f2aca01f06faa1a1e43b341d1b0eef..fdec315fe016aa5610a40df1a2486bf91c4a1a9c 100644 (file)
@@ -170,7 +170,6 @@ static void
 ev_dscwindow_window_placement (EvDSCWindow *ev_dscwindow)
 {
        gint num_monitors = get_num_monitors (GTK_WINDOW (ev_dscwindow));
-       g_printf ("num_monitors: %d \n",num_monitors);
        //if (num_monitors == 2) {
                GtkWindow * presentation_window = GTK_WINDOW (ev_dscwindow->priv->presentation_window);
                GdkScreen * screen = gtk_window_get_screen (presentation_window);
@@ -197,16 +196,15 @@ 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);
+       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);
        ev_document_model_set_page (ev_dscwindow->priv->model, page);
 }
 
@@ -224,12 +222,12 @@ ev_dscwindow_set_presentation (EvDSCWindow *ev_dscwindow,
        ev_dscwindow->priv->presentation_window = GTK_WIDGET(presentation_window);
        ev_dscwindow->priv->presentation_document = document;
        ev_dscwindow->priv->presentation_view = EV_VIEW_PRESENTATION(pview);
-       g_signal_connect (ev_dscwindow->priv->presentation_view,
+       ev_document_model_set_document(ev_dscwindow->priv->model,
+               document);
+       g_signal_connect (G_OBJECT(ev_dscwindow->priv->presentation_view),
                          "notify::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);
 }
 
@@ -263,7 +261,7 @@ ev_dscwindow_init (EvDSCWindow *ev_dscwindow)
        GtkWidget *v = gtk_vbox_new (FALSE, 0);
 
        ev_dscwindow->priv->model = ev_document_model_new ();
-       g_signal_connect (ev_dscwindow->priv->model,
+       g_signal_connect (G_OBJECT(ev_dscwindow->priv->model),
                          "notify::page",
                          G_CALLBACK (ev_dscwindow_page_changed_cb),
                          ev_dscwindow);