[Glade-users] Glade dialogs

Damon Chaplin damon@karuna.uklinux.net
14 Jan 2004 09:23:00 +0000


On Wed, 2004-01-14 at 05:34, Greg Hamilton wrote:
> I'm finding Glade dialogs a little confusing. I want a modal dialog box 
> which appears centred over my app window. I can do this by creating the 
> dialog in my code but I've designed a couple of more complex dialogs in 
> Glade and I can work out how to get the same behaviour for these 
> dialogs. The problem seems to be that my Glade dialogs don't have a 
> parent window so they pop up in all sorts of funny places.
> 
> To display my Glade dialog (using Python) I do this:
> 
> 	tree = gtk.glade.XML(GLADEFILE, "config_dialog")
> 	dialog = tree.get_widget("config_dialog")
> 	dialog.run()
> 
> Calling 'dialog.get_parent()' returns Python's 'None', essentially 
> null, so I tried  'dialog.set_parent(app_window)' which fails with the 
> following output:
> 
> (view-editor.py:1749): Gtk-CRITICAL **: file gtkwidget.c: line 3818 
> (gtk_widget_set_parent): assertion `!GTK_WIDGET_TOPLEVEL (widget)' 
> failed
> 
> The nearest I can get to what I want is by doing this 
> 'dialog.set_transient_for(app_window)', but the behaviour is slightly 
> different to my regular dialogs.

set_transient_for() is the correct thing to use for dialogs. It should
make sure they stay above the parent window.

What is different about the behavior? Is the positioning wrong?

Damon