summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2022-05-02 17:01:01 +0200
committerFlorian Bruhin <me@the-compiler.org>2022-05-02 17:01:01 +0200
commita2f7786e70978b86670dccef713f256d89de6914 (patch)
tree53fc532d4e6c8eac0b38c4ac0ae53af15def8aa4
parented52fc4b280bd3e4bd31842fa318b203916998e4 (diff)
downloadqutebrowser-a2f7786e70978b86670dccef713f256d89de6914.tar.gz
qutebrowser-a2f7786e70978b86670dccef713f256d89de6914.zip
Adjust notification quirks for Budgie
See https://github.com/BuddiesOfBudgie/budgie-desktop/issues/118
-rw-r--r--qutebrowser/browser/webengine/notification.py28
1 files changed, 21 insertions, 7 deletions
diff --git a/qutebrowser/browser/webengine/notification.py b/qutebrowser/browser/webengine/notification.py
index 2a323498a..38f5de79b 100644
--- a/qutebrowser/browser/webengine/notification.py
+++ b/qutebrowser/browser/webengine/notification.py
@@ -665,6 +665,7 @@ class _ServerQuirks:
skip_capabilities: bool = False
wrong_replaces_id: bool = False
no_padded_images: bool = False
+ wrong_closes_type: bool = False
@dataclasses.dataclass
@@ -863,12 +864,19 @@ class DBusNotificationAdapter(AbstractNotificationAdapter):
wrong_replaces_id=True,
)
elif (name, vendor) == ("Raven", "Budgie Desktop Developers"):
- return _ServerQuirks(
- # https://github.com/solus-project/budgie-desktop/issues/2114
- escape_title=True,
- # https://github.com/solus-project/budgie-desktop/issues/2115
- wrong_replaces_id=True,
- )
+ parsed_version = utils.VersionNumber.parse(ver)
+ if parsed_version < utils.VersionNumber(10, 6):
+ return _ServerQuirks(
+ # https://github.com/solus-project/budgie-desktop/issues/2114
+ escape_title=True,
+ # https://github.com/solus-project/budgie-desktop/issues/2115
+ wrong_replaces_id=True,
+ )
+ else:
+ return _ServerQuirks(
+ # https://github.com/BuddiesOfBudgie/budgie-desktop/issues/118
+ wrong_closes_type=True,
+ )
return None
def _get_server_info(self) -> None:
@@ -1093,7 +1101,13 @@ class DBusNotificationAdapter(AbstractNotificationAdapter):
@pyqtSlot(QDBusMessage)
def _handle_close(self, msg: QDBusMessage) -> None:
"""Handle NotificationClosed from DBus."""
- self._verify_message(msg, "uu", QDBusMessage.SignalMessage)
+ try:
+ self._verify_message(msg, "uu", QDBusMessage.SignalMessage)
+ except Error:
+ if not self._quirks.wrong_closes_type:
+ raise
+ self._verify_message(msg, "ui", QDBusMessage.SignalMessage)
+
notification_id, _close_reason = msg.arguments()
self.close_id.emit(notification_id)