Copyright (C) 2021 The Qt Company Ltd. SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause The qt_shell_surface interface is part of a shell extension which allows clients to access all windowing system features in Qt. These include mechanisms that may only be advisable for trusted applications, and not for arbitrary third-party applications. The qt_shell_surface provides an interface to windowing system features for a surface. Destroys the qt_shell_surface object. This event suggests a size for the window. This can be one of multiple configuration events grouped together by a serial number. The client should store them until the corresponding configure event is received. The suggested configuration is not effective before the client has responded with an ack_configure request with the same serial number. This allows the server to group together reposition and resize events to avoid stuttering in updates. This event informs the client that the position of the window is about to change. This can be one of multiple configuration events grouped together by a serial number. The client should store them until the corresponding configure event is received. The suggested configuration is not effective before the client has responded with an ack_configure request with the same serial number. This allows the server to group together reposition and resize events to avoid stuttering in updates. This event informs the client that the state of the window is about to change. This can be one of multiple configuration events grouped together by a serial number. The client should store them until the corresponding configure event is received. The suggested configuration is not effective before the client has responded with an ack_configure request with the same serial number. This allows the server to group together reposition and resize events to avoid stuttering in updates. After sending one or more configuration events, the server sends a configure event with the same serial to trigger the necessary updates on the client side. When the client has made these changes, it should send an ack_configure request for the corresponding serial to inform the server that the new configuration is valid. This event informs the client how much of the window geometry is reserved for decorations. When a resize configuration is received, the frame margins must be subtracted from the size to find the appropriate size of the surface used for application content. State changes can trigger updates to frame margins, for instance if the window switches between windowed and fullscreen modes. The server sends a close event to instruct the window to close itself gracefully. This could for instance be triggered by user interaction, when clicking on the close button in the window decorations. This event informs the client of which capabilities are available on the server-side. See the capabilities enum for possible flags. A client can issue this to request a new position for the window. If the request is granted, the server will respond with a configuration event. This requests that the window becomes active. The server may respond by giving keyboard focus to the window. Only a single window may be active at any given time. The client issues the set_size request when the window has been resized. The client issues this request to inform the server of the minimum size of the window. The server should not attempt to resize the window below this size. The client issues this request to inform the server of the maximum size of the window. The server should not attempt to resize the window above this size. This request is issued to inform the server of the title of the window. The client issues this request to inform the server of the current window flags set on the window This request is triggered when an application calls QWindow::startSystemResize() and should trigger interactive resizing on the server-side. Typical behavior is to have the selected edge follow the mouse. This request is triggered when an application calls QWindow::startSystemMove() and should trigger interactive repositioning on the server-side. Typical behavior is to have the window follow the mouse. This requests the server to update the state of the window. The server may respond with a new configure event bundle that reflects all the changes in position, size and state that occurred. This requests that the window is brought to the top of the window stack, so that it is showing on top of all other windows. This requests that the window is brought to the bottom of the window stack, so that it is showing below all other windows. This acknowledges that the given configure event bundle has been received and that the necessary changes have been applied. This interface provides a way to request qt_shell_surface objects that correspond to wl_surfaces. Creates a qt_shell_surface object that corresponds to a surface. If the surface is already assigned a different role, this will issue a protocol error (see the error enum)