diff options
Diffstat (limited to 'src/webenginewidgets/api')
-rw-r--r-- | src/webenginewidgets/api/qwebengineview.cpp | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp index 6414ac050..522beb892 100644 --- a/src/webenginewidgets/api/qwebengineview.cpp +++ b/src/webenginewidgets/api/qwebengineview.cpp @@ -494,7 +494,18 @@ QWebEnginePage *QWebEngineViewPrivate::createPageForWindow(QWebEnginePage::WebWi void QWebEngineViewPrivate::setToolTip(const QString &toolTipText) { Q_Q(QWebEngineView); - q->setToolTip(toolTipText); + if (toolTipText.isEmpty()) { + // Avoid duplicate events. + if (!q->toolTip().isEmpty()) + q->setToolTip(QString()); + // Force to hide tooltip because QWidget's default handler + // doesn't hide on empty text. + if (!QToolTip::text().isEmpty()) + QToolTip::hideText(); + } else if (toolTipText != q->toolTip()) { + q->setToolTip(toolTipText); + } + } bool QWebEngineViewPrivate::isEnabled() const @@ -817,17 +828,6 @@ bool QWebEngineView::event(QEvent *ev) return true; } - // Override QWidget's default ToolTip handler since it doesn't hide tooltip on empty text. - if (ev->type() == QEvent::ToolTip) { - if (!toolTip().isEmpty()) - QToolTip::showText(static_cast<QHelpEvent *>(ev)->globalPos(), toolTip(), this, QRect(), toolTipDuration()); - else - QToolTip::hideText(); - - ev->accept(); - return true; - } - return QWidget::event(ev); } |