diff --git a/app/ToolTips/ktooltip.h b/app/ToolTips/ktooltip.h --- a/app/ToolTips/ktooltip.h +++ b/app/ToolTips/ktooltip.h @@ -23,13 +23,14 @@ class QPoint; class QString; class QWidget; +class QWindow; /** * Allows to show tooltips having a widget as content. */ namespace KToolTip { - void showText(const QPoint& pos, const QString& text); + void showText(const QPoint& pos, const QString& text, QWindow *transientParent); /** * Shows the tip @p content at the global position indicated by @p pos. @@ -39,7 +40,7 @@ * * The tip is shown immediately when this function is called. */ - void showTip(const QPoint& pos, QWidget* content); + void showTip(const QPoint& pos, QWidget* content, QWindow *transientParent); void hideTip(); } diff --git a/app/ToolTips/ktooltip.cpp b/app/ToolTips/ktooltip.cpp --- a/app/ToolTips/ktooltip.cpp +++ b/app/ToolTips/ktooltip.cpp @@ -21,6 +21,7 @@ #include "ktooltipwindow_p.h" #include #include +#include #include class KToolTipManager @@ -30,7 +31,7 @@ static KToolTipManager* instance(); - void showTip(const QPoint& pos, QWidget* content); + void showTip(const QPoint& pos, QWidget* content, QWindow *transientParent); void hideTip(); private: @@ -62,12 +63,14 @@ return s_instance; } -void KToolTipManager::showTip(const QPoint& pos, QWidget* content) +void KToolTipManager::showTip(const QPoint& pos, QWidget* content, QWindow *transientParent) { hideTip(); Q_ASSERT(m_window == 0); m_window = new KToolTipWindow(content); m_window->move(pos); + m_window->createWinId(); + m_window->windowHandle()->setTransientParent(transientParent); m_window->show(); } @@ -82,16 +85,16 @@ namespace KToolTip { - void showText(const QPoint& pos, const QString& text) + void showText(const QPoint& pos, const QString& text, QWindow *transientParent) { QLabel* label = new QLabel(text); label->setForegroundRole(QPalette::ToolTipText); - showTip(pos, label); + showTip(pos, label, transientParent); } - void showTip(const QPoint& pos, QWidget* content) + void showTip(const QPoint& pos, QWidget* content, QWindow *transientParent) { - KToolTipManager::instance()->showTip(pos, content); + KToolTipManager::instance()->showTip(pos, content, transientParent); } void hideTip() diff --git a/app/ToolTips/tooltipmanager.cpp b/app/ToolTips/tooltipmanager.cpp --- a/app/ToolTips/tooltipmanager.cpp +++ b/app/ToolTips/tooltipmanager.cpp @@ -170,7 +170,7 @@ } // the ownership of tip is transferred to KToolTip - KToolTip::showTip(QPoint(x, y), tip); + KToolTip::showTip(QPoint(x, y), tip, d->view->nativeParentWidget()->windowHandle()); } QWidget * ToolTipManager::createTipContent( QModelIndex item )