summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan Pablo Ugarte <jpu@src.gnome.org>2006-08-19 19:55:15 +0000
committerJuan Pablo Ugarte <jpu@src.gnome.org>2006-08-19 19:55:15 +0000
commitd698dd3f2bdc8a85cd40eb756fce8647fdbad395 (patch)
treed81ea8b3c6907f384d49c145b879158b9f1dcbc0
parent8d257417aba6c67c53249b1b515e6a75e511c11f (diff)
downloadglade-d698dd3f2bdc8a85cd40eb756fce8647fdbad395.tar.gz
sort signals alphabetically in glade_widget_class_add_signals() (bug
* src/glade-widget-class.c: sort signals alphabetically in glade_widget_class_add_signals() (bug 352013)
-rw-r--r--ChangeLog5
-rw-r--r--src/glade-widget-class.c13
2 files changed, 17 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 37eadf78..ae6597e4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-08-18 Juan Pablo Ugarte <juanpablougarte@gmail.com>
+
+ * src/glade-widget-class.c: sort signals alphabetically in
+ glade_widget_class_add_signals() (bug 352013)
+
2006-08-19 Vincent Geddes <vincent.geddes@gmail.com>
* src/glade-project-window.c:
diff --git a/src/glade-widget-class.c b/src/glade-widget-class.c
index cc403486..36fd6f22 100644
--- a/src/glade-widget-class.c
+++ b/src/glade-widget-class.c
@@ -258,11 +258,19 @@ glade_widget_class_list_children (GladeWidgetClass *class)
return children;
}
+static gint
+glade_widget_class_signal_comp (gconstpointer a, gconstpointer b)
+{
+ const GladeSignalClass *signal_a = a, *signal_b = b;
+ return strcmp (signal_b->query.signal_name, signal_a->query.signal_name);
+}
+
static void
glade_widget_class_add_signals (GList **signals, GType type)
{
guint count, *sig_ids, num_signals;
GladeSignalClass *cur;
+ GList *list = NULL;
if (G_TYPE_IS_INSTANTIATABLE (type) || G_TYPE_IS_INTERFACE (type))
{
@@ -282,9 +290,12 @@ glade_widget_class_add_signals (GList **signals, GType type)
cur->name = (cur->query.signal_name);
cur->type = (gchar *) g_type_name (type);
- *signals = g_list_prepend (*signals, cur);
+ list = g_list_prepend (list, cur);
}
g_free (sig_ids);
+
+ list = g_list_sort (list, glade_widget_class_signal_comp);
+ *signals = g_list_concat (list, *signals);
}
}