[Xfce4-commits] <ristretto:master> Fix --slideshow and --fullscreen cli options

Stephan Arts noreply at xfce.org
Thu Jan 26 07:56:03 CET 2012


Updating branch refs/heads/master
         to ea5dffbaa4131a5390279dc3f719a692bf360663 (commit)
       from 98d7583237987d53ccb99f6e798f5c2602bdfba5 (commit)

commit ea5dffbaa4131a5390279dc3f719a692bf360663
Author: Stephan Arts <stephan at xfce.org>
Date:   Thu Jan 26 07:54:51 2012 +0100

    Fix --slideshow and --fullscreen cli options

 src/main.c        |   14 ++++++-
 src/main_window.c |  108 ++++++++++++++++++++++++++++++-----------------------
 src/main_window.h |    6 ++-
 3 files changed, 79 insertions(+), 49 deletions(-)

diff --git a/src/main.c b/src/main.c
index 43906de..1f521bd 100644
--- a/src/main.c
+++ b/src/main.c
@@ -150,9 +150,15 @@ main(int argc, char **argv)
             }
         }
 
+        /* Start fullscreen */
+        if (TRUE == start_fullscreen)
+        {
+           gtk_window_fullscreen (GTK_WINDOW (window));
+        }
+
         g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
         gtk_widget_show_all (window);
-     
+
         GDK_THREADS_ENTER();
         gtk_main();
         GDK_THREADS_LEAVE();
@@ -267,6 +273,12 @@ cb_rstto_open_files (RsttoOpenFiles *rof)
             /* Point the iterator to the correct image */
             rstto_image_list_iter_set_position (iter, 0);
         }
+
+        if (TRUE == start_slideshow)
+        {
+            rstto_main_window_play_slideshow (RSTTO_MAIN_WINDOW(rof->window));
+        }
+
     }
     return FALSE;
 }
diff --git a/src/main_window.c b/src/main_window.c
index baf6f7d..fc110e1 100644
--- a/src/main_window.c
+++ b/src/main_window.c
@@ -1263,6 +1263,10 @@ rstto_main_window_update_buttons (RsttoMainWindow *window)
                 
                 }
             }
+            if ( 0 != (gdk_window_get_state (GTK_WIDGET (window)->window) & GDK_WINDOW_STATE_FULLSCREEN ))
+            {
+                gtk_widget_hide (window->priv->toolbar);
+            }
             gtk_widget_set_sensitive ( gtk_ui_manager_get_widget ( window->priv->ui_manager, "/main-menu/file-menu/save-copy"), TRUE);
             /*
             gtk_widget_set_sensitive ( gtk_ui_manager_get_widget ( window->priv->ui_manager, "/main-menu/file-menu/print"), TRUE);
@@ -1390,6 +1394,10 @@ rstto_main_window_update_buttons (RsttoMainWindow *window)
                 
                 }
             }
+            if ( 0 != (gdk_window_get_state (GTK_WIDGET (window)->window) & GDK_WINDOW_STATE_FULLSCREEN ))
+            {
+                gtk_widget_hide (window->priv->toolbar);
+            }
             gtk_widget_set_sensitive ( gtk_ui_manager_get_widget ( window->priv->ui_manager, "/main-menu/file-menu/save-copy"), TRUE);
             /*
             gtk_widget_set_sensitive ( gtk_ui_manager_get_widget ( window->priv->ui_manager, "/main-menu/file-menu/print"), TRUE);
@@ -2301,53 +2309,7 @@ cb_rstto_main_window_show_fs_toolbar_timeout (RsttoMainWindow *window)
 static void
 cb_rstto_main_window_play (GtkWidget *widget, RsttoMainWindow *window)
 {
-    GValue timeout = {0, };
-
-    gtk_ui_manager_add_ui (window->priv->ui_manager,
-                           window->priv->pause_merge_id,
-                           "/main-menu/go-menu/placeholder-slideshow",
-                           "pause",
-                           "pause",
-                           GTK_UI_MANAGER_MENUITEM,
-                           FALSE);
-    gtk_ui_manager_remove_ui (window->priv->ui_manager,
-                              window->priv->play_merge_id);
-
-    if ( TRUE == rstto_settings_get_boolean_property (window->priv->settings_manager, "merge-toolbars"))
-    {
-        gtk_ui_manager_add_ui (
-                window->priv->ui_manager,
-                window->priv->toolbar_pause_merge_id,
-                "/file-toolbar/placeholder-slideshow",
-                "pause",
-                "pause",
-                GTK_UI_MANAGER_TOOLITEM,
-                FALSE);
-        gtk_ui_manager_remove_ui (
-                window->priv->ui_manager,
-                window->priv->toolbar_play_merge_id);
-    }
-    else
-    {
-        gtk_ui_manager_add_ui (
-                window->priv->ui_manager,
-                window->priv->toolbar_pause_merge_id,
-                "/navigation-toolbar/placeholder-slideshow",
-                "pause",
-                "pause",
-                GTK_UI_MANAGER_TOOLITEM,
-                FALSE);
-        gtk_ui_manager_remove_ui (
-                window->priv->ui_manager,
-                window->priv->toolbar_play_merge_id);
-    }
-
-
-    g_value_init (&timeout, G_TYPE_UINT);
-    g_object_get_property (G_OBJECT(window->priv->settings_manager), "slideshow-timeout", &timeout);
-
-    window->priv->playing = TRUE;
-    window->priv->play_timeout_id = g_timeout_add (g_value_get_uint (&timeout)*1000, (GSourceFunc)cb_rstto_main_window_play_slideshow, window);
+    rstto_main_window_play_slideshow (window);
 }
 
 /**
@@ -3504,3 +3466,55 @@ cb_rstto_desktop_type_changed (
     rstto_main_window_update_buttons (window);
 }
 
+
+gboolean
+rstto_main_window_play_slideshow (RsttoMainWindow *window)
+{
+    GValue timeout = {0, };
+
+    gtk_ui_manager_add_ui (window->priv->ui_manager,
+                           window->priv->pause_merge_id,
+                           "/main-menu/go-menu/placeholder-slideshow",
+                           "pause",
+                           "pause",
+                           GTK_UI_MANAGER_MENUITEM,
+                           FALSE);
+    gtk_ui_manager_remove_ui (window->priv->ui_manager,
+                              window->priv->play_merge_id);
+
+    if ( TRUE == rstto_settings_get_boolean_property (window->priv->settings_manager, "merge-toolbars"))
+    {
+        gtk_ui_manager_add_ui (
+                window->priv->ui_manager,
+                window->priv->toolbar_pause_merge_id,
+                "/file-toolbar/placeholder-slideshow",
+                "pause",
+                "pause",
+                GTK_UI_MANAGER_TOOLITEM,
+                FALSE);
+        gtk_ui_manager_remove_ui (
+                window->priv->ui_manager,
+                window->priv->toolbar_play_merge_id);
+    }
+    else
+    {
+        gtk_ui_manager_add_ui (
+                window->priv->ui_manager,
+                window->priv->toolbar_pause_merge_id,
+                "/navigation-toolbar/placeholder-slideshow",
+                "pause",
+                "pause",
+                GTK_UI_MANAGER_TOOLITEM,
+                FALSE);
+        gtk_ui_manager_remove_ui (
+                window->priv->ui_manager,
+                window->priv->toolbar_play_merge_id);
+    }
+
+
+    g_value_init (&timeout, G_TYPE_UINT);
+    g_object_get_property (G_OBJECT(window->priv->settings_manager), "slideshow-timeout", &timeout);
+
+    window->priv->playing = TRUE;
+    window->priv->play_timeout_id = g_timeout_add (g_value_get_uint (&timeout)*1000, (GSourceFunc)cb_rstto_main_window_play_slideshow, window);
+}
diff --git a/src/main_window.h b/src/main_window.h
index 9e5819d..c38d47e 100644
--- a/src/main_window.h
+++ b/src/main_window.h
@@ -74,7 +74,11 @@ RsttoImageListIter *
 rstto_main_window_get_iter (
         RsttoMainWindow *);
 
-gboolean   rstto_main_window_add_file_to_recent_files (GFile *);
+gboolean
+rstto_main_window_add_file_to_recent_files (GFile *);
+
+gboolean
+rstto_main_window_play_slideshow (RsttoMainWindow *);
 
 G_END_DECLS
 


More information about the Xfce4-commits mailing list