diff --git a/src/helpers/LayerSurface.cpp b/src/helpers/LayerSurface.cpp index 5ae9b6f..3243cc8 100644 --- a/src/helpers/LayerSurface.cpp +++ b/src/helpers/LayerSurface.cpp @@ -66,10 +66,7 @@ CLayerSurface::~CLayerSurface() { static void onCallbackDone(CLayerSurface* surf, uint32_t when) { surf->frameCallback.reset(); - if (surf->dirty || !surf->rendered || surf->forceRerender) - g_pHyprpicker->renderSurface(surf); - - surf->forceRerender = false; + g_pHyprpicker->renderSurface(surf); } void CLayerSurface::sendFrame() { @@ -79,6 +76,8 @@ void CLayerSurface::sendFrame() { frameCallback = makeShared(pSurface->sendFrame()); frameCallback->setDone([this](CCWlCallback* r, uint32_t when) { onCallbackDone(this, when); }); + pSurface->sendDamageBuffer(0, 0, 0xFFFF, 0xFFFF); + pSurface->sendAttach(PBUFFER->buffer.get(), 0, 0); if (!g_pHyprpicker->m_bNoFractional) { pSurface->sendSetBufferScale(1); @@ -86,10 +85,7 @@ void CLayerSurface::sendFrame() { } else pSurface->sendSetBufferScale(m_pMonitor->scale); - pSurface->sendDamageBuffer(0, 0, 0xFFFF, 0xFFFF); pSurface->sendCommit(); - - dirty = false; } void CLayerSurface::markDirty() { diff --git a/src/helpers/LayerSurface.hpp b/src/helpers/LayerSurface.hpp index c3e50c6..46bc87c 100644 --- a/src/helpers/LayerSurface.hpp +++ b/src/helpers/LayerSurface.hpp @@ -38,5 +38,4 @@ class CLayerSurface { bool rendered = false; SP frameCallback = nullptr; - bool forceRerender = false; }; \ No newline at end of file diff --git a/src/hyprpicker.cpp b/src/hyprpicker.cpp index dfbd394..9618f31 100644 --- a/src/hyprpicker.cpp +++ b/src/hyprpicker.cpp @@ -169,10 +169,8 @@ void CHyprpicker::recheckACK() { void CHyprpicker::markDirty() { for (auto& ls : m_vLayerSurfaces) { - if (ls->frameCallback) { - ls->forceRerender = true; + if (ls->frameCallback) continue; - } ls->markDirty(); }