preserve window state when exiting video fullscreen

This commit is contained in:
Christian Helbling 2017-07-04 22:56:44 +02:00
parent 7ea7a2f3fd
commit 20db65e430
2 changed files with 8 additions and 21 deletions

View File

@ -2171,10 +2171,7 @@ class CommandDispatcher:
window = self._tabbed_browser.window() window = self._tabbed_browser.window()
if window.isFullScreen(): if window.isFullScreen():
if window._restore_maximized: window.setWindowState(window._state_before_fullscreen & ~Qt.WindowFullScreen)
window.showMaximized()
else:
window.showNormal()
else: else:
window._restore_maximized = window.isMaximized() window._state_before_fullscreen = window.windowState()
window.showFullScreen() window.showFullScreen()

View File

@ -128,10 +128,7 @@ class MainWindow(QWidget):
_commandrunner: The main CommandRunner instance. _commandrunner: The main CommandRunner instance.
_overlays: Widgets shown as overlay for the current webpage. _overlays: Widgets shown as overlay for the current webpage.
_private: Whether the window is in private browsing mode. _private: Whether the window is in private browsing mode.
_restore_fullscreen: Whether to restore the fullscreen after leaving _state_before_fullscreen: window state before activation of fullscreen
a video fullscreen.
_restore_maximized: Whether to restore maximized window after leaving
a video fullscreen.
""" """
def __init__(self, *, private, geometry=None, parent=None): def __init__(self, *, private, geometry=None, parent=None):
@ -221,8 +218,7 @@ class MainWindow(QWidget):
objreg.get("app").new_window.emit(self) objreg.get("app").new_window.emit(self)
self._restore_fullscreen = False self._state_before_fullscreen = self.windowState()
self._restore_maximized = self.isMaximized()
def _init_geometry(self, geometry): def _init_geometry(self, geometry):
"""Initialize the window geometry or load it from disk.""" """Initialize the window geometry or load it from disk."""
@ -490,18 +486,12 @@ class MainWindow(QWidget):
@pyqtSlot(bool) @pyqtSlot(bool)
def _on_fullscreen_requested(self, on): def _on_fullscreen_requested(self, on):
if on: if on:
self._restore_fullscreen = self.isFullScreen() self._state_before_fullscreen = self.windowState()
self._restore_maximized = self.isMaximized()
self.showFullScreen() self.showFullScreen()
elif not self._restore_fullscreen:
if self._restore_maximized:
self.showMaximized()
else:
self.showNormal()
else: else:
self._restore_fullscreen = self.isFullScreen() self.setWindowState(self._state_before_fullscreen)
log.misc.debug('on: {}, restore fullscreen: {}, restore maximized: {}' log.misc.debug('on: {}, state before fullscreen: {}'
.format(on, self._restore_fullscreen, self._restore_maximized)) .format(on, self._state_before_fullscreen))
@cmdutils.register(instance='main-window', scope='window') @cmdutils.register(instance='main-window', scope='window')
@pyqtSlot() @pyqtSlot()