[Xfce4-commits] <ristretto:ristretto-0.0> Add sticky button to fullscreen-toolbar

Stephan Arts noreply at xfce.org
Sun Oct 23 19:13:12 CEST 2011


Updating branch refs/heads/ristretto-0.0
         to 41f49ce624d31417b35e1f8b171148fda8ca5269 (commit)
       from 1e586ea0c33bed9d55245b85a508bc277da099ee (commit)

commit 41f49ce624d31417b35e1f8b171148fda8ca5269
Author: Stephan Arts <stephan at xfce.org>
Date:   Thu Apr 30 09:52:59 2009 +0200

    Add sticky button to fullscreen-toolbar

 ChangeLog              |   27 +++++++++++++++++++++------
 src/main_window.c      |   24 +++++++++++++++++++++++-
 src/main_window_ui.xml |    2 ++
 3 files changed, 46 insertions(+), 7 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index f235304..e690db2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,15 +1,30 @@
 2009-04-30  Stephan Arts <stephan at xfce.org>
 
 	* src/main_window.c
-	  src/picture_viewer.c
-	  src/picture_viewer.h: Let the pictureviewer figure out the fullscreen-
-	  state of it's parent-window by itself
+	  src/main_window_ui.xml: Add Sticky button to the fullscreen-toolbar.
+
+
+2009-04-30  Stephan Arts <stephan at xfce.org>
+
+	* src/main_window.c
+	  src/main_window_ui.xml: Set is_important hint on 'leave-fullscreen' 
+	  toolitem.
+
+
+2009-04-30  Stephan Arts <stephan at xfce.org>
+
 	* src/main_window.c
 	  src/main_window_ui.xml: Add 'fullscreen-toolbar' with controls when in
-	  fullscreen-mode.
+	  fullscreen-mode.  
+
+
+2009-04-30  Stephan Arts <stephan at xfce.org>
+
 	* src/main_window.c
-	  src/main_window_ui.xml: Set is_important hint on 'leave-fullscreen'
-	  toolitem.
+	  src/picture_viewer.c
+	  src/picture_viewer.h: Let the pictureviewer figure out the fullscreen-
+	  state of it's parent-window by itself
+
 
 2009-04-28  Stephan Arts <stephan at xfce.org>
 
diff --git a/src/main_window.c b/src/main_window.c
index 1c8a409..adb5711 100644
--- a/src/main_window.c
+++ b/src/main_window.c
@@ -59,6 +59,8 @@ struct _RsttoMainWindowPriv
 
     guint show_fs_toolbar_timeout_id;
     gint window_save_geometry_timer_id;
+    
+    gboolean fs_toolbar_sticky;
 
     RsttoNavigatorIter *iter;
 
@@ -183,6 +185,9 @@ cb_rstto_main_window_contents (GtkWidget *widget, RsttoMainWindow *window);
 static void
 cb_rstto_main_window_quit (GtkWidget *widget, RsttoMainWindow *window);
 
+static void
+cb_rstto_main_window_fullscreen_toolbar_sticky (GtkWidget *widget, RsttoMainWindow *window);
+
 static gboolean 
 cb_rstto_main_window_picture_viewer_motion_notify_event (RsttoPictureViewer *viewer,
                                              GdkEventMotion *event,
@@ -248,6 +253,7 @@ static const GtkToggleActionEntry toggle_action_entries[] =
 {
     { "show-toolbar", NULL, N_ ("Show _Toolbar"), NULL, NULL, G_CALLBACK (cb_rstto_main_window_toggle_show_toolbar), TRUE, },
     { "show-thumbnailbar", NULL, N_ ("Show Thumb_nailbar"), NULL, NULL, NULL, FALSE},
+    { "sticky", GTK_STOCK_ADD, N_("Sticky"), NULL, NULL, G_CALLBACK (cb_rstto_main_window_fullscreen_toolbar_sticky), FALSE }
 };
 
 
@@ -1520,7 +1526,7 @@ cb_rstto_main_window_picture_viewer_motion_notify_event (RsttoPictureViewer *vie
     RsttoMainWindow *window = RSTTO_MAIN_WINDOW (user_data);
     if(gdk_window_get_state(GTK_WIDGET(window)->window) & GDK_WINDOW_STATE_FULLSCREEN)
     {
-        if (event->state == 0)
+        if (event->state == 0 && (window->priv->fs_toolbar_sticky == FALSE))
         {
             /* TODO: implement timer to hide it again */
             gtk_widget_show (window->priv->fs_toolbar);
@@ -1540,3 +1546,19 @@ cb_rstto_main_window_show_fs_toolbar_timeout (RsttoMainWindow *window)
     gtk_widget_hide (window->priv->fs_toolbar);
     return FALSE;
 }
+
+static void
+cb_rstto_main_window_fullscreen_toolbar_sticky (GtkWidget *widget, RsttoMainWindow *window)
+{
+    if (window->priv->show_fs_toolbar_timeout_id > 0)
+    {
+        g_source_remove (window->priv->show_fs_toolbar_timeout_id);
+        window->priv->show_fs_toolbar_timeout_id = 0;
+    }
+    window->priv->fs_toolbar_sticky = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (widget));
+
+    if (window->priv->fs_toolbar_sticky == FALSE)
+    {
+        window->priv->show_fs_toolbar_timeout_id = g_timeout_add (1500, (GSourceFunc)cb_rstto_main_window_show_fs_toolbar_timeout, window);
+    }
+}
diff --git a/src/main_window_ui.xml b/src/main_window_ui.xml
index 2b0aa4a..c3ab245 100644
--- a/src/main_window_ui.xml
+++ b/src/main_window_ui.xml
@@ -72,6 +72,8 @@
 
     -->
     <toolbar name="fullscreen-toolbar">
+        <toolitem action="sticky"/>
+        <separator/>
         <toolitem action="back"/>
         <placeholder name="placeholder-slideshow" />
         <toolitem action="forward"/>


More information about the Xfce4-commits mailing list