diff --git a/src/libs/utils/tooltip/tooltip.cpp b/src/libs/utils/tooltip/tooltip.cpp
index 47799b75a9087029ef9fb3b66243041f97d69a75..857ec071a794e0c51d70356e9b702fd73a8e741e 100644
--- a/src/libs/utils/tooltip/tooltip.cpp
+++ b/src/libs/utils/tooltip/tooltip.cpp
@@ -305,9 +305,11 @@ bool ToolTip::eventFilter(QObject *o, QEvent *event)
 
     switch (event->type()) {
     case QEvent::KeyPress:
-    case QEvent::KeyRelease:
+    case QEvent::KeyRelease: {
+        int key = static_cast<QKeyEvent *>(event)->key();
+        if (key == Qt::Key_Escape)
+            hideTipImmediately();
         if (HostOsInfo::isMacHost()) {
-            int key = static_cast<QKeyEvent *>(event)->key();
             Qt::KeyboardModifiers mody = static_cast<QKeyEvent *>(event)->modifiers();
             if (!(mody & Qt::KeyboardModifierMask)
                 && key != Qt::Key_Shift && key != Qt::Key_Control
@@ -315,6 +317,7 @@ bool ToolTip::eventFilter(QObject *o, QEvent *event)
                 hideTipWithDelay();
         }
         break;
+    }
     case QEvent::Leave:
         if (o == m_tip && !m_tip->isAncestorOf(QApplication::focusWidget()))
             hideTipWithDelay();