diff --git a/autotests/test_window_paint_data.cpp b/autotests/test_window_paint_data.cpp --- a/autotests/test_window_paint_data.cpp +++ b/autotests/test_window_paint_data.cpp @@ -254,6 +254,9 @@ bool isOutline() const override { return false; } + pid_t pid() const override { + return 0; + } private: qreal m_opacity = 1.0; diff --git a/effects.h b/effects.h --- a/effects.h +++ b/effects.h @@ -462,6 +462,8 @@ bool isWaylandClient() const override; bool isX11Client() const override; + pid_t pid() const override; + QRect decorationInnerRect() const override; QByteArray readProperty(long atom, long type, int format) const override; void deleteProperty(long atom) const override; diff --git a/effects.cpp b/effects.cpp --- a/effects.cpp +++ b/effects.cpp @@ -2127,6 +2127,11 @@ return x11Client; } +pid_t EffectWindowImpl::pid() const +{ + return toplevel->pid(); +} + //**************************************** // EffectWindowGroupImpl diff --git a/libkwineffects/kwineffects.h b/libkwineffects/kwineffects.h --- a/libkwineffects/kwineffects.h +++ b/libkwineffects/kwineffects.h @@ -2385,6 +2385,11 @@ */ virtual bool isOutline() const = 0; + /** + * @since 5.18 + */ + virtual pid_t pid() const = 0; + /** * Can be used to by effects to store arbitrary data in the EffectWindow. *