diff --git a/desktop-client/room_widget.py b/desktop-client/room_widget.py index 5e2c795..1a313fb 100644 --- a/desktop-client/room_widget.py +++ b/desktop-client/room_widget.py @@ -17,6 +17,7 @@ class ClickableSlider(QSlider): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._get_tooltip_text = None + self.setMouseTracking(True) def set_tooltip_provider(self, provider_func): self._get_tooltip_text = provider_func @@ -43,11 +44,12 @@ class ClickableSlider(QSlider): def mouseMoveEvent(self, event): super().mouseMoveEvent(event) - if event.buttons() & Qt.MouseButton.LeftButton: - if self._get_tooltip_text: - text = self._get_tooltip_text(self.value()) - if text: - QToolTip.showText(event.globalPosition().toPoint(), text, self) + if self._get_tooltip_text and self.width() > 0: + hover_val = self.minimum() + ((self.maximum() - self.minimum()) * event.pos().x()) / self.width() + hover_val = max(self.minimum(), min(self.maximum(), int(hover_val))) + text = self._get_tooltip_text(hover_val) + if text: + QToolTip.showText(event.globalPosition().toPoint(), text, self) def mouseReleaseEvent(self, event): super().mouseReleaseEvent(event)