diff --git a/kwin-5.11.3/decorations/decoratedclient.h b/kwin-5.11.3/decorations/decoratedclient.h --- a/kwin-5.11.3/decorations/decoratedclient.h +++ b/kwin-5.11.3/decorations/decoratedclient.h @@ -72,6 +72,7 @@ bool hasApplicationMenu() const override; bool isApplicationMenuActive() const override; + void requestTooltip(QString text, bool show) override; void requestClose() override; void requestContextHelp() override; void requestToggleMaximization(Qt::MouseButtons buttons) override; diff --git a/kwin-5.11.3/decorations/decoratedclient.cpp b/kwin-5.11.3/decorations/decoratedclient.cpp --- a/kwin-5.11.3/decorations/decoratedclient.cpp +++ b/kwin-5.11.3/decorations/decoratedclient.cpp @@ -200,6 +200,11 @@ return QColor(); } +void DecoratedClientImpl::requestTooltip(QString text, bool show) +{ + Workspace::self()->showTooltip(text, show); +} + void DecoratedClientImpl::requestShowWindowMenu() { // TODO: add rect to requestShowWindowMenu diff --git a/kwin-5.11.3/kcmkwin/kwindecoration/declarative-plugin/previewclient.h b/kwin-5.11.3/kcmkwin/kwindecoration/declarative-plugin/previewclient.h --- a/kwin-5.11.3/kcmkwin/kwindecoration/declarative-plugin/previewclient.h +++ b/kwin-5.11.3/kcmkwin/kwindecoration/declarative-plugin/previewclient.h @@ -100,6 +100,7 @@ bool hasApplicationMenu() const override; bool isApplicationMenuActive() const override; + void requestTooltip(QString text, bool show) override; void requestClose() override; void requestContextHelp() override; void requestToggleMaximization(Qt::MouseButtons buttons) override; diff --git a/kwin-5.11.3/kcmkwin/kwindecoration/declarative-plugin/previewclient.cpp b/kwin-5.11.3/kcmkwin/kwindecoration/declarative-plugin/previewclient.cpp --- a/kwin-5.11.3/kcmkwin/kwindecoration/declarative-plugin/previewclient.cpp +++ b/kwin-5.11.3/kcmkwin/kwindecoration/declarative-plugin/previewclient.cpp @@ -375,6 +375,13 @@ emit bordersTopEdgeChanged(enabled); } +void PreviewClient::requestTooltip(QString text, bool show) +{ + Q_UNUSED(text); + Q_UNUSED(show); + qDebug() << "tooltip requested"; +} + void PreviewClient::requestClose() { emit closeRequested(); diff --git a/kwin-5.11.3/useractions.cpp b/kwin-5.11.3/useractions.cpp --- a/kwin-5.11.3/useractions.cpp +++ b/kwin-5.11.3/useractions.cpp @@ -55,6 +55,7 @@ #include #include #include +#include #include #include @@ -1663,6 +1664,11 @@ showWindowMenu(QRect(pos, pos), active_client); } +void Workspace::showTooltip(const QString& text, bool show){ + QPoint pos = QCursor::pos(); + show ? QToolTip::showText(pos, text) : QToolTip::hideText(); +} + void Workspace::showWindowMenu(const QRect &pos, AbstractClient* cl) { m_userActionsMenu->show(pos, cl); diff --git a/kwin-5.11.3/workspace.h b/kwin-5.11.3/workspace.h --- a/kwin-5.11.3/workspace.h +++ b/kwin-5.11.3/workspace.h @@ -278,6 +278,7 @@ void windowToNextDesktop(AbstractClient* c); void sendClientToScreen(AbstractClient* c, int screen); + void showTooltip(const QString& text, bool show); /** * Shows the menu operations menu for the client and makes it active if * it's not already.