]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-window.c
[dualscreen] monitor switching
[evince.git] / shell / ev-window.c
index 95908d4db382054b58ed703540250abd5b963931..a9e03e6ebd1382aaf9cc75828edcf9ae85c1438c 100644 (file)
@@ -51,6 +51,7 @@
 #include "ephy-zoom.h"
 
 #include "ev-application.h"
+#include "ev-dualscreen.h"
 #include "ev-document-factory.h"
 #include "ev-document-find.h"
 #include "ev-document-fonts.h"
@@ -309,9 +310,6 @@ static void     ev_window_stop_fullscreen               (EvWindow         *windo
                                                         gboolean          unfullscreen_window);
 static void     ev_window_cmd_view_fullscreen           (GtkAction        *action,
                                                         EvWindow         *window);
-/*static void     ev_window_run_presentation              (EvWindow         *window);
-static void     ev_window_stop_presentation             (EvWindow         *window,
-                                                        gboolean          unfullscreen_window);*/
 static void     ev_window_cmd_view_presentation         (GtkAction        *action,
                                                         EvWindow         *window);
 static void     ev_view_popup_cmd_open_link             (GtkAction        *action,
@@ -4022,6 +4020,7 @@ ev_window_run_presentation (EvWindow *window)
                                                                    current_page,
                                                                    rotation,
                                                                    inverted_colors);
+
        g_signal_connect_swapped (window->priv->presentation_view, "finished",
                                  G_CALLBACK (ev_window_view_presentation_finished),
                                  window);
@@ -4053,6 +4052,15 @@ ev_window_run_presentation (EvWindow *window)
 
        if (window->priv->metadata && !ev_window_is_empty (window))
                ev_metadata_set_boolean (window->priv->metadata, "presentation", TRUE);
+
+       if ( get_num_monitors(GTK_WINDOW(window)) > 1) {
+               EvDSCWindow *control = ev_dscwindow_get_control();
+
+               ev_dscwindow_set_presentation   (control, window,
+                                        window->priv->document,
+                                        EV_VIEW_PRESENTATION(window->priv->presentation_view));
+               gtk_window_present (GTK_WINDOW (control));
+       }
 }
 
 void