diff gtk/dw.c @ 112:cf0115e38ef0

On multi-widget windows, set the data on all components.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Mon, 23 Sep 2002 13:34:03 +0000
parents cd0e5cf92f6a
children 39932767ef46
line wrap: on
line diff
--- a/gtk/dw.c	Sun Sep 22 13:26:34 2002 +0000
+++ b/gtk/dw.c	Mon Sep 23 13:34:03 2002 +0000
@@ -5807,7 +5807,19 @@
 		return;
 
 	DW_MUTEX_LOCK;
-	gtk_object_set_data(GTK_OBJECT(window),  dataname, (gpointer)data);
+	if(GTK_IS_OBJECT(window))
+	{
+		if(GTK_IS_SCROLLED_WINDOW(window))
+		{
+			HWND thiswindow = (HWND)gtk_object_get_user_data(GTK_OBJECT(window));
+
+			if(thiswindow && GTK_IS_OBJECT(thiswindow))
+				gtk_object_set_data(GTK_OBJECT(thiswindow), dataname, (gpointer)data);
+		}
+		if(GTK_IS_COMBO(window))
+			gtk_object_set_data(GTK_OBJECT(GTK_COMBO(window)->entry), dataname, (gpointer)data);
+		gtk_object_set_data(GTK_OBJECT(window), dataname, (gpointer)data);
+	}
 	DW_MUTEX_UNLOCK;
 }
 
@@ -5821,13 +5833,14 @@
 void *dw_window_get_data(HWND window, char *dataname)
 {
 	int _locked_by_me = FALSE;
-	void *ret;
+	void *ret = NULL;
 
 	if(!window)
 		return NULL;
 
 	DW_MUTEX_LOCK;
-	ret = (void *)gtk_object_get_data(GTK_OBJECT(window), dataname);
+    if(GTK_IS_OBJECT(window))
+		ret = (void *)gtk_object_get_data(GTK_OBJECT(window), dataname);
 	DW_MUTEX_UNLOCK;
 	return ret;
 }