[gnome-builder/wip/chergert/perspective] libide: fix ide_workbench_views_foreach()



commit 37c2c79a0ed3f6ec3f8d5c09670235fba57fda28
Author: Christian Hergert <chergert redhat com>
Date:   Mon Nov 16 23:01:51 2015 -0800

    libide: fix ide_workbench_views_foreach()

 libide/ide-workbench-private.h |    6 ------
 libide/ide-workbench.c         |   19 +++++++++++++------
 2 files changed, 13 insertions(+), 12 deletions(-)
---
diff --git a/libide/ide-workbench-private.h b/libide/ide-workbench-private.h
index 2f32ccc..e2b1d8e 100644
--- a/libide/ide-workbench-private.h
+++ b/libide/ide-workbench-private.h
@@ -45,12 +45,6 @@ struct _IdeWorkbench
   GtkPopover                *perspectives_popover;
 };
 
-typedef struct
-{
-  GtkCallback callback;
-  gpointer    user_data;
-} IdeWorkbenchForeach;
-
 void ide_workbench_set_context  (IdeWorkbench *workbench,
                                  IdeContext   *context);
 void ide_workbench_actions_init (IdeWorkbench *self);
diff --git a/libide/ide-workbench.c b/libide/ide-workbench.c
index 0938e84..268b49f 100644
--- a/libide/ide-workbench.c
+++ b/libide/ide-workbench.c
@@ -242,12 +242,16 @@ static void
 ide_workbench_views_foreach_cb (GtkWidget *widget,
                                 gpointer   user_data)
 {
-  IdeWorkbenchForeach *foreach_data = user_data;
+  struct {
+    GtkCallback callback;
+    gpointer    user_data;
+  } *closure = user_data;
 
-  g_assert (foreach_data);
-  g_assert (foreach_data->callback);
+  g_assert (IDE_IS_PERSPECTIVE (widget));
+  g_assert (closure != NULL);
+  g_assert (closure->callback != NULL);
 
-  foreach_data->callback (widget, foreach_data->user_data);
+  ide_perspective_views_foreach (IDE_PERSPECTIVE (widget), closure->callback, closure->user_data);
 }
 
 /**
@@ -263,14 +267,17 @@ ide_workbench_views_foreach (IdeWorkbench *self,
                              GtkCallback   callback,
                              gpointer      user_data)
 {
-  IdeWorkbenchForeach foreach = { callback, user_data };
+  struct {
+    GtkCallback callback;
+    gpointer    user_data;
+  } closure = { callback, user_data };
 
   g_return_if_fail (IDE_IS_WORKBENCH (self));
   g_return_if_fail (callback != NULL);
 
   gtk_container_foreach (GTK_CONTAINER (self->perspectives_stack),
                          ide_workbench_views_foreach_cb,
-                         &foreach);
+                         &closure);
 }
 
 static void


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