From ac1b59a3113e339f16896e32d41a1e5d6178dade Mon Sep 17 00:00:00 2001 From: Christian Helbling Date: Thu, 18 Oct 2018 17:48:49 +0200 Subject: [PATCH] revert 559059d and cd20c32 to fix #4349 (Exiting video player exits fullscreen) --- qutebrowser/browser/commands.py | 13 +++++++++++-- qutebrowser/mainwindow/mainwindow.py | 13 ++++++++++--- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py index a3f301ae5..8ea3c08a5 100644 --- a/qutebrowser/browser/commands.py +++ b/qutebrowser/browser/commands.py @@ -35,7 +35,7 @@ from qutebrowser.browser import (urlmarks, browsertab, inspector, navigate, webelem, downloads) from qutebrowser.keyinput import modeman, keyutils from qutebrowser.utils import (message, usertypes, log, qtutils, urlutils, - objreg, utils, standarddir) + objreg, utils, standarddir, debug) from qutebrowser.utils.usertypes import KeyMode from qutebrowser.misc import editor, guiprocess from qutebrowser.completion.models import urlmodel, miscmodels @@ -2234,7 +2234,16 @@ class CommandDispatcher: return window = self._tabbed_browser.widget.window() - window.setWindowState(window.windowState() ^ Qt.WindowFullScreen) + if window.isFullScreen(): + window.setWindowState( + window.state_before_fullscreen & ~Qt.WindowFullScreen) + else: + window.state_before_fullscreen = window.windowState() + window.setWindowState( + window.state_before_fullscreen | Qt.WindowFullScreen) + log.misc.debug('state before fullscreen: {}'.format( + debug.qflags_key(Qt, window.state_before_fullscreen))) + @cmdutils.register(instance='command-dispatcher', scope='window', name='tab-mute') diff --git a/qutebrowser/mainwindow/mainwindow.py b/qutebrowser/mainwindow/mainwindow.py index 3fdad13d1..249e6e81d 100644 --- a/qutebrowser/mainwindow/mainwindow.py +++ b/qutebrowser/mainwindow/mainwindow.py @@ -31,7 +31,7 @@ from PyQt5.QtWidgets import QWidget, QVBoxLayout, QApplication, QSizePolicy from qutebrowser.commands import runners, cmdutils from qutebrowser.config import config, configfiles from qutebrowser.utils import (message, log, usertypes, qtutils, objreg, utils, - jinja) + jinja, debug) from qutebrowser.mainwindow import messageview, prompt from qutebrowser.completion import completionwidget, completer from qutebrowser.keyinput import modeman @@ -136,6 +136,7 @@ class MainWindow(QWidget): Attributes: status: The StatusBar widget. tabbed_browser: The TabbedBrowser widget. + state_before_fullscreen: window state before activation of fullscreen. _downloadview: The DownloadView widget. _vbox: The main QVBoxLayout. _commandrunner: The main CommandRunner instance. @@ -237,6 +238,8 @@ class MainWindow(QWidget): objreg.get("app").new_window.emit(self) self._set_decoration(config.val.window.hide_decoration) + self.state_before_fullscreen = self.windowState() + def _init_geometry(self, geometry): """Initialize the window geometry or load it from disk.""" if geometry is not None: @@ -516,9 +519,13 @@ class MainWindow(QWidget): def _on_fullscreen_requested(self, on): if not config.val.content.windowed_fullscreen: if on: - self.setWindowState(self.windowState() | Qt.WindowFullScreen) + self.state_before_fullscreen = self.windowState() + self.setWindowState( + Qt.WindowFullScreen | self.state_before_fullscreen) elif self.isFullScreen(): - self.setWindowState(self.windowState() & ~Qt.WindowFullScreen) + self.setWindowState(self.state_before_fullscreen) + log.misc.debug('on: {}, state before fullscreen: {}'.format( + on, debug.qflags_key(Qt, self.state_before_fullscreen))) @cmdutils.register(instance='main-window', scope='window') @pyqtSlot()