use m_interface->desiredSize() validity to decide the direction

This commit is contained in:
Marco Martin 2025-04-30 15:24:47 +02:00
parent 71a4fde017
commit 2f89957fac
3 changed files with 11 additions and 9 deletions

View File

@ -32,7 +32,7 @@ public:
Window::KeyboardInteractivity keyboardInteractivity = Window::KeyboardInteractivityOnDemand;
Window::Layer layer = Window::LayerTop;
QMargins margins;
QSize desiredSize;
QSize desiredSize = QSize(0, 0);
Window::ScreenConfiguration screenConfiguration = Window::ScreenFromQWindow;
bool closeOnDismissed = true;
};

View File

@ -44,10 +44,10 @@ QWaylandLayerSurface::QWaylandLayerSurface(QWaylandLayerShellIntegration *shell,
setAnchor(m_interface->anchors());
connect(m_interface, &Window::anchorsChanged, this, [this]() {
setAnchor(m_interface->anchors());
if (m_explicitDesiredSize) {
setDesiredSize(m_interface->desiredSize());
} else {
if (m_interface->desiredSize().isNull()) {
setDesiredSize(m_window->windowContentGeometry().size());
} else {
setDesiredSize(m_interface->desiredSize());
}
});
@ -66,8 +66,9 @@ QWaylandLayerSurface::QWaylandLayerSurface(QWaylandLayerShellIntegration *shell,
});
connect(m_interface, &Window::desiredSizeChanged, this, [this]() {
m_explicitDesiredSize = true;
setDesiredSize(m_interface->desiredSize());
if (!m_interface->desiredSize().isNull()) {
setDesiredSize(m_interface->desiredSize());
}
});
setKeyboardInteractivity(m_interface->keyboardInteractivity());
@ -75,8 +76,10 @@ QWaylandLayerSurface::QWaylandLayerSurface(QWaylandLayerShellIntegration *shell,
setKeyboardInteractivity(m_interface->keyboardInteractivity());
});
if (!m_explicitDesiredSize) {
if (m_interface->desiredSize().isNull()) {
setDesiredSize(window->windowContentGeometry().size());
} else {
setDesiredSize(m_interface->desiredSize());
}
}
@ -185,7 +188,7 @@ void QWaylandLayerSurface::setWindowGeometry(const QRect &geometry)
return;
}
if (!m_explicitDesiredSize) {
if (m_interface->desiredSize().isNull()) {
setDesiredSize(geometry.size());
}
}

View File

@ -64,7 +64,6 @@ private:
QSize m_pendingSize;
QString m_activationToken;
bool m_explicitDesiredSize = false;
bool m_configured = false;
#if QT_VERSION < QT_VERSION_CHECK(6, 9, 0)
bool m_configuring = false;