summaryrefslogtreecommitdiff
path: root/gtk/gtkcombo.c
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@src.gnome.org>1999-01-21 00:37:48 +0000
committerJeff Garzik <jgarzik@src.gnome.org>1999-01-21 00:37:48 +0000
commit6e3e247b9a1cdc7fec2197dceda35752f38c8003 (patch)
tree68c8ba7e932c79152d43cb4580fde846eaa102b1 /gtk/gtkcombo.c
parentdf21a7064f0c5130d84e035f820eae197024992b (diff)
downloadgtk+-6e3e247b9a1cdc7fec2197dceda35752f38c8003.tar.gz
. Free 'nprefix', closing a memory leak. Spaced out the code a bit to make
. * gtk/gtkcombo.c (gtk_combo_entry_key_press): Free 'nprefix', closing a memory leak. Spaced out the code a bit to make it more readable. * gtk/gtkhbox.[ch] (gtk_hbox_new), gtk/gtkvbox.[ch] (gtk_vbox_new): Change 'homogenous' arg from gint to gboolean. * gtk/gtktogglebutton.[ch]: New function gtk_toggle_button_get_active().
Diffstat (limited to 'gtk/gtkcombo.c')
-rw-r--r--gtk/gtkcombo.c32
1 files changed, 21 insertions, 11 deletions
diff --git a/gtk/gtkcombo.c b/gtk/gtkcombo.c
index 8d29d206f7..6857279e95 100644
--- a/gtk/gtkcombo.c
+++ b/gtk/gtkcombo.c
@@ -125,27 +125,37 @@ gtk_combo_entry_key_press (GtkEntry * entry, GdkEventKey * event, GtkCombo * com
gchar* nprefix = NULL;
gint pos;
- if ( !GTK_LIST(combo->list)->children )
+ if ( !GTK_LIST (combo->list)->children )
return FALSE;
gtk_signal_emit_stop_by_name (GTK_OBJECT (entry), "key_press_event");
- cmpl = g_completion_new((GCompletionFunc)gtk_combo_func);
- g_completion_add_items(cmpl, GTK_LIST(combo->list)->children);
- pos = GTK_EDITABLE(entry)->current_pos;
- prefix = gtk_editable_get_chars(GTK_EDITABLE(entry), 0, pos);
+
+ cmpl = g_completion_new ((GCompletionFunc)gtk_combo_func);
+ g_completion_add_items (cmpl, GTK_LIST (combo->list)->children);
+
+ pos = GTK_EDITABLE (entry)->current_pos;
+ prefix = gtk_editable_get_chars (GTK_EDITABLE (entry), 0, pos);
+
g_completion_complete(cmpl, prefix, &nprefix);
- if (nprefix && strlen(nprefix) > strlen(prefix))
+
+ if (nprefix && strlen (nprefix) > strlen (prefix))
{
- gtk_editable_insert_text(GTK_EDITABLE(entry), nprefix+pos,
- strlen(nprefix)-strlen(prefix), &pos);
- GTK_EDITABLE(entry)->current_pos = pos;
+ gtk_editable_insert_text (GTK_EDITABLE (entry), nprefix + pos,
+ strlen (nprefix) - strlen (prefix), &pos);
+ GTK_EDITABLE (entry)->current_pos = pos;
}
- g_free(prefix);
- g_completion_free(cmpl);
+
+ if (nprefix)
+ g_free (nprefix);
+ g_free (prefix);
+ g_completion_free (cmpl);
+
return TRUE;
}
+
if (!combo->use_arrows || !GTK_LIST (combo->list)->children)
return FALSE;
+
li = g_list_find (GTK_LIST (combo->list)->children, gtk_combo_find (combo));
if ((event->keyval == GDK_Up)