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
qwaylandxdgshellintegration.cpp
Go to the documentation of this file.
1
// Copyright (C) 2017 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
4
#include "
qwaylandxdgshell_p.h
"
5
#include "
qwaylandxdgshellintegration_p.h
"
6
#include "
qwaylandxdgdecorationv1_p.h
"
7
8
#include <QtWaylandClient/private/qwaylandwindow_p.h>
9
#include <QtWaylandClient/private/qwaylanddisplay_p.h>
10
11
QT_BEGIN_NAMESPACE
12
13
namespace
QtWaylandClient
{
14
15
QWaylandXdgShellIntegration::QWaylandXdgShellIntegration
() :
QWaylandShellIntegrationTemplate
(6)
16
{
17
connect
(
this
, &
QWaylandShellIntegrationTemplate::activeChanged
,
this
, [
this
] {
18
if
(
isActive
()) {
19
mXdgShell.reset(
new
QWaylandXdgShell
(mDisplay,
this
));
20
}
else
{
21
mXdgShell.reset(
nullptr
);
22
destroy();
23
}
24
});
25
}
26
27
QWaylandXdgShellIntegration::~QWaylandXdgShellIntegration
()
28
{
29
if
(
isActive
())
30
destroy();
31
}
32
33
bool
QWaylandXdgShellIntegration::initialize
(
QWaylandDisplay
*
display
)
34
{
35
mDisplay =
display
;
36
return
QWaylandShellIntegrationTemplate::initialize
(
display
);
37
}
38
39
void
QWaylandXdgShellIntegration::xdg_wm_base_ping
(uint32_t serial)
40
{
41
pong(serial);
42
}
43
44
QWaylandShellSurface
*
QWaylandXdgShellIntegration::createShellSurface
(
QWaylandWindow
*
window
)
45
{
46
return
new
QWaylandXdgSurface
(mXdgShell.get(), get_xdg_surface(
window
->wlSurface()),
window
);
47
}
48
49
void
*
QWaylandXdgShellIntegration::nativeResourceForWindow
(
const
QByteArray
&resource,
QWindow
*
window
)
50
{
51
if
(
auto
waylandWindow =
static_cast<
QWaylandWindow
*
>
(
window
->handle())) {
52
if
(
auto
xdgSurface = qobject_cast<QWaylandXdgSurface *>(waylandWindow->shellSurface())) {
53
return
xdgSurface->nativeResource(resource);
54
}
55
}
56
return
nullptr
;
57
}
58
59
}
60
61
QT_END_NAMESPACE
QByteArray
\inmodule QtCore
Definition
qbytearray.h:57
QObject::connect
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
Definition
qobject.cpp:2960
QWaylandClientExtension::initialize
void initialize()
Definition
qwaylandclientextension.cpp:42
QWaylandClientExtension::isActive
bool isActive() const
Definition
qwaylandclientextension.cpp:100
QWaylandClientExtension::activeChanged
void activeChanged()
QWindow
\inmodule QtGui
Definition
qwindow.h:63
QtWaylandClient::QWaylandDisplay
Definition
qwaylanddisplay_p.h:97
QtWaylandClient::QWaylandShellIntegrationTemplate
Definition
qwaylandshellintegration_p.h:59
QtWaylandClient::QWaylandShellSurface
Definition
qwaylandshellsurface_p.h:40
QtWaylandClient::QWaylandWindow
Definition
qwaylandwindow_p.h:66
QtWaylandClient::QWaylandXdgShellIntegration::QWaylandXdgShellIntegration
QWaylandXdgShellIntegration()
Definition
qwaylandxdgshellintegration.cpp:15
QtWaylandClient::QWaylandXdgShellIntegration::nativeResourceForWindow
void * nativeResourceForWindow(const QByteArray &resource, QWindow *window) override
Definition
qwaylandxdgshellintegration.cpp:49
QtWaylandClient::QWaylandXdgShellIntegration::createShellSurface
QWaylandShellSurface * createShellSurface(QWaylandWindow *window) override
Definition
qwaylandxdgshellintegration.cpp:44
QtWaylandClient::QWaylandXdgShellIntegration::xdg_wm_base_ping
void xdg_wm_base_ping(uint32_t serial) override
Definition
qwaylandxdgshellintegration.cpp:39
QtWaylandClient::QWaylandXdgShellIntegration::~QWaylandXdgShellIntegration
~QWaylandXdgShellIntegration() override
Definition
qwaylandxdgshellintegration.cpp:27
QtWaylandClient::QWaylandXdgShell
Definition
qwaylandxdgshell_p.h:157
QtWaylandClient::QWaylandXdgSurface
Definition
qwaylandxdgshell_p.h:46
display
struct wl_display * display
Definition
linuxdmabuf.h:41
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qstandardpaths_haiku.cpp:21
QT_END_NAMESPACE
Definition
qsharedpointer.cpp:1590
QtWaylandClient
Definition
qwaylandclientextension.h:15
qwaylandxdgdecorationv1_p.h
qwaylandxdgshell_p.h
qwaylandxdgshellintegration_p.h
window
aWidget window() -> setWindowTitle("New Window Title")
[2]
qtwayland
src
plugins
shellintegration
xdg-shell
qwaylandxdgshellintegration.cpp
Generated by
1.10.0