Support Qt::WindowMaximizeButtonHint in QWasmWindow

Change-Id: I1089ab4706c4342fa5976b1aff18d67d47769687
Reviewed-by: Aleksandr Reviakin <aleksandr.reviakin@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
bb10
Mikolaj Boc 2023-02-02 08:58:19 +01:00
parent 9ea00c70fb
commit ae51eeb0bb
2 changed files with 9 additions and 1 deletions

View File

@ -362,6 +362,8 @@ void QWasmWindow::setWindowFlags(Qt::WindowFlags flags)
dom::syncCSSClassWith(m_qtWindow, "has-shadow", !flags.testFlag(Qt::NoDropShadowWindowHint));
dom::syncCSSClassWith(m_qtWindow, "transparent-for-input",
flags.testFlag(Qt::WindowTransparentForInput));
m_nonClientArea->titleBar()->setMaximizeVisible(hasMaximizeButton());
}
void QWasmWindow::setWindowState(Qt::WindowStates newState)
@ -422,7 +424,7 @@ void QWasmWindow::applyWindowState()
dom::syncCSSClassWith(m_qtWindow, "maximized", isMaximized);
m_nonClientArea->titleBar()->setRestoreVisible(isMaximized);
m_nonClientArea->titleBar()->setMaximizeVisible(!isMaximized);
m_nonClientArea->titleBar()->setMaximizeVisible(hasMaximizeButton());
if (isVisible())
QWindowSystemInterface::handleWindowStateChanged(window(), m_state, m_previousWindowState);
@ -521,6 +523,11 @@ bool QWasmWindow::hasTitleBar() const
&& !windowIsPopupType(m_flags);
}
bool QWasmWindow::hasMaximizeButton() const
{
return !m_state.testFlag(Qt::WindowMaximized) && m_flags.testFlag(Qt::WindowMaximizeButtonHint);
}
bool QWasmWindow::windowIsPopupType(Qt::WindowFlags flags) const
{
if (flags.testFlag(Qt::Tool))

View File

@ -92,6 +92,7 @@ private:
void invalidate();
bool hasTitleBar() const;
bool hasMaximizeButton() const;
void applyWindowState();
bool processPointer(const PointerEvent &event);