Guido Günther wrote: > Hi, > the attached patch is a first attempt to make virt-manager better usable > under tiling window managers like awesome[1]. The problem is that > virt-manager opens dialogs without a parent set (like passing NULL as > the first argument of gtk_message_dialog_new). This patch is a first > attempt on fixing that for some of them. This way dialogs like the about > dialog get displayed in the middle of the main window instead of > floating. Does this look like the right thing to do? > Cheers, > -- Guido > I can't claim to know the ins and outs of gtk, but this seems like the correct thing to do, and if it solves actual problems then I'm all for it. > # HG changeset patch > # User Guido Günther <agx@xxxxxxxxxxx> > # Date 1241793452 -7200 > # Node ID 357e834adb137baf32276d013188230eb14c73de > # Parent 5b61bd10a66b91d40ad5652a8f39b14273175292 > Add a proper parent to dialogs. > > diff -r 5b61bd10a66b -r 357e834adb13 src/virtManager/about.py > --- a/src/virtManager/about.py Thu May 07 19:22:33 2009 +0100 > +++ b/src/virtManager/about.py Fri May 08 16:37:32 2009 +0200 > @@ -43,9 +43,10 @@ > "on_vmm_about_response": self.close, > }) > > - def show(self): > + def show(self, parent): > dialog = self.window.get_widget("vmm-about") > dialog.set_version(self.config.get_appversion()) > + dialog.set_transient_for(parent) > dialog.show_all() > dialog.present() > > diff -r 5b61bd10a66b -r 357e834adb13 src/virtManager/connect.py > --- a/src/virtManager/connect.py Thu May 07 19:22:33 2009 +0100 > +++ b/src/virtManager/connect.py Fri May 08 16:37:32 2009 +0200 > @@ -102,8 +102,9 @@ > self.window.get_widget("vmm-open-connection").hide() > self.stop_browse() > > - def show(self): > + def show(self, parent): > win = self.window.get_widget("vmm-open-connection") > + win.set_transient_for(parent) > win.show_all() > win.present() > self.reset_state() > diff -r 5b61bd10a66b -r 357e834adb13 src/virtManager/engine.py > --- a/src/virtManager/engine.py Thu May 07 19:22:33 2009 +0100 > +++ b/src/virtManager/engine.py Fri May 08 16:37:32 2009 +0200 > @@ -210,7 +210,7 @@ > def show_about(self): > if self.windowAbout == None: > self.windowAbout = vmmAbout(self.get_config()) > - self.windowAbout.show() > + self.windowAbout.show(self.windowManager.win) > > def show_help(self, index): > try: > @@ -221,7 +221,8 @@ > > def show_preferences(self): > if self.windowPreferences == None: > - self.windowPreferences = vmmPreferences(self.get_config()) > + self.windowPreferences = vmmPreferences(self.get_config(), > + self.windowManager.win) > self.windowPreferences.connect("action-show-help", self._do_show_help) > self.windowPreferences.show() > > @@ -239,7 +240,7 @@ > self.windowConnect = vmmConnect(self.get_config(), self) > self.windowConnect.connect("completed", self._connect_to_uri) > self.windowConnect.connect("cancelled", self._connect_cancelled) > - self.windowConnect.show() > + self.windowConnect.show(self.windowManager.win) > > def show_console(self, uri, uuid): > win = self.show_details(uri, uuid) > diff -r 5b61bd10a66b -r 357e834adb13 src/virtManager/manager.py > --- a/src/virtManager/manager.py Thu May 07 19:22:33 2009 +0100 > +++ b/src/virtManager/manager.py Fri May 08 16:37:32 2009 +0200 > @@ -119,6 +119,7 @@ > _("An unexpected error occurred")) > self.config = config > self.engine = engine > + self.win = self.window.get_widget("vmm-manager") > I'd rename this to self.topwin, since that's the more typical convention in the codebase. > self.delete_dialog = None > self.startup_error = None > @@ -343,11 +344,10 @@ > vmlist.get_selection().select_iter(vmlist.get_model().get_iter_first()) > > def show(self): > - win = self.window.get_widget("vmm-manager") > if self.is_visible(): > - win.present() > + self.win.present() > return > - win.show_all() > + self.win.show_all() > self.engine.increment_window_counter() > > if self.startup_error: > diff -r 5b61bd10a66b -r 357e834adb13 src/virtManager/preferences.py > --- a/src/virtManager/preferences.py Thu May 07 19:22:33 2009 +0100 > +++ b/src/virtManager/preferences.py Fri May 08 16:37:32 2009 +0200 > @@ -29,12 +29,13 @@ > "action-show-help": (gobject.SIGNAL_RUN_FIRST, > gobject.TYPE_NONE, [str]), > } > - def __init__(self, config): > + def __init__(self, config, parent): > self.__gobject_init__() > self.window = gtk.glade.XML(config.get_glade_dir() + "/vmm-preferences.glade", "vmm-preferences", domain="virt-manager") > self.config = config > > self.topwin = self.window.get_widget("vmm-preferences") > + self.topwin.set_transient_for(parent) > self.topwin.hide() > > self.config.on_console_popup_changed(self.refresh_console_popup) Thanks, Cole _______________________________________________ et-mgmt-tools mailing list et-mgmt-tools@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/et-mgmt-tools