changeset 1866:f3ae396b3585

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.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Mon, 18 Mar 2013 09:47:55 +0000
parents 43c6ecfc598a
children a3e356948426
files gtk/dw.c
diffstat 1 files changed, 7 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- 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;