diff options
author | dawsers <[email protected]> | 2024-11-11 14:48:50 +0100 |
---|---|---|
committer | Vaxry <[email protected]> | 2024-11-18 14:26:44 +0000 |
commit | 7120dde3d17b9e55518df5d1cd2951db02cda8cd (patch) | |
tree | 0a3c022b3df88e6c1a79b2ae6f2d9e4d0b2cfe70 /src | |
parent | e7ab2d8533a13b716528a61951c0b6f2704e9561 (diff) | |
download | Hyprland-7120dde3d17b9e55518df5d1cd2951db02cda8cd.tar.gz Hyprland-7120dde3d17b9e55518df5d1cd2951db02cda8cd.zip |
renderer: scaled surfaces could have zero area (#8423)
Diffstat (limited to 'src')
-rw-r--r-- | src/render/Renderer.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 469acda9..d98e32a9 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -222,6 +222,11 @@ static void renderSurface(SP<CWLSurfaceResource> surface, int x, int y, void* da windowBox.height = RDATA->h - y; } + const auto PROJSIZEUNSCALED = windowBox.size(); + + windowBox.scale(RDATA->pMonitor->scale); + windowBox.round(); + if (windowBox.width <= 1 || windowBox.height <= 1) { if (!g_pHyprRenderer->m_bBlockSurfaceFeedback) { Debug::log(TRACE, "presentFeedback for invisible surface"); @@ -231,11 +236,6 @@ static void renderSurface(SP<CWLSurfaceResource> surface, int x, int y, void* da return; // invisible } - const auto PROJSIZEUNSCALED = windowBox.size(); - - windowBox.scale(RDATA->pMonitor->scale); - windowBox.round(); - const bool MISALIGNEDFSV1 = std::floor(RDATA->pMonitor->scale) != RDATA->pMonitor->scale /* Fractional */ && surface->current.scale == 1 /* fs protocol */ && windowBox.size() != surface->current.bufferSize /* misaligned */ && DELTALESSTHAN(windowBox.width, surface->current.bufferSize.x, 3) && DELTALESSTHAN(windowBox.height, surface->current.bufferSize.y, 3) /* off by one-or-two */ && |