cpw.ljfisher.ssl_client_auth: ddbd1815: Fix problem with hidden dialogs by chang...

lucas.fisher at gmail.com lucas.fisher at gmail.com
Sat Nov 26 00:31:15 EST 2011


----------------------------------------------------------------------
Revision: ddbd181593de4c07803827a162542f6804bd05ac
Parent:   90f2d55572b4552444730fab9968ddbade1edee1
Author:   lucas.fisher at gmail.com
Date:     11/26/11 00:27:13
Branch:   im.pidgin.cpw.ljfisher.ssl_client_auth
URL: http://d.pidgin.im/viewmtn/revision/info/ddbd181593de4c07803827a162542f6804bd05ac

Changelog: 

Fix problem with hidden dialogs by changing pidgin_auto_parent_window() to not use other dialogs for a parent.

Changes against parent 90f2d55572b4552444730fab9968ddbade1edee1

  patched  pidgin/gtkutils.c

-------------- next part --------------
============================================================
--- pidgin/gtkutils.c	7350deb513f52bc6d17d6c4b66aea73eb282d1a8
+++ pidgin/gtkutils.c	07d2117f0bda52c42850283a8eb02300903a1aa6
@@ -3108,6 +3108,16 @@ gboolean pidgin_auto_parent_window(GtkWi
 	}
 	if (windows)
 		g_list_free(windows);
+
+	/* Ensure that the parent is not a dialog. Those have a tendency to disappear.
+	 * When dialogs are chained--dialog A's callback opens dialog B--dialog B
+	 * would end up with impropper focus if dialog A was choosen as the parent,
+	 * because dialog A would go away before dialog B was displayed. That is
+	 * the theory at least. This should fix that.
+	 */
+	while (parent && GTK_IS_DIALOG(parent))
+		parent = parent->parent;
+
 	if (parent) {
 		gtk_window_set_transient_for(GTK_WINDOW(widget), GTK_WINDOW(parent));
 		return TRUE;


More information about the Commits mailing list