# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1363600075 0 # Node ID f3ae396b3585981d274ce1147d93f7c0b2d50bd5 # Parent 43c6ecfc598a04257c1bd8933089b9db08e144da Fixed problems with the item select signal on trees in GTK2. Also changed to using g_rec_mutext instead of the now deprecated static version. diff -r 43c6ecfc598a -r f3ae396b3585 gtk/dw.c --- a/gtk/dw.c Fri Mar 08 18:03:13 2013 +0000 +++ b/gtk/dw.c Mon Mar 18 09:47:55 2013 +0000 @@ -2084,16 +2084,16 @@ } #endif -static GStaticRecMutex _dw_gdk_lock; +static GRecMutex _dw_gdk_lock; static void _dw_gdk_lock_enter(void) { - g_static_rec_mutex_lock(&_dw_gdk_lock); + g_rec_mutex_lock(&_dw_gdk_lock); } static void _dw_gdk_lock_leave(void) { - g_static_rec_mutex_unlock(&_dw_gdk_lock); + g_rec_mutex_unlock(&_dw_gdk_lock); } /* @@ -2157,7 +2157,7 @@ g_thread_init(NULL); #endif #if GTK_MAJOR_VERSION > 1 - g_static_rec_mutex_init(&_dw_gdk_lock); + g_rec_mutex_init(&_dw_gdk_lock); gdk_threads_set_lock_functions(G_CALLBACK(_dw_gdk_lock_enter), G_CALLBACK(_dw_gdk_lock_leave)); @@ -13580,6 +13580,8 @@ thisfunc = _findsigfunc("tree-context"); sigid = _set_signal_handler(thiswindow, window, sigfunc, data, thisfunc); + params[0] = GINT_TO_POINTER(sigid); + params[2] = (void *)thiswindow; cid = g_signal_connect_data(G_OBJECT(thiswindow), "button_press_event", G_CALLBACK(thisfunc), params, _dw_signal_disconnect, 0); _set_signal_handler_id(thiswindow, sigid, cid); @@ -13601,7 +13603,7 @@ sigid = _set_signal_handler(treeview, window, sigfunc, data, thisfunc); params[0] = GINT_TO_POINTER(sigid); - params[2] = (void *)thiswindow; + params[2] = (void *)treeview; cid = g_signal_connect_data(G_OBJECT(thiswindow), thisname, (GCallback)thisfunc, params, _dw_signal_disconnect, 0); _set_signal_handler_id(treeview, sigid, cid); DW_MUTEX_UNLOCK;