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 }