summaryrefslogtreecommitdiff
path: root/src/render/OpenGL.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/OpenGL.cpp')
-rw-r--r--src/render/OpenGL.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp
index 907fe7e8..008d0dc3 100644
--- a/src/render/OpenGL.cpp
+++ b/src/render/OpenGL.cpp
@@ -756,7 +756,14 @@ void CHyprOpenGLImpl::renderSnapshot(CWindow** pWindow) {
const auto PMONITOR = g_pCompositor->getMonitorFromID(PWINDOW->m_iMonitorID);
- wlr_box windowBox = {0, 0, PMONITOR->vecPixelSize.x, PMONITOR->vecPixelSize.y};
+ wlr_box windowBox;
+ // some mafs to figure out the correct box
+ Vector2D scaleXY = Vector2D((PWINDOW->m_vRealSize.vec().x / PWINDOW->m_vOriginalClosedSize.x), (PWINDOW->m_vRealSize.vec().y / PWINDOW->m_vOriginalClosedSize.y));
+
+ windowBox.width = PMONITOR->vecPixelSize.x * scaleXY.x;
+ windowBox.height = PMONITOR->vecPixelSize.y * scaleXY.y;
+ windowBox.x = PWINDOW->m_vRealPosition.vec().x - (PWINDOW->m_vOriginalClosedPos.x * scaleXY.x);
+ windowBox.y = PWINDOW->m_vRealPosition.vec().y - (PWINDOW->m_vOriginalClosedPos.y * scaleXY.y);
pixman_region32_t fakeDamage;
pixman_region32_init_rect(&fakeDamage, 0, 0, PMONITOR->vecPixelSize.x, PMONITOR->vecPixelSize.y);