Mercurial > dwindows
changeset 115:2d121d4d90c0
Run the _item_select_event() handler on comboboxes even if a handler
wasn't requested... so we can keep our internal item up to date.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Wed, 09 Oct 2002 19:31:11 +0000 |
parents | 39932767ef46 |
children | bb039d7407f0 |
files | gtk/dw.c |
diffstat | 1 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/gtk/dw.c Wed Oct 09 04:32:52 2002 +0000 +++ b/gtk/dw.c Wed Oct 09 19:31:11 2002 +0000 @@ -344,7 +344,8 @@ if(!gtk_object_get_data(GTK_OBJECT(work->window), "appending")) { gtk_object_set_data(GTK_OBJECT(work->window), "item", (gpointer)item); - selectfunc(work->window, item, work->data); + if(selectfunc) + selectfunc(work->window, item, work->data); } break; } @@ -2010,6 +2011,7 @@ HWND dw_combobox_new(char *text, unsigned long id) { GtkWidget *tmp; + SignalHandler *work = malloc(sizeof(SignalHandler)); int _locked_by_me = FALSE; DW_MUTEX_LOCK; @@ -2019,6 +2021,12 @@ gtk_object_set_user_data(GTK_OBJECT(tmp), NULL); gtk_widget_show(tmp); gtk_object_set_data(GTK_OBJECT(tmp), "id", (gpointer)id); + + work->window = tmp; + work->func = NULL; + work->data = NULL; + + gtk_signal_connect(GTK_OBJECT(GTK_COMBO(tmp)->list), "select_child", GTK_SIGNAL_FUNC(_item_select_event), work); DW_MUTEX_UNLOCK; return tmp; }