summaryrefslogtreecommitdiff
path: root/src/protocols/ColorManagement.cpp
diff options
context:
space:
mode:
authorVaxry <43317083+vaxerski@users.noreply.github.com>2025-07-31 18:07:59 +0200
committerGitHub <noreply@github.com>2025-07-31 18:07:59 +0200
commit9607e3b5a88f22017af64ab1ba360a39169a4bf7 (patch)
tree28e408434d4c7781c6b6f403b3093f19b56b6d86 /src/protocols/ColorManagement.cpp
parenta907ecd4ff736a3a09410532b405a437eb48033c (diff)
screencopy: un-hdr screencopy buffers for cm-unaware clients (#11294)
Diffstat (limited to 'src/protocols/ColorManagement.cpp')
-rw-r--r--src/protocols/ColorManagement.cpp8
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; });
}