[balsa/wip/gtk4: 208/351] Use gtk_container_foreach



commit e5886f90069da5544972638c4f49a425e9cb30fa
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date:   Tue Mar 6 18:00:15 2018 -0500

    Use gtk_container_foreach
    
    …instead of getting the list of children, and in one place leaking it.

 src/balsa-index.c           |   13 ++++++++-----
 src/filter-edit-callbacks.c |   13 +++++++++----
 2 files changed, 17 insertions(+), 9 deletions(-)
---
diff --git a/src/balsa-index.c b/src/balsa-index.c
index 9e10acc..9dbbf64 100644
--- a/src/balsa-index.c
+++ b/src/balsa-index.c
@@ -1893,12 +1893,17 @@ bndx_popup_menu_create(BalsaIndex * index)
  */
 
 static void
+bndx_set_sensitive_func(GtkWidget * item, gpointer sensitive)
+{
+    gtk_widget_set_sensitive(item, GPOINTER_TO_INT(sensitive));
+}
+
+static void
 bndx_do_popup(BalsaIndex * index, const GdkEvent * event)
 {
     GtkWidget *menu = index->popup_menu;
     GtkWidget *submenu;
     LibBalsaMailbox* mailbox;
-    GList *list, *l;
     gboolean any;
     gboolean any_deleted = FALSE;
     gboolean any_not_deleted = FALSE;
@@ -1920,10 +1925,8 @@ bndx_do_popup(BalsaIndex * index, const GdkEvent * event)
     any = selected->len > 0;
     balsa_index_selected_msgnos_free(index, selected);
 
-    l = gtk_container_get_children(GTK_CONTAINER(menu));
-    for (list = l; list; list = list->next)
-        gtk_widget_set_sensitive(GTK_WIDGET(list->data), any);
-    g_list_free(l);
+    gtk_container_foreach(GTK_CONTAINER(menu), bndx_set_sensitive_func,
+                          GINT_TO_POINTER(any));
 
     mailbox = index->mailbox_node->mailbox;
     gtk_widget_set_sensitive(index->delete_item,
diff --git a/src/filter-edit-callbacks.c b/src/filter-edit-callbacks.c
index d7832e4..8893bf2 100644
--- a/src/filter-edit-callbacks.c
+++ b/src/filter-edit-callbacks.c
@@ -1532,6 +1532,12 @@ fe_action_selected(GtkWidget * widget, gpointer data)
  *
  * Callback for the "toggled" signal of the action buttons.
  */
+static void
+fe_button_toggled_func(GtkWidget * child, gpointer active)
+{
+    gtk_widget_set_sensitive(child, GPOINTER_TO_INT(active));
+}
+
 void
 fe_button_toggled(GtkWidget * widget, gpointer data)
 {
@@ -1539,10 +1545,9 @@ fe_button_toggled(GtkWidget * widget, gpointer data)
     gboolean active = gtk_toggle_button_get_active(button);
 
     if (GTK_IS_CONTAINER(data)) {
-        GList *list;
-        for (list = gtk_container_get_children(GTK_CONTAINER(data));
-             list != NULL; list = list->next)
-            gtk_widget_set_sensitive(GTK_WIDGET(list->data), active);
+        gtk_container_foreach(GTK_CONTAINER(data),
+                              fe_button_toggled_func,
+                              GINT_TO_POINTER(active));
     } else
         gtk_widget_set_sensitive(GTK_WIDGET(data), active);
     set_button_sensitivities(TRUE);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]