From 9607e3b5a88f22017af64ab1ba360a39169a4bf7 Mon Sep 17 00:00:00 2001 From: Vaxry <43317083+vaxerski@users.noreply.github.com> Date: Thu, 31 Jul 2025 18:07:59 +0200 Subject: screencopy: un-hdr screencopy buffers for cm-unaware clients (#11294) --- src/protocols/ColorManagement.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/protocols/ColorManagement.cpp') diff --git a/src/protocols/ColorManagement.cpp b/src/protocols/ColorManagement.cpp index 215ab5ac..ce00a96b 100644 --- a/src/protocols/ColorManagement.cpp +++ b/src/protocols/ColorManagement.cpp @@ -204,6 +204,10 @@ bool CColorManager::good() { return m_resource->resource(); } +wl_client* CColorManager::client() { + return m_resource->client(); +} + CColorManagementOutput::CColorManagementOutput(SP resource, WP monitor) : m_resource(resource), m_monitor(monitor) { if UNLIKELY (!good()) return; @@ -818,6 +822,10 @@ void CColorManagementProtocol::onMonitorImageDescriptionChanged(WP mon feedback->onPreferredChanged(); } +bool CColorManagementProtocol::isClientCMAware(wl_client* client) { + return std::ranges::any_of(m_managers, [client](const auto& m) { return m->client() == client; }); +} + void CColorManagementProtocol::destroyResource(CColorManager* resource) { std::erase_if(m_managers, [&](const auto& other) { return other.get() == resource; }); } -- cgit v1.2.3