[PATCH] Maximize anaconda instead of running fullscreen (#1231856)
Martin Kolman
mkolman at redhat.com
Tue Sep 22 15:29:25 UTC 2015
On Tue, 2015-09-22 at 11:25 -0400, David Shea wrote:
> On 09/22/2015 09:34 AM, Martin Kolman wrote:
> > From: David Shea <dshea at redhat.com>
> >
> > A fullscreen anaconda is inconvenient when running outside of the
> > regular installer media, since on Live installs some things are
> > only
> > configurable in the desktop environment, and on dir and image
> > installs
> > you might have other things to do while anaconda is running.
> > Instead,
> > maximize anaconda and use the hide-titlebar-when-maximized property
> > to
> > hide the titlebar on window managers that support it, which is
> > really
> > just GNOME.
> >
> > Add an option to GraphicalUserInterface to start with a fullscreen
> > anaconda for downstream users of the GUI that would prefer that
> > behavior.
> >
> > Related: rhbz#1231856
> > Signed-off-by: Martin Kolman <mkolman at redhat.com>
> > ---
> > pyanaconda/anaconda.py | 5 ++++-
> > pyanaconda/ui/gui/__init__.py | 26 +++++++++++++++++---------
> > 2 files changed, 21 insertions(+), 10 deletions(-)
> >
> > diff --git a/pyanaconda/anaconda.py b/pyanaconda/anaconda.py
> > index 8e9e777..f88c42a 100644
> > --- a/pyanaconda/anaconda.py
> > +++ b/pyanaconda/anaconda.py
> > @@ -206,8 +206,11 @@ class Anaconda(object):
> >
> > if self.displayMode == 'g':
> > from pyanaconda.ui.gui import GraphicalUserInterface
> > + # Run the GUI in non-fullscreen mode, so live installs
> > can still
> > + # use the window manager
> > self._intf = GraphicalUserInterface(self.storage,
> > self.payload,
> > - self.instClass,
> > gui_lock=self.gui_initialized)
> > + self.instClass,
> > gui_lock=self.gui_initialized,
> > + fullscreen=False)
> >
> > # needs to be refreshed now we know if gui or tui
> > will take place
> > addon_paths =
> > addons.collect_addon_paths(constants.ADDON_PATHS,
> > diff --git a/pyanaconda/ui/gui/__init__.py
> > b/pyanaconda/ui/gui/__init__.py
> > index e50aeb4..aedaa57 100644
> > --- a/pyanaconda/ui/gui/__init__.py
> > +++ b/pyanaconda/ui/gui/__init__.py
> > @@ -370,9 +370,18 @@ class ErrorDialog(GUIObject):
> > class MainWindow(Gtk.Window):
> > """This is a top-level, full size window containing the
> > Anaconda screens."""
> >
> > - def __init__(self):
> > + def __init__(self, fullscreen):
> > + """Create a new anaconda main window.
> > +
> > + :param bool fullscreen: if True, fullscreen the window,
> > if false maximize
> > + """
> > Gtk.Window.__init__(self)
> >
> > + # Hide the titlebar when maximized if the window manager
> > allows it.
> > + # This makes anaconda look full-screenish but without
> > covering parts
> > + # needed to interact with the window manager, like the
> > GNOME top bar.
> > + self.set_hide_titlebar_when_maximized(True)
> > +
> > # Treat an attempt to close the window the same as
> > hitting quit
> > self.connect("delete-event", self._on_delete_event)
> >
> > @@ -400,12 +409,11 @@ class MainWindow(Gtk.Window):
> > self._accel_group = Gtk.AccelGroup()
> > self.add_accel_group(self._accel_group)
> >
> > - # Connect to window-state-event changes to catch when the
> > user
> > - # maxmizes/unmaximizes the window.
> > - self.connect("window-state-event",
> > self._on_window_state_event)
> > -
> > - # Start the window as full screen
> > - self.fullscreen()
> > + # Make the window big
> > + if fullscreen:
> > + self.fullscreen()
> > + else:
> > + self.maximize()
> >
> > self._overlay.add(self._stack)
> > self.add(self._overlay)
>
> Since you're removing the use of _on_window_state_event, you can
> remove
> the method, too.
Sure! Changing locally.
>
> > @@ -595,7 +603,7 @@ class GraphicalUserInterface(UserInterface):
> > """
> > def __init__(self, storage, payload, instclass,
> > distributionText = product.distributionText,
> > isFinal = product.isFinal,
> > - quitDialog = QuitDialog, gui_lock = None):
> > + quitDialog = QuitDialog, gui_lock = None,
> > fullscreen=False):
> >
> > UserInterface.__init__(self, storage, payload, instclass)
> >
> > @@ -606,7 +614,7 @@ class GraphicalUserInterface(UserInterface):
> >
> > self.data = None
> >
> > - self.mainWindow = MainWindow()
> > + self.mainWindow = MainWindow(fullscreen=fullscreen)
> >
> > self._distributionText = distributionText
> > self._isFinal = isFinal
>
> Looks good otherwise.
Thanks! :)
More information about the anaconda-patches
mailing list