summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2024-03-05 20:42:22 +0000
committerVaxry <vaxry@vaxry.net>2024-03-05 20:42:29 +0000
commita4c1f4a03d7304f4b7935d4e163fd5df62a3121c (patch)
treeec78c04c7858e6f38a0c292b4bf205cf08eca942 /src
parent0ee69058c447b91bd142523676b13c5af8685ba8 (diff)
popup: send scale on map
fixes #4972
Diffstat (limited to 'src')
-rw-r--r--src/desktop/Popup.cpp10
-rw-r--r--src/desktop/Popup.hpp1
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();