From 6787fe8933b54f9e68f123df457e502dee9be13a Mon Sep 17 00:00:00 2001 From: UjinT34 <41110182+UjinT34@users.noreply.github.com> Date: Wed, 26 Feb 2025 17:56:37 +0300 Subject: protocols: Support wp color management proto (#9444) Adds support for the recently merged w-p CM protocol alongside the (now deprecated) old CM WIP protocols --- src/protocols/core/Compositor.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/protocols/core/Compositor.cpp') diff --git a/src/protocols/core/Compositor.cpp b/src/protocols/core/Compositor.cpp index 92c3c425..06977338 100644 --- a/src/protocols/core/Compositor.cpp +++ b/src/protocols/core/Compositor.cpp @@ -306,6 +306,23 @@ void CWLSurfaceResource::breadthfirst(std::function, bfHelper(surfs, fn, data); } +SP CWLSurfaceResource::findFirstPreorderHelper(SP root, std::function)> fn) { + if (fn(root)) + return root; + for (auto const& sub : root->subsurfaces) { + if (sub.expired() || sub->surface.expired()) + continue; + const auto found = findFirstPreorderHelper(sub->surface.lock(), fn); + if (found) + return found; + } + return nullptr; +} + +SP CWLSurfaceResource::findFirstPreorder(std::function)> fn) { + return findFirstPreorderHelper(self.lock(), fn); +} + std::pair, Vector2D> CWLSurfaceResource::at(const Vector2D& localCoords, bool allowsInput) { std::vector, Vector2D>> surfs; breadthfirst([&surfs](SP surf, const Vector2D& offset, void* data) { surfs.emplace_back(std::make_pair<>(surf, offset)); }, &surfs); -- cgit v1.2.3