From 699abef159a9fb8c5cedbc496ac29f45ab24b788 Mon Sep 17 00:00:00 2001 From: Christian Helbling Date: Fri, 12 Jan 2018 10:54:05 +0100 Subject: [PATCH 1/4] fix regression of #2778 which reappeared with qt 5.10 in combination with up-to-date KDE this should also avoid an unneccessary KDE maximize animation when exiting fullscreen into maximized --- qutebrowser/browser/commands.py | 2 +- qutebrowser/mainwindow/mainwindow.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py index 3fffbcfb7..34b7fa340 100644 --- a/qutebrowser/browser/commands.py +++ b/qutebrowser/browser/commands.py @@ -2201,6 +2201,6 @@ class CommandDispatcher: window.state_before_fullscreen & ~Qt.WindowFullScreen) else: window.state_before_fullscreen = window.windowState() - window.showFullScreen() + window.setWindowState(Qt.WindowFullScreen | window.state_before_fullscreen) log.misc.debug('state before fullscreen: {}'.format( debug.qflags_key(Qt, window.state_before_fullscreen))) diff --git a/qutebrowser/mainwindow/mainwindow.py b/qutebrowser/mainwindow/mainwindow.py index dff465c41..e853c3ea8 100644 --- a/qutebrowser/mainwindow/mainwindow.py +++ b/qutebrowser/mainwindow/mainwindow.py @@ -498,7 +498,7 @@ class MainWindow(QWidget): if not config.val.content.windowed_fullscreen: if on: self.state_before_fullscreen = self.windowState() - self.showFullScreen() + self.setWindowState(Qt.WindowFullScreen | self.state_before_fullscreen) elif self.isFullScreen(): self.setWindowState(self.state_before_fullscreen) log.misc.debug('on: {}, state before fullscreen: {}'.format( From 559059d244ccf95c56bd1c6f982f700ce13aa038 Mon Sep 17 00:00:00 2001 From: Christian Helbling Date: Fri, 12 Jan 2018 11:21:55 +0100 Subject: [PATCH 2/4] simplify code - state_before_fullscreen seems not to be needed anymore --- qutebrowser/browser/commands.py | 8 ++------ qutebrowser/mainwindow/mainwindow.py | 10 ++-------- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py index 34b7fa340..139ed93fc 100644 --- a/qutebrowser/browser/commands.py +++ b/qutebrowser/browser/commands.py @@ -2197,10 +2197,6 @@ class CommandDispatcher: window = self._tabbed_browser.window() if window.isFullScreen(): - window.setWindowState( - window.state_before_fullscreen & ~Qt.WindowFullScreen) + window.setWindowState(window.windowState() & ~Qt.WindowFullScreen) else: - window.state_before_fullscreen = window.windowState() - window.setWindowState(Qt.WindowFullScreen | window.state_before_fullscreen) - log.misc.debug('state before fullscreen: {}'.format( - debug.qflags_key(Qt, window.state_before_fullscreen))) + window.setWindowState(window.windowState() | Qt.WindowFullScreen) diff --git a/qutebrowser/mainwindow/mainwindow.py b/qutebrowser/mainwindow/mainwindow.py index e853c3ea8..726a2f152 100644 --- a/qutebrowser/mainwindow/mainwindow.py +++ b/qutebrowser/mainwindow/mainwindow.py @@ -134,7 +134,6 @@ 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. @@ -234,8 +233,6 @@ class MainWindow(QWidget): objreg.get("app").new_window.emit(self) - 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: @@ -497,12 +494,9 @@ class MainWindow(QWidget): def _on_fullscreen_requested(self, on): if not config.val.content.windowed_fullscreen: if on: - self.state_before_fullscreen = self.windowState() - self.setWindowState(Qt.WindowFullScreen | self.state_before_fullscreen) + self.setWindowState(self.windowState() | Qt.WindowFullScreen) elif self.isFullScreen(): - self.setWindowState(self.state_before_fullscreen) - log.misc.debug('on: {}, state before fullscreen: {}'.format( - on, debug.qflags_key(Qt, self.state_before_fullscreen))) + self.setWindowState(self.windowState() & ~Qt.WindowFullScreen) @cmdutils.register(instance='main-window', scope='window') @pyqtSlot() From 141d020ede5a26cd7626d3c4555e0f2917edd342 Mon Sep 17 00:00:00 2001 From: Christian Helbling Date: Sat, 13 Jan 2018 10:07:21 +0100 Subject: [PATCH 3/4] import debug is not needed anymore --- qutebrowser/browser/commands.py | 2 +- qutebrowser/mainwindow/mainwindow.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py index 139ed93fc..edc25ea49 100644 --- a/qutebrowser/browser/commands.py +++ b/qutebrowser/browser/commands.py @@ -39,7 +39,7 @@ from qutebrowser.browser import (urlmarks, browsertab, inspector, navigate, webelem, downloads) from qutebrowser.keyinput import modeman from qutebrowser.utils import (message, usertypes, log, qtutils, urlutils, - objreg, utils, debug, standarddir) + objreg, utils, standarddir) from qutebrowser.utils.usertypes import KeyMode from qutebrowser.misc import editor, guiprocess from qutebrowser.completion.models import urlmodel, miscmodels diff --git a/qutebrowser/mainwindow/mainwindow.py b/qutebrowser/mainwindow/mainwindow.py index 726a2f152..a5faf6dd1 100644 --- a/qutebrowser/mainwindow/mainwindow.py +++ b/qutebrowser/mainwindow/mainwindow.py @@ -30,7 +30,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, debug) + jinja) from qutebrowser.mainwindow import messageview, prompt from qutebrowser.completion import completionwidget, completer from qutebrowser.keyinput import modeman From cd20c32973d44ea8b27957165936b87c459d1925 Mon Sep 17 00:00:00 2001 From: Christian Helbling Date: Sat, 13 Jan 2018 10:26:41 +0100 Subject: [PATCH 4/4] simplify more --- qutebrowser/browser/commands.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py index edc25ea49..f6f36b68e 100644 --- a/qutebrowser/browser/commands.py +++ b/qutebrowser/browser/commands.py @@ -2196,7 +2196,4 @@ class CommandDispatcher: return window = self._tabbed_browser.window() - if window.isFullScreen(): - window.setWindowState(window.windowState() & ~Qt.WindowFullScreen) - else: - window.setWindowState(window.windowState() | Qt.WindowFullScreen) + window.setWindowState(window.windowState() ^ Qt.WindowFullScreen)