summaryrefslogtreecommitdiff
path: root/src/compositor/extensions/qwaylandwlshellintegration_p.h
diff options
context:
space:
mode:
authorMatt Hoosier <matt.hoosier@garmin.com>2018-06-12 11:13:20 -0500
committerMatt Hoosier <matt.hoosier@garmin.com>2018-06-17 01:39:22 +0000
commit17eb840b65c1e62351c99a0ca64937e2deaf32de (patch)
treeebfa0acc1433ae34d589f75819a63012fdc19ed6 /src/compositor/extensions/qwaylandwlshellintegration_p.h
parent254b1428724f3e79248b906ad4cba810c0d37572 (diff)
downloadqtwayland-17eb840b65c1e62351c99a0ca64937e2deaf32de.tar.gz
Compositor: make WlShell reconfigure clients on output geometry change
[ChangeLog][Compositor] Made the wl_shell compositor protocol implementation re-issue configure requests with updated sizes when the size or available geometry changes on output used by a maximized or fullscreen surface. Change-Id: I5a688afb315523281d6661e2d098423acfb1a297 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Diffstat (limited to 'src/compositor/extensions/qwaylandwlshellintegration_p.h')
-rw-r--r--src/compositor/extensions/qwaylandwlshellintegration_p.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/compositor/extensions/qwaylandwlshellintegration_p.h b/src/compositor/extensions/qwaylandwlshellintegration_p.h
index 68c936b1..ff236e63 100644
--- a/src/compositor/extensions/qwaylandwlshellintegration_p.h
+++ b/src/compositor/extensions/qwaylandwlshellintegration_p.h
@@ -80,6 +80,8 @@ private Q_SLOTS:
void handleSurfaceHasContentChanged();
void handleRedraw();
void adjustOffsetForNextFrame(const QPointF &offset);
+ void handleFullScreenSizeChanged();
+ void handleMaximizedSizeChanged();
private:
enum class GrabberState {
@@ -118,6 +120,14 @@ private:
State currentState = State::Windowed;
State nextState = State::Windowed;
+
+ struct {
+ QWaylandOutput *output = nullptr;
+ QMetaObject::Connection sizeChangedConnection; // Depending on whether maximized or fullscreen,
+ // will be hooked to geometry-changed or available-
+ // geometry-changed.
+ } nonwindowedState;
+
QPointF normalPosition;
QPointF finalPosition;
};