]> 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 cdeb4aeaeef7af3d57978b7340a1f7f5430a2796..fdec315fe016aa5610a40df1a2486bf91c4a1a9c 100644 (file)
@@ -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;
 };
@@ -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);
 }
 
@@ -216,20 +214,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;
-       g_signal_connect (ev_dscwindow->priv->presentation_view,
+       ev_dscwindow->priv->presentation_view = EV_VIEW_PRESENTATION(pview);
+       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);
@@ -362,14 +360,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);