From 9e047059c143610ab0bdefb3ce123192d7c612f9 Mon Sep 17 00:00:00 2001 From: Weng Xuetian Date: Mon, 13 Nov 2023 16:03:07 -0800 Subject: [PATCH] Add isInputMethod in EffectWindow and do not dim input method window --- src/libkwineffects/kwineffects.cpp | 1 + src/libkwineffects/kwineffects.h | 5 +++++ src/plugins/diminactive/diminactive.cpp | 2 +- src/window.h | 6 ++++++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/libkwineffects/kwineffects.cpp b/src/libkwineffects/kwineffects.cpp index 50e18228dc..a0553d2437 100644 --- a/src/libkwineffects/kwineffects.cpp +++ b/src/libkwineffects/kwineffects.cpp @@ -955,6 +955,7 @@ WINDOW_HELPER(bool, isSkipSwitcher, skipSwitcher) WINDOW_HELPER(bool, decorationHasAlpha, decorationHasAlpha) WINDOW_HELPER(bool, isUnresponsive, unresponsive) WINDOW_HELPER(QList, desktops, desktops) +WINDOW_HELPER(bool, isInputMethod, isInputMethod) #undef WINDOW_HELPER diff --git a/src/libkwineffects/kwineffects.h b/src/libkwineffects/kwineffects.h index fa810e3beb..212fc6245d 100644 --- a/src/libkwineffects/kwineffects.h +++ b/src/libkwineffects/kwineffects.h @@ -2302,6 +2302,11 @@ public: */ QUuid internalId() const; + /** + * @since 6.0 + */ + bool isInputMethod() const; + /** * Can be used to by effects to store arbitrary data in the EffectWindow. * diff --git a/src/plugins/diminactive/diminactive.cpp b/src/plugins/diminactive/diminactive.cpp index 4e90539dce..1442388742 100644 --- a/src/plugins/diminactive/diminactive.cpp +++ b/src/plugins/diminactive/diminactive.cpp @@ -187,7 +187,7 @@ bool DimInactiveEffect::canDimWindow(const EffectWindow *w) const return false; } - if (w->isPopupWindow()) { + if (w->isPopupWindow() || w->isInputMethod()) { return false; } diff --git a/src/window.h b/src/window.h index e7b59097b3..02083a1d4d 100644 --- a/src/window.h +++ b/src/window.h @@ -533,6 +533,12 @@ class KWIN_EXPORT Window : public QObject */ Q_PROPERTY(KWin::Tile *tile READ tile WRITE setTile NOTIFY tileChanged) + /** + * Returns whether this window is a input method window. + * This is only used for Wayland. + */ + Q_PROPERTY(bool inputMethod READ isInputMethod) + public: ~Window() override;