From 2223a285ef4a49adabe735d558db9ab7b65ff78a Mon Sep 17 00:00:00 2001 From: Niklas Haas Date: Tue, 9 Aug 2016 22:40:30 +0200 Subject: [PATCH] Remove ui -> hide-mouse-cursor setting This was currently almost completely broken, yet nobody complained. The new behavior (in the previous commit) makes this always hide the mouse cursor, even when an input field has focus. Since the only two easy options to implement are "never hide" and "always hide", combined with the fact that both are sort of useless to an end-user, just remove the option until somebody wants it back. --- CHANGELOG.asciidoc | 2 ++ qutebrowser/app.py | 30 +++++++++------------------- qutebrowser/config/config.py | 1 + qutebrowser/config/configdata.py | 4 ---- qutebrowser/mainwindow/mainwindow.py | 3 --- 5 files changed, 12 insertions(+), 28 deletions(-) diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 1cdc19113..c8dafa97b 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -63,6 +63,8 @@ Removed and thus removed. - The `:completion-item-prev` and `:completion-item-next` commands got merged into a new `:completion-focus {prev,next}` command and thus removed. +- The `ui -> hide-mouse-cursor` setting since it was completely broken and + nobody seemed to care. v0.8.3 (unreleased) ------------------- diff --git a/qutebrowser/app.py b/qutebrowser/app.py index cdcbff460..a25e3a4bb 100644 --- a/qutebrowser/app.py +++ b/qutebrowser/app.py @@ -33,9 +33,9 @@ import tokenize from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtWebKit import QWebSettings -from PyQt5.QtGui import QDesktopServices, QPixmap, QIcon, QCursor, QWindow +from PyQt5.QtGui import QDesktopServices, QPixmap, QIcon, QWindow from PyQt5.QtCore import (pyqtSlot, qInstallMessageHandler, QTimer, QUrl, - QObject, Qt, QEvent, pyqtSignal) + QObject, QEvent, pyqtSignal) try: import hunter except ImportError: @@ -339,16 +339,17 @@ def _save_version(): def on_focus_changed(_old, new): """Register currently focused main window in the object registry.""" - if not isinstance(new, QWidget) and new is not None: + if new is None: + return + + if not isinstance(new, QWidget): log.misc.debug("on_focus_changed called with non-QWidget {!r}".format( new)) return - if new is not None: - _maybe_hide_mouse_cursor() - objreg.register('last-focused-main-window', new.window(), update=True) - else: - qApp.restoreOverrideCursor() + window = new.window() + if isinstance(window, mainwindow.MainWindow): + objreg.register('last-focused-main-window', window, update=True) def open_desktopservices_url(url): @@ -359,17 +360,6 @@ def open_desktopservices_url(url): tabbed_browser.tabopen(url) -@config.change_filter('ui', 'hide-mouse-cursor', function=True) -def _maybe_hide_mouse_cursor(): - """Hide the mouse cursor if it isn't yet and it's configured.""" - if config.get('ui', 'hide-mouse-cursor'): - if qApp.overrideCursor() is not None: - return - qApp.setOverrideCursor(QCursor(Qt.BlankCursor)) - else: - qApp.restoreOverrideCursor() - - def _init_modules(args, crash_handler): """Initialize all 'modules' which need to be initialized. @@ -431,8 +421,6 @@ def _init_modules(args, crash_handler): os.environ['QT_WAYLAND_DISABLE_WINDOWDECORATION'] = '1' else: os.environ.pop('QT_WAYLAND_DISABLE_WINDOWDECORATION', None) - _maybe_hide_mouse_cursor() - objreg.get('config').changed.connect(_maybe_hide_mouse_cursor) temp_downloads = downloads.TempDownloadManager(qApp) objreg.register('temporary-downloads', temp_downloads) diff --git a/qutebrowser/config/config.py b/qutebrowser/config/config.py index a5521e275..412fdc68f 100644 --- a/qutebrowser/config/config.py +++ b/qutebrowser/config/config.py @@ -350,6 +350,7 @@ class ConfigManager(QObject): ('tabs', 'auto-hide'), ('tabs', 'hide-always'), ('ui', 'display-statusbar-messages'), + ('ui', 'hide-mouse-cursor'), ('general', 'wrap-search'), ] CHANGED_OPTIONS = { diff --git a/qutebrowser/config/configdata.py b/qutebrowser/config/configdata.py index 6837ed70a..11ebe5415 100644 --- a/qutebrowser/config/configdata.py +++ b/qutebrowser/config/configdata.py @@ -346,10 +346,6 @@ def data(readonly=False): "* `{scroll_pos}`: The page scroll position.\n" "* `{host}`: The host of the current web page."), - ('hide-mouse-cursor', - SettingValue(typ.Bool(), 'false'), - "Whether to hide the mouse cursor."), - ('modal-js-dialog', SettingValue(typ.Bool(), 'false'), "Use standard JavaScript modal dialog for alert() and confirm()"), diff --git a/qutebrowser/mainwindow/mainwindow.py b/qutebrowser/mainwindow/mainwindow.py index 8198ba8cd..b44a5b782 100644 --- a/qutebrowser/mainwindow/mainwindow.py +++ b/qutebrowser/mainwindow/mainwindow.py @@ -175,9 +175,6 @@ class MainWindow(QWidget): QTimer.singleShot(0, self._connect_resize_keyhint) objreg.get('config').changed.connect(self.on_config_changed) - if config.get('ui', 'hide-mouse-cursor'): - self.setCursor(Qt.BlankCursor) - objreg.get("app").new_window.emit(self) def _init_downloadmanager(self):