? libgimp/gimp-2.0.exp
? libgimp/gimp-2.0.lib
? libgimp/gimp.c.huuh
? libgimp/gimp.c.NOPE
? libgimp/gimp.exp
? libgimp/gimpui-2.0.exp
? libgimp/gimpui-2.0.lib
? libgimp/gimpui.exp
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/gimp/ChangeLog,v
retrieving revision 1.13428
diff -p -u -r1.13428 ChangeLog
--- ChangeLog	11 Oct 2006 20:57:32 -0000	1.13428
+++ ChangeLog	12 Oct 2006 18:43:15 -0000
@@ -1,3 +1,10 @@
+2006-10-12  Tor Lillqvist  <tml@novell.com>
+
+	* libgimp/gimpui.c (gimp_window_set_transient_for)
+	* app/widgets/gimpwidgets-utils.c (gimp_window_set_transient_for):
+	These functions are used for cross-process transient-for, which
+	causes hangs on Win32. Bypass on Win32 for now. (#359538)
+
 2006-10-11  Michael Schumacher  <schumaml@cvs.gnome.org>
 	
 	* libgimpthumb/gimpthumb.def: added gimp_thumb_file_type_get_type
Index: libgimp/gimpui.c
===================================================================
RCS file: /cvs/gnome/gimp/libgimp/gimpui.c,v
retrieving revision 1.34
diff -p -u -r1.34 gimpui.c
--- libgimp/gimpui.c	12 Apr 2006 10:53:24 -0000	1.34
+++ libgimp/gimpui.c	12 Oct 2006 18:43:21 -0000
@@ -278,6 +278,7 @@ gimp_window_set_transient_for (GtkWindow
 {
   gtk_window_set_transient_for (window, NULL);
 
+#ifndef GDK_WINDOWING_WIN32
   g_signal_handlers_disconnect_matched (window, G_SIGNAL_MATCH_FUNC,
                                         0, 0, NULL,
                                         gimp_window_transient_realized,
@@ -293,4 +294,5 @@ gimp_window_set_transient_for (GtkWindow
                            G_CALLBACK (gimp_window_transient_realized),
                            parent, 0);
   g_object_unref (parent);
+#endif
 }
Index: app/widgets/gimpwidgets-utils.c
===================================================================
RCS file: /cvs/gnome/gimp/app/widgets/gimpwidgets-utils.c,v
retrieving revision 1.115
diff -p -u -r1.115 gimpwidgets-utils.c
--- app/widgets/gimpwidgets-utils.c	9 Oct 2006 08:17:15 -0000	1.115
+++ app/widgets/gimpwidgets-utils.c	12 Oct 2006 18:43:22 -0000
@@ -829,6 +829,7 @@ gimp_window_get_native (GtkWindow *windo
 #ifdef __GNUC__
 #warning gimp_window_get_native() unimplementable for the target windowing system
 #endif
+  return (GdkNativeWindow)0;
 #endif
 
 #ifdef GDK_WINDOWING_WIN32
@@ -857,6 +858,14 @@ void
 gimp_window_set_transient_for (GtkWindow *window,
                                guint32    parent_ID)
 {
+  /* Cross-process transient-for is broken in gdk/win32 <= 2.10.6. It
+   * causes hangs, at least when used as by the gimp and script-fu
+   * processes. In some newer GTK+ version it will be fixed to be a
+   * no-op. If it eventually is fixed to actually work, change this to
+   * a run-time check of GTK+ version. Remember to change also the
+   * function with the same name in libgimp/gimpui.c
+   */
+#ifndef GDK_WINDOWING_WIN32
   GdkWindow *parent;
 
   parent = gdk_window_foreign_new_for_display (gdk_display_get_default (),
@@ -873,6 +882,7 @@ gimp_window_set_transient_for (GtkWindow
                            parent, 0);
 
   g_object_unref (parent);
+#endif
 }
 
 void
