diff options
Diffstat (limited to 'examples/wayland/pure-qml/qml/Screen.qml')
-rw-r--r-- | examples/wayland/pure-qml/qml/Screen.qml | 46 |
1 files changed, 33 insertions, 13 deletions
diff --git a/examples/wayland/pure-qml/qml/Screen.qml b/examples/wayland/pure-qml/qml/Screen.qml index 562eb86c5..b156cb434 100644 --- a/examples/wayland/pure-qml/qml/Screen.qml +++ b/examples/wayland/pure-qml/qml/Screen.qml @@ -54,49 +54,69 @@ import QtWayland.Compositor 1.0 WaylandOutput { id: output - property alias surfaceArea: background - sizeFollowsWindow: true - window: Window { - id: screen - property QtObject output + property ListModel shellSurfaces: ListModel {} + property bool isNestedCompositor: Qt.platform.pluginName.startsWith("wayland") || Qt.platform.pluginName === "xcb" + + function handleShellSurface(shellSurface) { + shellSurfaces.append({shellSurface: shellSurface}); + } + + // During development, it can be useful to start the compositor inside X11 or + // another Wayland compositor. In such cases, set sizeFollowsWindow to true to + // enable resizing of the compositor window to be forwarded to the Wayland clients + // as the output (screen) changing resolution. Consider setting it to false if you + // are running the compositor using eglfs, linuxfb or similar QPA backends. + sizeFollowsWindow: output.isNestedCompositor + window: Window { width: 1024 height: 760 visible: true WaylandMouseTracker { id: mouseTracker + anchors.fill: parent - windowSystemCursorEnabled: true + // Set this to false to disable the outer mouse cursor when running nested + // compositors. Otherwise you would see two mouse cursors, one for each compositor. + windowSystemCursorEnabled: output.isNestedCompositor + Image { id: background + anchors.fill: parent fillMode: Image.Tile source: "qrc:/images/background.jpg" smooth: true + + Repeater { + model: output.shellSurfaces + // Chrome displays a shell surface on the screen (See Chrome.qml) + Chrome { + shellSurface: modelData + onDestroyAnimationFinished: output.shellSurfaces.remove(index) + } + } } + + // Virtual Keyboard Loader { anchors.fill: parent source: "Keyboard.qml" } + + // Draws the mouse cursor for a given Wayland seat WaylandCursorItem { - id: cursor inputEventsEnabled: false x: mouseTracker.mouseX y: mouseTracker.mouseY - seat: output.compositor.defaultSeat } } Shortcut { - sequence: "Meta+F" - onActivated: qtWindowManager.showIsFullScreen = !qtWindowManager.showIsFullScreen - } - - Shortcut { sequence: "Ctrl+Alt+Backspace" onActivated: Qt.quit() } |