diff options
Diffstat (limited to 'src/plugins/platforms/wayland/qwaylandwindow.cpp')
-rw-r--r-- | src/plugins/platforms/wayland/qwaylandwindow.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/plugins/platforms/wayland/qwaylandwindow.cpp b/src/plugins/platforms/wayland/qwaylandwindow.cpp index 1142c31f3..b70860d55 100644 --- a/src/plugins/platforms/wayland/qwaylandwindow.cpp +++ b/src/plugins/platforms/wayland/qwaylandwindow.cpp @@ -147,7 +147,7 @@ void QWaylandWindow::attach(QWaylandBuffer *buffer) { mBuffer = buffer; - if (window()->visible()) { + if (window()->isVisible()) { wl_surface_attach(mSurface, mBuffer->buffer(),0,0); if (buffer) QWindowSystemInterface::handleSynchronousExposeEvent(window(), QRect(QPoint(), geometry().size())); @@ -222,6 +222,22 @@ Qt::ScreenOrientation QWaylandWindow::requestWindowOrientation(Qt::ScreenOrienta return Qt::PrimaryOrientation; } +Qt::WindowState QWaylandWindow::setWindowState(Qt::WindowState state) +{ + if (state == Qt::WindowFullScreen || state == Qt::WindowMaximized) { + QScreen *screen = window()->screen(); + + QRect geometry = screen->mapBetween(window()->windowOrientation(), screen->primaryOrientation(), screen->geometry()); + setGeometry(geometry); + + QWindowSystemInterface::handleGeometryChange(window(), geometry); + + return state; + } + + return Qt::WindowNoState; +} + Qt::WindowFlags QWaylandWindow::setWindowFlags(Qt::WindowFlags flags) { return mExtendedWindow->setWindowFlags(flags); |