diff options
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/decorations/bradient/main.cpp | 7 | ||||
-rw-r--r-- | src/plugins/shellintegration/ivi-shell/qwaylandivisurface.cpp | 8 | ||||
-rw-r--r-- | src/plugins/shellintegration/ivi-shell/qwaylandivisurface_p.h | 2 |
3 files changed, 12 insertions, 5 deletions
diff --git a/src/plugins/decorations/bradient/main.cpp b/src/plugins/decorations/bradient/main.cpp index 9a7e91e6f..d3627d2f7 100644 --- a/src/plugins/decorations/bradient/main.cpp +++ b/src/plugins/decorations/bradient/main.cpp @@ -270,8 +270,7 @@ void QWaylandBradientDecoration::paint(QPaintDevice *device) p.drawPixmap(closeButtonRect(), closePixmap, closePixmap.rect()); // Maximize button - QPixmap maximizePixmap(waylandWindow()->isMaximized() - ? qt_normalizeup_xpm : qt_maximize_xpm); + QPixmap maximizePixmap((window()->windowStates() & Qt::WindowMaximized) ? qt_normalizeup_xpm : qt_maximize_xpm); p.drawPixmap(maximizeButtonRect(), maximizePixmap, maximizePixmap.rect()); // Minimize button @@ -356,7 +355,7 @@ bool QWaylandBradientDecoration::handleMouse(QWaylandInputDevice *inputDevice, c QWindowSystemInterface::handleCloseEvent(window()); } else if (maximizeButtonRect().contains(local)) { if (clickButton(b, Maximize)) - window()->setWindowState(waylandWindow()->isMaximized() ? Qt::WindowNoState : Qt::WindowMaximized); + window()->setWindowStates(window()->windowStates() ^ Qt::WindowMaximized); } else if (minimizeButtonRect().contains(local)) { if (clickButton(b, Minimize)) window()->setWindowState(Qt::WindowMinimized); @@ -390,7 +389,7 @@ bool QWaylandBradientDecoration::handleTouch(QWaylandInputDevice *inputDevice, c if (closeButtonRect().contains(local)) QWindowSystemInterface::handleCloseEvent(window()); else if (maximizeButtonRect().contains(local)) - window()->setWindowState(waylandWindow()->isMaximized() ? Qt::WindowNoState : Qt::WindowMaximized); + window()->setWindowStates(window()->windowStates() ^ Qt::WindowMaximized); else if (minimizeButtonRect().contains(local)) window()->setWindowState(Qt::WindowMinimized); else if (local.y() <= margins().top()) diff --git a/src/plugins/shellintegration/ivi-shell/qwaylandivisurface.cpp b/src/plugins/shellintegration/ivi-shell/qwaylandivisurface.cpp index ec529b124..871709cdf 100644 --- a/src/plugins/shellintegration/ivi-shell/qwaylandivisurface.cpp +++ b/src/plugins/shellintegration/ivi-shell/qwaylandivisurface.cpp @@ -82,6 +82,11 @@ void QWaylandIviSurface::setType(Qt::WindowType type, QWaylandWindow *transientP Q_UNUSED(transientParent) } +void QWaylandIviSurface::applyConfigure() +{ + m_window->resizeFromApplyConfigure(m_pendingSize); +} + void QWaylandIviSurface::createExtendedSurface(QWaylandWindow *window) { if (window->display()->windowExtension()) @@ -90,7 +95,8 @@ void QWaylandIviSurface::createExtendedSurface(QWaylandWindow *window) void QWaylandIviSurface::ivi_surface_configure(int32_t width, int32_t height) { - this->m_window->configure(0, width, height); + m_pendingSize = {width, height}; + m_window->applyConfigureWhenPossible(); } void QWaylandIviSurface::ivi_controller_surface_visibility(int32_t visibility) diff --git a/src/plugins/shellintegration/ivi-shell/qwaylandivisurface_p.h b/src/plugins/shellintegration/ivi-shell/qwaylandivisurface_p.h index ff943060b..6ec28e758 100644 --- a/src/plugins/shellintegration/ivi-shell/qwaylandivisurface_p.h +++ b/src/plugins/shellintegration/ivi-shell/qwaylandivisurface_p.h @@ -63,6 +63,7 @@ public: ~QWaylandIviSurface() override; void setType(Qt::WindowType type, QWaylandWindow *transientParent) override; + void applyConfigure() override; private: void createExtendedSurface(QWaylandWindow *window); @@ -71,6 +72,7 @@ private: QWaylandWindow *m_window = nullptr; QWaylandExtendedSurface *m_extendedWindow = nullptr; + QSize m_pendingSize = {0, 0}; }; } |