Mercurial > dwindows
comparison gtk/dw.c @ 1714:df5f0857f765
Looks like there was an incorrect fix for GTK2 combobox misbehavior...
A static buffer is returned which gets modified, so we need to
duplicate the string on entry so we have the original then free.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Mon, 07 May 2012 18:07:40 +0000 |
parents | de49c1f284b2 |
children | fae374a0055b |
comparison
equal
deleted
inserted
replaced
1713:c836c6c33d8e | 1714:df5f0857f765 |
---|---|
11381 GList *tmp = (GList *)gtk_object_get_user_data(GTK_OBJECT(handle2)); | 11381 GList *tmp = (GList *)gtk_object_get_user_data(GTK_OBJECT(handle2)); |
11382 char *addtext = strdup(text); | 11382 char *addtext = strdup(text); |
11383 | 11383 |
11384 if(addtext) | 11384 if(addtext) |
11385 { | 11385 { |
11386 const char *defstr = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(handle2)->entry)); | 11386 char *defstr = strdup(gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(handle2)->entry))); |
11387 tmp = g_list_append(tmp, addtext); | 11387 tmp = g_list_append(tmp, addtext); |
11388 gtk_object_set_user_data(GTK_OBJECT(handle2), tmp); | 11388 gtk_object_set_user_data(GTK_OBJECT(handle2), tmp); |
11389 gtk_combo_set_popdown_strings(GTK_COMBO(handle2), tmp); | 11389 gtk_combo_set_popdown_strings(GTK_COMBO(handle2), tmp); |
11390 gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(handle2)->entry), defstr); | 11390 gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(handle2)->entry), defstr); |
11391 free(defstr); | |
11391 } | 11392 } |
11392 } | 11393 } |
11393 gtk_object_set_data(GTK_OBJECT(handle), "_dw_appending", NULL); | 11394 gtk_object_set_data(GTK_OBJECT(handle), "_dw_appending", NULL); |
11394 DW_MUTEX_UNLOCK; | 11395 DW_MUTEX_UNLOCK; |
11395 } | 11396 } |