summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wayland/qwaylandwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/wayland/qwaylandwindow.cpp')
-rw-r--r--src/plugins/platforms/wayland/qwaylandwindow.cpp18
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);