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