From 4e555631edc2070a219d58147400d67a96ad65ec Mon Sep 17 00:00:00 2001 From: "dries.k" Date: Thu, 1 Sep 2022 21:41:01 +0200 Subject: [PATCH] do not use the leaveEvent on macos --- gotify_tray/gui/widgets/ImagePopup.py | 17 +++++++++-------- gotify_tray/gui/widgets/MessageWidget.py | 2 +- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/gotify_tray/gui/widgets/ImagePopup.py b/gotify_tray/gui/widgets/ImagePopup.py index b8799bf..f84d487 100644 --- a/gotify_tray/gui/widgets/ImagePopup.py +++ b/gotify_tray/gui/widgets/ImagePopup.py @@ -1,3 +1,4 @@ +import platform from PyQt6 import QtCore, QtGui, QtWidgets from gotify_tray.database import Settings @@ -18,13 +19,13 @@ class ImagePopup(QtWidgets.QLabel): super(ImagePopup, self).__init__() self.link = link - self.setWindowFlags(QtCore.Qt.WindowType.ToolTip) + self.setWindowFlags(QtCore.Qt.WindowType.Popup) self.installEventFilter(self) - + # Prevent leaving the pop-up open when moving quickly out of the widget self.popup_timer = QtCore.QTimer() self.popup_timer.timeout.connect(self.check_mouse) - + pixmap = QtGui.QPixmap(filename).scaled( settings.value("ImagePopup/w", type=int), settings.value("ImagePopup/h", type=int), @@ -34,19 +35,19 @@ class ImagePopup(QtWidgets.QLabel): self.setPixmap(pixmap) self.move(pos - QtCore.QPoint(15, 15)) - + self.popup_timer.start(500) - + def check_mouse(self): if not self.underMouse(): self.close() - + def close(self): self.popup_timer.stop() super(ImagePopup, self).close() - + def eventFilter(self, object: QtCore.QObject, event: QtCore.QEvent) -> bool: - if event.type() == QtCore.QEvent.Type.Leave: + if platform.system() != "Darwin" and event.type() == QtCore.QEvent.Type.Leave: # Close the pop-up on mouse leave self.close() elif ( diff --git a/gotify_tray/gui/widgets/MessageWidget.py b/gotify_tray/gui/widgets/MessageWidget.py index 2417bf3..70ee1cb 100644 --- a/gotify_tray/gui/widgets/MessageWidget.py +++ b/gotify_tray/gui/widgets/MessageWidget.py @@ -4,7 +4,7 @@ from PyQt6 import QtCore, QtGui, QtWidgets from ..models.MessagesModel import MessageItemDataRole, MessagesModelItem from ..designs.widget_message import Ui_Form -from gotify_tray.database import Cache, Settings +from gotify_tray.database import Settings from gotify_tray.utils import convert_links, get_abs_path