Documentation: Use G_SOURCE_CONTINUE and G_SOURCE_REMOVE
[geeqie.git] / src / preferences.cc
index 2b22ab2..bce3d50 100644 (file)
@@ -1367,7 +1367,7 @@ static gboolean filter_add_scroll(gpointer data)
        gtk_tree_path_free(path);
        g_list_free(list_cells);
 
-       return(FALSE);
+       return(G_SOURCE_REMOVE);
 }
 
 static void filter_add_cb(GtkWidget *UNUSED(widget), gpointer data)
@@ -1412,7 +1412,7 @@ static gboolean filter_default_ok_scroll(GtkTreeView *data)
 
        gtk_tree_path_free(path);
 
-       return(FALSE);
+       return(G_SOURCE_REMOVE);
 }
 
 static void filter_default_ok_cb(GenericDialog *gd, gpointer UNUSED(data))
@@ -1733,7 +1733,7 @@ static gboolean accel_default_scroll(GtkTreeView *data)
 
        gtk_tree_path_free(path);
 
-       return(FALSE);
+       return(G_SOURCE_REMOVE);
 }
 
 static void accel_default_cb(GtkWidget *UNUSED(widget), gpointer data)
@@ -1743,10 +1743,10 @@ static void accel_default_cb(GtkWidget *UNUSED(widget), gpointer data)
        g_idle_add((GSourceFunc)accel_default_scroll, data);
 }
 
-//void accel_remove_selection(GtkTreeModel *UNUSED(model), GtkTreePath *UNUSED(path), GtkTreeIter *iter, gpointer UNUSED(data))
-//{
-       //gtk_tree_store_set(accel_store, iter, AE_KEY, "", -1);
-//}
+void accel_clear_selection(GtkTreeModel *UNUSED(model), GtkTreePath *UNUSED(path), GtkTreeIter *iter, gpointer UNUSED(data))
+{
+       gtk_tree_store_set(accel_store, iter, AE_KEY, "", -1);
+}
 
 void accel_reset_selection(GtkTreeModel *model, GtkTreePath *UNUSED(path), GtkTreeIter *iter, gpointer UNUSED(data))
 {
@@ -1764,6 +1764,15 @@ void accel_reset_selection(GtkTreeModel *model, GtkTreePath *UNUSED(path), GtkTr
        g_free(accel);
 }
 
+static void accel_clear_cb(GtkWidget *UNUSED(widget), gpointer data)
+{
+       GtkTreeSelection *selection;
+
+       if (!accel_store) return;
+       selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(data));
+       gtk_tree_selection_selected_foreach(selection, &accel_clear_selection, NULL);
+}
+
 static void accel_reset_cb(GtkWidget *UNUSED(widget), gpointer data)
 {
        GtkTreeSelection *selection;
@@ -3100,7 +3109,7 @@ static gboolean keywords_find_file(gpointer data)
                file_data_unref(fd);
                string_list_free(keywords);
 
-               return (TRUE);
+               return (G_SOURCE_CONTINUE);
                }
        else if (kfd->list_dir)
                {
@@ -3113,12 +3122,12 @@ static gboolean keywords_find_file(gpointer data)
 
                file_data_unref(fd);
 
-               return TRUE;
+               return G_SOURCE_CONTINUE;
                }
 
        keywords_find_finish(kfd);
 
-       return FALSE;
+       return G_SOURCE_REMOVE;
 }
 
 static void keywords_find_start_cb(GenericDialog *UNUSED(fd), gpointer data)
@@ -3766,6 +3775,12 @@ static void config_tab_accelerators(GtkWidget *notebook)
 
        button = pref_button_new(NULL, NULL, _("Reset selected"), FALSE,
                                 G_CALLBACK(accel_reset_cb), accel_view);
+       gtk_widget_set_tooltip_text(button, _("Will only reset changes made before the settings are saved"));
+       gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
+       gtk_widget_show(button);
+
+       button = pref_button_new(NULL, NULL, _("Clear selected"), FALSE,
+                                G_CALLBACK(accel_clear_cb), accel_view);
        gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
        gtk_widget_show(button);
 }