5#include <qpa/qwindowsysteminterface.h>
6#include <qpa/qplatformwindow.h>
14 ,
QtWayland::zqt_shell_surface_v1(shell_surface)
21 zqt_shell_surface_v1::destroy();
24void QWaylandQtSurface::resetConfiguration()
26 m_pendingPosition =
QPoint(-1, -1);
27 m_pendingSize =
QSize();
28 m_pendingPositionValid =
false;
29 m_pendingStates = m_currentStates;
34 if (m_pendingSize.
isValid() && m_pendingPositionValid)
36 else if (m_pendingSize.
isValid())
38 else if (m_pendingPositionValid)
41 if (m_pendingStates != m_currentStates) {
43 m_currentStates = m_pendingStates;
46 ack_configure(m_currentConfigureSerial);
49 m_currentConfigureSerial = UINT32_MAX;
54 set_window_title(
title);
59 m_capabilities = capabilities;
64 if (serial < m_currentConfigureSerial && m_currentConfigureSerial != UINT32_MAX)
67 if (serial != m_currentConfigureSerial) {
68 m_currentConfigureSerial = serial;
73 m_pendingPositionValid =
true;
78 if (serial < m_currentConfigureSerial && m_currentConfigureSerial != UINT32_MAX)
81 if (serial != m_currentConfigureSerial) {
82 m_currentConfigureSerial = serial;
91 if (serial < m_currentConfigureSerial)
94 if (serial > m_currentConfigureSerial) {
95 m_currentConfigureSerial = serial;
113 m_pendingPositionValid =
true;
129void QWaylandQtSurface::sendSizeHints()
133 const int minWidth =
qMax(0,
win->windowMinimumSize().
width());
134 const int minHeight =
qMax(0,
win->windowMinimumSize().
height());
135 set_minimum_size(minWidth, minHeight);
137 int maxWidth =
qMax(0,
win->windowMaximumSize().
width());
143 set_maximum_size(maxWidth, maxHeight);
149 if (serial < m_currentConfigureSerial && m_currentConfigureSerial != UINT32_MAX)
152 if (serial != m_currentConfigureSerial) {
153 m_currentConfigureSerial = serial;
154 resetConfiguration();
156 m_pendingStates = Qt::WindowStates(
state);
161 set_size(
rect.width(),
rect.height());
171 set_window_flags(
flags);
181 if (m_capabilities & ZQT_SHELL_SURFACE_V1_CAPABILITIES_INTERACTIVE_RESIZE) {
191 if (m_capabilities & ZQT_SHELL_SURFACE_V1_CAPABILITIES_INTERACTIVE_RESIZE) {
192 start_system_move(
getSerial(inputDevice));
201 return m_frameMargins;
206 QtWayland::zqt_shell_surface_v1::raise();
211 QtWayland::zqt_shell_surface_v1::lower();
\inmodule QtCore\reentrant
\inmodule QtCore\reentrant
constexpr QPoint topLeft() const noexcept
Returns the position of the rectangle's top-left corner.
constexpr QSize size() const noexcept
Returns the size of the rectangle.
constexpr bool isValid() const noexcept
Returns true if both the width and height is equal to or greater than 0; otherwise returns false.
\macro QT_RESTRICTED_CAST_FROM_ASCII
static void handleWindowStateChanged(QWindow *window, Qt::WindowStates newState, int oldState=-1)
bool close()
Close the window.
void requestWindowStates(Qt::WindowStates states) override
QWaylandQtSurface(struct ::zqt_shell_surface_v1 *shell_surface, QWaylandWindow *window)
void setTitle(const QString &title) override
void zqt_shell_surface_v1_set_capabilities(uint32_t capabilities) override
bool resize(QWaylandInputDevice *, Qt::Edges) override
void zqt_shell_surface_v1_configure(uint32_t serial) override
bool move(QWaylandInputDevice *) override
bool requestActivate() override
~QWaylandQtSurface() override
void setWindowGeometry(const QRect &rect) override
void setWindowPosition(const QPoint &position) override
void applyConfigure() override
void propagateSizeHints() override
void zqt_shell_surface_v1_resize(uint32_t serial, int32_t width, int32_t height) override
void zqt_shell_surface_v1_set_position(uint32_t serial, int32_t x, int32_t y) override
void setWindowFlags(Qt::WindowFlags flags) override
QMargins serverSideFrameMargins() const override
void zqt_shell_surface_v1_set_window_state(uint32_t serial, uint32_t state) override
void zqt_shell_surface_v1_set_frame_margins(uint32_t left, uint32_t right, uint32_t top, uint32_t bottom) override
void zqt_shell_surface_v1_close() override
void resizeFromApplyConfigure(const QSize &sizeWithMargins, const QPoint &offset={0, 0})
void repositionFromApplyConfigure(const QPoint &position)
static uint32_t getSerial(QWaylandInputDevice *inputDevice)
void setGeometryFromApplyConfigure(const QPoint &globalPosition, const QSize &sizeWithMargins)
QWaylandWindow * window()
QPlatformWindow * platformWindow()
void applyConfigureWhenPossible()
Combined button and popup list for selecting options.
constexpr const T & qMax(const T &a, const T &b)
GLint GLint GLint GLint GLint x
[0]
GLint GLsizei GLsizei height
GLdouble GLdouble GLdouble GLdouble top
static qreal position(const QQuickItem *item, QQuickAnchors::Anchor anchorLine)