[Goodies-commits] r3211 - ristretto/trunk/src

Stephan Arts stephan at xfce.org
Wed Sep 12 21:55:24 CEST 2007


Author: stephan
Date: 2007-09-12 19:55:24 +0000 (Wed, 12 Sep 2007)
New Revision: 3211

Modified:
   ristretto/trunk/src/main.c
   ristretto/trunk/src/navigator.c
Log:
Fix the order in which the signals are send when removing images. (closing them)
Fix sensitivity of close button


Modified: ristretto/trunk/src/main.c
===================================================================
--- ristretto/trunk/src/main.c	2007-09-12 17:20:36 UTC (rev 3210)
+++ ristretto/trunk/src/main.c	2007-09-12 19:55:24 UTC (rev 3211)
@@ -118,6 +118,7 @@
 static XfceRc *xfce_rc;
 static const gchar *thumbnail_viewer_orientation;
 static gint window_save_geometry_timer_id = 0;
+static GtkWidget *menu_item_close;
 
 int main(int argc, char **argv)
 {
@@ -182,7 +183,7 @@
     GtkWidget *menu_item_open_dir = gtk_menu_item_new_with_mnemonic(_("O_pen Folder"));
     GtkWidget *menu_item_recently = gtk_menu_item_new_with_mnemonic(_("_Recently used"));
     GtkWidget *menu_item_separator = gtk_separator_menu_item_new();
-    GtkWidget *menu_item_close = gtk_image_menu_item_new_from_stock(GTK_STOCK_CLOSE, accel_group);
+    menu_item_close = gtk_image_menu_item_new_from_stock(GTK_STOCK_CLOSE, accel_group);
     GtkWidget *menu_item_quit = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, accel_group);
 
     GtkWidget *menu_file = gtk_menu_new();
@@ -830,7 +831,7 @@
             {
                 RsttoNavigatorEntry *entry = rstto_navigator_entry_new(info);
                 rstto_navigator_add (navigator, entry);
-
+                gtk_widget_set_sensitive(menu_item_close, TRUE);
                 gchar *uri = thunar_vfs_path_dup_uri(info->path);
                 gtk_recent_manager_add_item(recent_manager, uri);
                 g_free(uri);
@@ -885,6 +886,7 @@
                     {
                         RsttoNavigatorEntry *entry = rstto_navigator_entry_new(info);
                         rstto_navigator_add (navigator, entry);
+                        gtk_widget_set_sensitive(menu_item_close, TRUE);
                     }
                     g_free(file_media);
                     thunar_vfs_path_unref(path);
@@ -917,6 +919,7 @@
             {
                 RsttoNavigatorEntry *entry = rstto_navigator_entry_new(info);
                 rstto_navigator_add (navigator, entry);
+                gtk_widget_set_sensitive(menu_item_close, TRUE);
             }
             else
             {
@@ -936,6 +939,7 @@
                         {
                             RsttoNavigatorEntry *entry = rstto_navigator_entry_new(file_info);
                             rstto_navigator_add (navigator, entry);
+                            gtk_widget_set_sensitive(menu_item_close, TRUE);
                         }
                         g_free(file_media);
                         thunar_vfs_path_unref(file_path);
@@ -1072,4 +1076,8 @@
     RsttoNavigatorEntry *entry = rstto_navigator_get_file(navigator);
     rstto_navigator_remove(navigator, entry);    
     rstto_navigator_entry_free(entry);
+    if (rstto_navigator_get_n_files(navigator) == 0)
+    {
+        gtk_widget_set_sensitive(item, FALSE);
+    }
 }

Modified: ristretto/trunk/src/navigator.c
===================================================================
--- ristretto/trunk/src/navigator.c	2007-09-12 17:20:36 UTC (rev 3210)
+++ ristretto/trunk/src/navigator.c	2007-09-12 19:55:24 UTC (rev 3211)
@@ -355,7 +355,39 @@
     {
         if(navigator->file_iter->data == entry)
         {
-            rstto_navigator_jump_forward(navigator);
+            navigator->old_position = rstto_navigator_get_position(navigator);
+            rstto_navigator_entry_free_pixbuf(navigator->file_iter->data);
+            navigator->file_iter = g_list_next(navigator->file_iter);
+            if(!navigator->file_iter)
+                navigator->file_iter = g_list_first(navigator->file_list);
+
+            navigator->file_list = g_list_remove(navigator->file_list, entry);
+            if(g_list_length(navigator->file_list) == 0)
+            {
+                navigator->file_iter = NULL;
+                navigator->file_list = NULL;
+            }
+            g_signal_emit(G_OBJECT(navigator), rstto_navigator_signals[RSTTO_NAVIGATOR_SIGNAL_REORDERED], 0, NULL);
+            if(navigator->file_iter)
+            {
+                g_signal_emit(G_OBJECT(navigator),
+                              rstto_navigator_signals[RSTTO_NAVIGATOR_SIGNAL_ITER_CHANGED],
+                              0,
+                              g_list_position(navigator->file_list, navigator->file_iter),
+                              navigator->file_iter->data,
+                              NULL);
+            }
+            else
+            {
+                g_signal_emit(G_OBJECT(navigator),
+                              rstto_navigator_signals[RSTTO_NAVIGATOR_SIGNAL_ITER_CHANGED],
+                              0,
+                              -1,
+                              NULL,
+                              NULL);
+
+            }
+            return;
         }
     }
     navigator->file_list = g_list_remove(navigator->file_list, entry);




More information about the Goodies-commits mailing list