diff options
| author | outfoxxed <outfoxxed@outfoxxed.me> | 2025-01-14 08:44:09 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-14 16:44:09 +0000 |
| commit | f16f170433540d85cf672217bca2d64c6db9eb01 (patch) | |
| tree | ad360461b74e0cf91d83fc88e78266adcabe639e /src/protocols | |
| parent | a6b263713a2b862ed41362082e2147e081934077 (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')
| -rw-r--r-- | src/protocols/ToplevelExport.cpp | 9 | ||||
| -rw-r--r-- | src/protocols/ToplevelExport.hpp | 2 |
2 files changed, 8 insertions, 3 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); } diff --git a/src/protocols/ToplevelExport.hpp b/src/protocols/ToplevelExport.hpp index 956a085b..8d734dbd 100644 --- a/src/protocols/ToplevelExport.hpp +++ b/src/protocols/ToplevelExport.hpp @@ -52,7 +52,7 @@ class CToplevelExportFrame { PHLWINDOW pWindow; bool cursorOverlayRequested = false; - bool ignoreDamage = false; + bool m_ignoreDamage = false; bool lockedSWCursors = false; WP<IHLBuffer> buffer; |
