From fe6c296073ce8eabbb71d43a3a3d51d567c03871 Mon Sep 17 00:00:00 2001 From: Nicolas Fella Date: Sun, 1 Nov 2020 15:25:15 +0100 Subject: [PATCH] [libkwineffects] Add windowId to EffectWindow My use case is integrating with a system that tracks window properties based on the windowId. This allows the effect to do window-specific things. --- autotests/test_window_paint_data.cpp | 3 +++ effects.cpp | 1 + effects.h | 1 + libkwineffects/kwineffects.h | 5 +++++ 4 files changed, 10 insertions(+) diff --git a/autotests/test_window_paint_data.cpp b/autotests/test_window_paint_data.cpp index 937f136b2f..1f457d82a7 100644 --- a/autotests/test_window_paint_data.cpp +++ b/autotests/test_window_paint_data.cpp @@ -253,6 +253,9 @@ public: pid_t pid() const override { return 0; } + qlonglong windowId() const override { + return 0; + } private: qreal m_opacity = 1.0; diff --git a/effects.cpp b/effects.cpp index a06437ae1d..967d7170b2 100644 --- a/effects.cpp +++ b/effects.cpp @@ -1828,6 +1828,7 @@ TOPLEVEL_HELPER(KWaylandServer::SurfaceInterface *, surface, surface) TOPLEVEL_HELPER(bool, isPopupWindow, isPopupWindow) TOPLEVEL_HELPER(bool, isOutline, isOutline) TOPLEVEL_HELPER(pid_t, pid, pid) +TOPLEVEL_HELPER(qlonglong, windowId, window) #undef TOPLEVEL_HELPER diff --git a/effects.h b/effects.h index 9b4b249d5b..dd02767bfa 100644 --- a/effects.h +++ b/effects.h @@ -454,6 +454,7 @@ public: bool isX11Client() const override; pid_t pid() const override; + qlonglong windowId() const override; QRect decorationInnerRect() const override; QByteArray readProperty(long atom, long type, int format) const override; diff --git a/libkwineffects/kwineffects.h b/libkwineffects/kwineffects.h index 8cecb10bd9..1c65e2846d 100644 --- a/libkwineffects/kwineffects.h +++ b/libkwineffects/kwineffects.h @@ -2438,6 +2438,11 @@ public: */ virtual pid_t pid() const = 0; + /** + * @since 5.21 + */ + virtual qlonglong windowId() const = 0; + /** * Can be used to by effects to store arbitrary data in the EffectWindow. *