diff options
| author | Vaxry <43317083+vaxerski@users.noreply.github.com> | 2025-07-31 18:07:59 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-31 18:07:59 +0200 |
| commit | 9607e3b5a88f22017af64ab1ba360a39169a4bf7 (patch) | |
| tree | 28e408434d4c7781c6b6f403b3093f19b56b6d86 /src/protocols/ColorManagement.cpp | |
| parent | a907ecd4ff736a3a09410532b405a437eb48033c (diff) | |
screencopy: un-hdr screencopy buffers for cm-unaware clients (#11294)
Diffstat (limited to 'src/protocols/ColorManagement.cpp')
| -rw-r--r-- | src/protocols/ColorManagement.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
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<CWpColorManagementOutputV1> resource, WP<CMonitor> monitor) : m_resource(resource), m_monitor(monitor) { if UNLIKELY (!good()) return; @@ -818,6 +822,10 @@ void CColorManagementProtocol::onMonitorImageDescriptionChanged(WP<CMonitor> 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; }); } |
