Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qwaylandextendedsurface.cpp
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
5
6#include "qwaylandwindow_p.h"
7
8#include "qwaylanddisplay_p.h"
9
11
12#include <QtGui/QGuiApplication>
13#include <qpa/qplatformnativeinterface.h>
14#include <qpa/qwindowsysteminterface.h>
15
17
18namespace QtWaylandClient {
19
21 : QtWayland::qt_extended_surface(window->display()->windowExtension()->get_extended_surface(window->wlSurface()))
22 , m_window(window)
23{
24}
25
27{
28 qt_extended_surface_destroy(object());
29}
30
32{
33 QByteArray byteValue;
34 QDataStream ds(&byteValue, QIODevice::WriteOnly);
35 ds << value;
36
37 update_generic_property(name, byteValue);
38}
39
41{
42 int32_t wlmask = 0;
44 wlmask |= QT_EXTENDED_SURFACE_ORIENTATION_PRIMARYORIENTATION;
46 wlmask |= QT_EXTENDED_SURFACE_ORIENTATION_PORTRAITORIENTATION;
48 wlmask |= QT_EXTENDED_SURFACE_ORIENTATION_LANDSCAPEORIENTATION;
50 wlmask |= QT_EXTENDED_SURFACE_ORIENTATION_INVERTEDPORTRAITORIENTATION;
52 wlmask |= QT_EXTENDED_SURFACE_ORIENTATION_INVERTEDLANDSCAPEORIENTATION;
53 set_content_orientation_mask(wlmask);
54}
55
57{
58 m_window->window()->setVisibility(static_cast<QWindow::Visibility>(visibility));
59}
60
62{
63 QByteArray data = QByteArray::fromRawData(static_cast<char *>(value->data), value->size);
64
65 QVariant variantValue;
66 QDataStream ds(data);
67 ds >> variantValue;
68
69 m_window->setProperty(name, variantValue);
70}
71
76
77Qt::WindowFlags QWaylandExtendedSurface::setWindowFlags(Qt::WindowFlags flags)
78{
79 uint wlFlags = 0;
80
81 if (flags & Qt::WindowStaysOnTopHint) wlFlags |= QT_EXTENDED_SURFACE_WINDOWFLAG_STAYSONTOP;
82 if (flags & Qt::WindowOverridesSystemGestures) wlFlags |= QT_EXTENDED_SURFACE_WINDOWFLAG_OVERRIDESSYSTEMGESTURES;
83 if (flags & Qt::BypassWindowManagerHint) wlFlags |= QT_EXTENDED_SURFACE_WINDOWFLAG_BYPASSWINDOWMANAGER;
84
85 set_window_flags(wlFlags);
86
88}
89
90}
91
\inmodule QtCore
Definition qbytearray.h:57
static QByteArray fromRawData(const char *data, qsizetype size)
Constructs a QByteArray that uses the first size bytes of the data array.
Definition qbytearray.h:409
\inmodule QtCore\reentrant
Definition qdatastream.h:46
QWindow * window() const
Returns the window which belongs to the QPlatformWindow.
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\inmodule QtCore
Definition qvariant.h:65
static bool handleCloseEvent(QWindow *window)
void setContentOrientationMask(Qt::ScreenOrientations mask)
Qt::WindowFlags setWindowFlags(Qt::WindowFlags flags)
void extended_surface_onscreen_visibility(int32_t visibility) override
void updateGenericProperty(const QString &name, const QVariant &value)
void extended_surface_set_generic_property(const QString &name, wl_array *value) override
void setProperty(const QString &name, const QVariant &value)
struct wl_display * display
Definition linuxdmabuf.h:41
Combined button and popup list for selecting options.
@ InvertedLandscapeOrientation
Definition qnamespace.h:276
@ InvertedPortraitOrientation
Definition qnamespace.h:275
@ LandscapeOrientation
Definition qnamespace.h:274
@ PortraitOrientation
Definition qnamespace.h:273
@ PrimaryOrientation
Definition qnamespace.h:272
@ BypassWindowManagerHint
Definition qnamespace.h:223
@ WindowStaysOnTopHint
Definition qnamespace.h:233
@ WindowOverridesSystemGestures
Definition qnamespace.h:235
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLbitfield flags
GLuint name
GLint GLint GLint GLint GLint GLint GLint GLbitfield mask
unsigned int uint
Definition qtypes.h:34
aWidget window() -> setWindowTitle("New Window Title")
[2]