GUI: Don't display tooltips while dragging mouse

Displaying it cancels the dragging.
This commit is contained in:
Le Philousophe 2023-06-11 20:45:15 +02:00
parent f288364e73
commit c276e89888
2 changed files with 4 additions and 1 deletions

View File

@ -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; }

View File

@ -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)) {