diff options
| author | Vaxry <vaxry@vaxry.net> | 2024-03-05 20:42:22 +0000 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2024-03-05 20:42:29 +0000 |
| commit | a4c1f4a03d7304f4b7935d4e163fd5df62a3121c (patch) | |
| tree | ec78c04c7858e6f38a0c292b4bf205cf08eca942 /src | |
| parent | 0ee69058c447b91bd142523676b13c5af8685ba8 (diff) | |
popup: send scale on map
fixes #4972
Diffstat (limited to 'src')
| -rw-r--r-- | src/desktop/Popup.cpp | 10 | ||||
| -rw-r--r-- | src/desktop/Popup.hpp | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/desktop/Popup.cpp b/src/desktop/Popup.cpp index 92f0e312..29594e47 100644 --- a/src/desktop/Popup.cpp +++ b/src/desktop/Popup.cpp @@ -116,6 +116,7 @@ void CPopup::onMap() { m_pSubsurfaceHead = std::make_unique<CSubsurface>(this); unconstrain(); + sendScale(); } void CPopup::onUnmap() { @@ -234,3 +235,12 @@ void CPopup::recheckChildrenRecursive() { Vector2D CPopup::size() { return m_vLastSize; } + +void CPopup::sendScale() { + if (m_pWindowOwner) + g_pCompositor->setPreferredScaleForSurface(m_sWLSurface.wlr(), m_pWindowOwner->m_pWLSurface.m_fLastScale); + else if (m_pLayerOwner) + g_pCompositor->setPreferredScaleForSurface(m_sWLSurface.wlr(), m_pLayerOwner->surface.m_fLastScale); + else + UNREACHABLE(); +} diff --git a/src/desktop/Popup.hpp b/src/desktop/Popup.hpp index 48dae088..0ac460d1 100644 --- a/src/desktop/Popup.hpp +++ b/src/desktop/Popup.hpp @@ -65,6 +65,7 @@ class CPopup { void initAllSignals(); void unconstrain(); void recheckChildrenRecursive(); + void sendScale(); Vector2D localToGlobal(const Vector2D& rel); Vector2D t1ParentCoords(); |
