diff --git a/gui/dialog.h b/gui/dialog.h index 699c28829cd..06eba26c25b 100644 --- a/gui/dialog.h +++ b/gui/dialog.h @@ -82,6 +82,8 @@ public: void setFocusWidget(Widget *widget); Widget *getFocusWidget() { return _focusedWidget; } + bool isDragging() const { return _dragWidget != nullptr; } + void setTickleWidget(Widget *widget) { _tickleWidget = widget; } void unSetTickleWidget() { _tickleWidget = nullptr; } Widget *getTickleWidget() { return _tickleWidget; } diff --git a/gui/gui-manager.cpp b/gui/gui-manager.cpp index abad4cf36cf..1398b633f34 100644 --- a/gui/gui-manager.cpp +++ b/gui/gui-manager.cpp @@ -539,7 +539,8 @@ void GuiManager::runLoop() { // then delay showing the tooltip based on the value of kTooltipSameWidgetDelay. uint32 systemMillisNowForTooltipCheck = _system->getMillis(true); if ((_lastTooltipShown.x != _lastMousePosition.x || _lastTooltipShown.y != _lastMousePosition.y) - && _lastMousePosition.time + kTooltipDelay < systemMillisNowForTooltipCheck) { + && _lastMousePosition.time + kTooltipDelay < systemMillisNowForTooltipCheck + && !activeDialog->isDragging()) { Widget *wdg = activeDialog->findWidget(_lastMousePosition.x, _lastMousePosition.y); if (wdg && wdg->hasTooltip() && !(wdg->getFlags() & WIDGET_PRESSED) && (_lastTooltipShown.wdg != wdg || _lastTooltipShown.time + kTooltipSameWidgetDelay < systemMillisNowForTooltipCheck)) {