Index: src/views/dolphinview.h =================================================================== --- src/views/dolphinview.h +++ src/views/dolphinview.h @@ -23,6 +23,7 @@ #include "dolphintabwidget.h" #include "dolphin_export.h" +#include "views/tooltips/tooltipmanager.h" #include #include @@ -697,7 +698,7 @@ */ void updateViewState(); - void hideToolTip(); + void hideToolTip(ToolTipManager::HideToolTipFlag flag = ToolTipManager::HideToolTipFlag::Later); /** * Calculates the number of currently shown files into Index: src/views/dolphinview.cpp =================================================================== --- src/views/dolphinview.cpp +++ src/views/dolphinview.cpp @@ -63,6 +63,7 @@ #include #include #include +#include #include #include #include @@ -128,8 +129,8 @@ m_container = new KItemListContainer(controller, this); m_container->installEventFilter(this); setFocusProxy(m_container); - connect(m_container->horizontalScrollBar(), &QScrollBar::valueChanged, this, &DolphinView::hideToolTip); - connect(m_container->verticalScrollBar(), &QScrollBar::valueChanged, this, &DolphinView::hideToolTip); + connect(m_container->horizontalScrollBar(), &QScrollBar::valueChanged, this, QOverload<>::of(&DolphinView::hideToolTip)); + connect(m_container->verticalScrollBar(), &QScrollBar::valueChanged, this, QOverload<>::of(&DolphinView::hideToolTip)); controller->setSelectionBehavior(KItemListController::MultiSelection); connect(controller, &KItemListController::itemActivated, this, &DolphinView::slotItemActivated); @@ -744,6 +745,7 @@ break; case QEvent::KeyPress: + hideToolTip(ToolTipManager::HideToolTipFlag::Instantly); if (GeneralSettings::useTabForSwitchingSplitView()) { QKeyEvent* keyEvent = static_cast(event); if (keyEvent->key() == Qt::Key_Tab && keyEvent->modifiers() == Qt::NoModifier) { @@ -1414,11 +1416,11 @@ } } -void DolphinView::hideToolTip() +void DolphinView::hideToolTip(ToolTipManager::HideToolTipFlag flag) { #ifdef HAVE_BALOO if (GeneralSettings::showToolTips()) { - m_toolTipManager->hideToolTip(); + m_toolTipManager->hideToolTip(flag); } #endif } Index: src/views/tooltips/tooltipmanager.h =================================================================== --- src/views/tooltips/tooltipmanager.h +++ src/views/tooltips/tooltipmanager.h @@ -42,6 +42,11 @@ Q_OBJECT public: + enum class HideToolTipFlag { + Instantly, + Later, + }; + explicit ToolTipManager(QWidget* parent); ~ToolTipManager() override; @@ -56,7 +61,7 @@ /** * Hides the currently shown tooltip. */ - void hideToolTip(); + void hideToolTip(HideToolTipFlag flag = HideToolTipFlag::Later); signals: /** Index: src/views/tooltips/tooltipmanager.cpp =================================================================== --- src/views/tooltips/tooltipmanager.cpp +++ src/views/tooltips/tooltipmanager.cpp @@ -104,7 +104,7 @@ Q_ASSERT(!m_metaDataRequested); } -void ToolTipManager::hideToolTip() +void ToolTipManager::hideToolTip(HideToolTipFlag flag) { if (m_appliedWaitCursor) { QApplication::restoreOverrideCursor(); @@ -116,7 +116,14 @@ m_showToolTipTimer->stop(); m_contentRetrievalTimer->stop(); if (m_tooltipWidget) { - m_tooltipWidget->hideLater(); + switch (flag) { + case HideToolTipFlag::Instantly: + m_tooltipWidget->hide(); + break; + case HideToolTipFlag::Later: + m_tooltipWidget->hideLater(); + break; + } } }