Mercurial > dwindows
changeset 362:eb61b854fd58
Fixes for new signal handler code, for GTK 2.x tree control.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Wed, 23 Apr 2003 05:34:14 +0000 |
parents | 8c0212f70914 |
children | eaebef97fc4f |
files | gtk/dw.c |
diffstat | 1 files changed, 19 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/gtk/dw.c Wed Apr 23 05:16:23 2003 +0000 +++ b/gtk/dw.c Wed Apr 23 05:34:14 2003 +0000 @@ -515,21 +515,25 @@ static gint _tree_select_event(GtkTreeSelection *sel, gpointer data) { GtkWidget *item, *widget = (GtkWidget *)gtk_tree_selection_get_tree_view(sel); - SignalHandler work = _get_signal_handler(widget, data); int retval = FALSE; - if(widget && work.window) - { - int (*treeselectfunc)(HWND, HTREEITEM, char *, void *, void *) = work.func; - GtkTreeIter iter; - char *text = NULL; - void *itemdata = NULL; - - if(gtk_tree_selection_get_selected(sel, NULL, &iter)) + if(widget) + { + SignalHandler work = _get_signal_handler(widget, data); + + if(work.window) { - GtkTreeModel *store = (GtkTreeModel *)gtk_object_get_data(GTK_OBJECT(widget), "_dw_tree_store"); - gtk_tree_model_get(store, &iter, 0, &text, 2, &itemdata, 3, &item, -1); - retval = treeselectfunc(work.window, (HTREEITEM)item, text, work.data, itemdata); + int (*treeselectfunc)(HWND, HTREEITEM, char *, void *, void *) = work.func; + GtkTreeIter iter; + char *text = NULL; + void *itemdata = NULL; + + if(gtk_tree_selection_get_selected(sel, NULL, &iter)) + { + GtkTreeModel *store = (GtkTreeModel *)gtk_object_get_data(GTK_OBJECT(widget), "_dw_tree_store"); + gtk_tree_model_get(store, &iter, 0, &text, 2, &itemdata, 3, &item, -1); + retval = treeselectfunc(work.window, (HTREEITEM)item, text, work.data, itemdata); + } } } return retval; @@ -7654,11 +7658,13 @@ } else if(GTK_IS_TREE_VIEW(thiswindow) && strcmp(signame, DW_SIGNAL_ITEM_SELECT) == 0) { + GtkWidget *treeview = thiswindow; + thiswindow = (GtkWidget *)gtk_tree_view_get_selection(GTK_TREE_VIEW(thiswindow)); thisname = "changed"; g_signal_connect(G_OBJECT(thiswindow), thisname, (GCallback)thisfunc, - (gpointer)_set_signal_handler(thiswindow, window, sigfunc, data)); + (gpointer)_set_signal_handler(treeview, window, sigfunc, data)); DW_MUTEX_UNLOCK; return; }