diff options
| author | vaxerski <vaxry@vaxry.net> | 2023-06-11 21:52:13 +0200 |
|---|---|---|
| committer | vaxerski <vaxry@vaxry.net> | 2023-06-11 21:52:13 +0200 |
| commit | 6beb79f27b84c36b8b9ef5476d861a94a9071009 (patch) | |
| tree | 54860720b2a564141c1127cb53746a423b5fcda7 /src/managers/XWaylandManager.cpp | |
| parent | 64ce06a3536898ddae7146e8f649361ce081c8d6 (diff) | |
xwayland: add force_zero_scaling
Diffstat (limited to 'src/managers/XWaylandManager.cpp')
| -rw-r--r-- | src/managers/XWaylandManager.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/managers/XWaylandManager.cpp b/src/managers/XWaylandManager.cpp index 7cd03b3a..1801247d 100644 --- a/src/managers/XWaylandManager.cpp +++ b/src/managers/XWaylandManager.cpp @@ -148,6 +148,17 @@ void CHyprXWaylandManager::setWindowSize(CWindow* pWindow, Vector2D size, bool f pWindow->m_vReportedPosition = pWindow->m_vRealPosition.vec(); pWindow->m_vReportedSize = size; + static auto* const PXWLFORCESCALEZERO = &g_pConfigManager->getConfigValuePtr("xwayland:force_zero_scaling")->intValue; + + pWindow->m_fX11SurfaceScaledBy = 1.f; + + if (*PXWLFORCESCALEZERO && pWindow->m_bIsX11) { + if (const auto PMONITOR = g_pCompositor->getMonitorFromID(pWindow->m_iMonitorID); PMONITOR) { + size = size * PMONITOR->scale; + pWindow->m_fX11SurfaceScaledBy = PMONITOR->scale; + } + } + if (pWindow->m_bIsX11) wlr_xwayland_surface_configure(pWindow->m_uSurface.xwayland, pWindow->m_vRealPosition.vec().x, pWindow->m_vRealPosition.vec().y, size.x, size.y); else |
