summaryrefslogtreecommitdiff
path: root/src/protocols/ToplevelExport.cpp
diff options
context:
space:
mode:
authoroutfoxxed <outfoxxed@outfoxxed.me>2025-01-14 08:44:09 -0800
committerGitHub <noreply@github.com>2025-01-14 16:44:09 +0000
commitf16f170433540d85cf672217bca2d64c6db9eb01 (patch)
treead360461b74e0cf91d83fc88e78266adcabe639e /src/protocols/ToplevelExport.cpp
parenta6b263713a2b862ed41362082e2147e081934077 (diff)
protocols: immediately copy toplevel content when ignoreDamage set (#9049)
Also sets m_ignoreDamage, as it wasn't set before.
Diffstat (limited to 'src/protocols/ToplevelExport.cpp')
-rw-r--r--src/protocols/ToplevelExport.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/protocols/ToplevelExport.cpp b/src/protocols/ToplevelExport.cpp
index 0ddd84c8..73e5cad9 100644
--- a/src/protocols/ToplevelExport.cpp
+++ b/src/protocols/ToplevelExport.cpp
@@ -202,7 +202,12 @@ void CToplevelExportFrame::copy(CHyprlandToplevelExportFrameV1* pFrame, wl_resou
buffer = PBUFFER->buffer;
- PROTO::toplevelExport->m_vFramesAwaitingWrite.emplace_back(self);
+ m_ignoreDamage = ignoreDamage;
+
+ if (ignoreDamage && validMapped(pWindow))
+ share();
+ else
+ PROTO::toplevelExport->m_vFramesAwaitingWrite.emplace_back(self);
}
void CToplevelExportFrame::share() {
@@ -226,7 +231,7 @@ void CToplevelExportFrame::share() {
resource->sendFlags((hyprlandToplevelExportFrameV1Flags)0);
- if (!ignoreDamage) {
+ if (!m_ignoreDamage) {
resource->sendDamage(0, 0, box.width, box.height);
}