Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: I40724946222f7e51b3cf36a2ce1cd60d7801f41a
This commit is contained in:
commit
f2d2a4c3c2
@ -74,7 +74,7 @@ Copyright (c) 2013 BMW Car IT GmbH"
|
|||||||
"Name": "Wayland XDG Shell Protocol",
|
"Name": "Wayland XDG Shell Protocol",
|
||||||
"QDocModule": "qtwaylandcompositor",
|
"QDocModule": "qtwaylandcompositor",
|
||||||
"QtUsage": "Used in the Qt Wayland Compositor, and the Qt Wayland platform plugin.",
|
"QtUsage": "Used in the Qt Wayland Compositor, and the Qt Wayland platform plugin.",
|
||||||
"Files": "xdg-shell-unstable-v5.xml xdg-shell-unstable-v6.xml xdg-shell.xml ../../compositor/extensions/pregenerated/3rdparty/qwayland-server-xdg-shell-unstable-v5.cpp ../../compositor/extensions/pregenerated/3rdparty/qwayland-server-xdg-shell-unstable-v5_p.h ../../compositor/extensions/pregenerated/3rdparty/wayland-xdg-shell-unstable-v5-protocol.c ../../compositor/extensions/pregenerated/3rdparty/wayland-xdg-shell-unstable-v5-server-protocol_p.h",
|
"Files": " xdg-shell-unstable-v5.xml xdg-shell-unstable-v6.xml xdg-shell.xml ../../compositor/extensions/pregenerated/3rdparty/qwayland-server-xdg-shell-unstable-v5.cpp ../../compositor/extensions/pregenerated/3rdparty/qwayland-server-xdg-shell-unstable-v5_p.h ../../compositor/extensions/pregenerated/3rdparty/wayland-xdg-shell-unstable-v5-protocol.c ../../compositor/extensions/pregenerated/3rdparty/wayland-xdg-shell-unstable-v5-server-protocol_p.h ../../plugins/shellintegration/xdg-shell-v5/pregenerated/3rdparty/qwayland-xdg-shell-unstable-v5.cpp ../../plugins/shellintegration/xdg-shell-v5/pregenerated/3rdparty/qwayland-xdg-shell-unstable-v5_p.h ../../plugins/shellintegration/xdg-shell-v5/pregenerated/3rdparty/wayland-xdg-shell-unstable-v5-client-protocol_p.h ../../plugins/shellintegration/xdg-shell-v5/pregenerated/3rdparty/wayland-xdg-shell-unstable-v5-protocol.c",
|
||||||
|
|
||||||
"Description": "The XDG-Shell protocol is an extended way to manage surfaces under Wayland compositors.",
|
"Description": "The XDG-Shell protocol is an extended way to manage surfaces under Wayland compositors.",
|
||||||
"Homepage": "https://wayland.freedesktop.org",
|
"Homepage": "https://wayland.freedesktop.org",
|
||||||
|
@ -101,15 +101,20 @@
|
|||||||
"condition": "features.wayland-client && features.opengl && !features.opengles2 && features.xlib && libs.xcomposite && libs.glx",
|
"condition": "features.wayland-client && features.opengl && !features.opengles2 && features.xlib && libs.xcomposite && libs.glx",
|
||||||
"output": [ "privateFeature" ]
|
"output": [ "privateFeature" ]
|
||||||
},
|
},
|
||||||
"drm-egl-server": {
|
"wayland-drm-egl-server-buffer": {
|
||||||
"label": "DRM EGL",
|
"label": "DRM EGL",
|
||||||
"condition": "features.wayland-client && features.opengl && features.egl && tests.drm-egl-server",
|
"condition": "features.wayland-client && features.opengl && features.egl && tests.drm-egl-server",
|
||||||
"output": [ "privateFeature" ]
|
"output": [ "privateFeature" ]
|
||||||
},
|
},
|
||||||
"libhybris-egl-server": {
|
"wayland-libhybris-egl-server-buffer": {
|
||||||
"label": "libhybris EGL",
|
"label": "libhybris EGL",
|
||||||
"condition": "features.wayland-client && features.opengl && features.egl && tests.libhybris-egl-server",
|
"condition": "features.wayland-client && features.opengl && features.egl && tests.libhybris-egl-server",
|
||||||
"output": [ "privateFeature" ]
|
"output": [ "privateFeature" ]
|
||||||
|
},
|
||||||
|
"wayland-shm-emulation-server-buffer": {
|
||||||
|
"label": "Shm emulation server buffer integration",
|
||||||
|
"condition": "features.wayland-client && features.opengl",
|
||||||
|
"output": [ "privateFeature" ]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -130,8 +135,9 @@
|
|||||||
"wayland-brcm",
|
"wayland-brcm",
|
||||||
"xcomposite-egl",
|
"xcomposite-egl",
|
||||||
"xcomposite-glx",
|
"xcomposite-glx",
|
||||||
"drm-egl-server",
|
"wayland-drm-egl-server-buffer",
|
||||||
"libhybris-egl-server"
|
"wayland-libhybris-egl-server-buffer",
|
||||||
|
"wayland-shm-emulation-server-buffer"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"wayland-client"
|
"wayland-client"
|
||||||
|
@ -9,10 +9,10 @@ qtConfig(xcomposite-egl): \
|
|||||||
SUBDIRS += xcomposite-egl
|
SUBDIRS += xcomposite-egl
|
||||||
qtConfig(xcomposite-glx): \
|
qtConfig(xcomposite-glx): \
|
||||||
SUBDIRS += xcomposite-glx
|
SUBDIRS += xcomposite-glx
|
||||||
qtConfig(drm-egl-server): \
|
|
||||||
SUBDIRS += drm-egl-server
|
|
||||||
qtConfig(libhybris-egl-server): \
|
|
||||||
SUBDIRS += libhybris-egl-server
|
|
||||||
|
|
||||||
### TODO: make shm-emulation configurable
|
qtConfig(wayland-drm-egl-server-buffer): \
|
||||||
SUBDIRS += shm-emulation-server
|
SUBDIRS += drm-egl-server
|
||||||
|
qtConfig(wayland-libhybris-egl-server-buffer): \
|
||||||
|
SUBDIRS += libhybris-egl-server
|
||||||
|
qtConfig(wayland-shm-emulation-server-buffer): \
|
||||||
|
SUBDIRS += shm-emulation-server
|
||||||
|
@ -49,6 +49,10 @@ namespace QtWaylandClient {
|
|||||||
|
|
||||||
bool QWaylandWlShellIntegration::initialize(QWaylandDisplay *display)
|
bool QWaylandWlShellIntegration::initialize(QWaylandDisplay *display)
|
||||||
{
|
{
|
||||||
|
qCWarning(lcQpaWayland) << "\"wl-shell\" is a deprecated shell extension, prefer using"
|
||||||
|
<< "\"xdg-shell-v6\" or \"xdg-shell\" if supported by the compositor"
|
||||||
|
<< "by setting the environment variable QT_WAYLAND_SHELL_INTEGRATION";
|
||||||
|
|
||||||
Q_FOREACH (QWaylandDisplay::RegistryGlobal global, display->globals()) {
|
Q_FOREACH (QWaylandDisplay::RegistryGlobal global, display->globals()) {
|
||||||
if (global.interface == QLatin1String("wl_shell")) {
|
if (global.interface == QLatin1String("wl_shell")) {
|
||||||
m_wlShell = new QtWayland::wl_shell(display->wl_registry(), global.id, 1);
|
m_wlShell = new QtWayland::wl_shell(display->wl_registry(), global.id, 1);
|
||||||
|
@ -0,0 +1,398 @@
|
|||||||
|
// Hand-edited to resolve conflicts with xdg-shell stable
|
||||||
|
/*
|
||||||
|
* Copyright © 2008-2013 Kristian Høgsberg
|
||||||
|
* Copyright © 2013 Rafael Antognolli
|
||||||
|
* Copyright © 2013 Jasper St. Pierre
|
||||||
|
* Copyright © 2010-2013 Intel Corporation
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
* copy of this software and associated documentation files (the "Software"),
|
||||||
|
* to deal in the Software without restriction, including without limitation
|
||||||
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
* and/or sell copies of the Software, and to permit persons to whom the
|
||||||
|
* Software is furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice (including the next
|
||||||
|
* paragraph) shall be included in all copies or substantial portions of the
|
||||||
|
* Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
|
* DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
#include "qwayland-xdg-shell-unstable-v5_p.h"
|
||||||
|
|
||||||
|
QT_BEGIN_NAMESPACE
|
||||||
|
QT_WARNING_PUSH
|
||||||
|
QT_WARNING_DISABLE_GCC("-Wmissing-field-initializers")
|
||||||
|
|
||||||
|
namespace QtWayland {
|
||||||
|
xdg_shell_v5::xdg_shell_v5(struct ::wl_registry *registry, int id, int version)
|
||||||
|
{
|
||||||
|
init(registry, id, version);
|
||||||
|
}
|
||||||
|
|
||||||
|
xdg_shell_v5::xdg_shell_v5(struct ::xdg_shell_v5 *obj)
|
||||||
|
: m_xdg_shell(obj)
|
||||||
|
{
|
||||||
|
init_listener();
|
||||||
|
}
|
||||||
|
|
||||||
|
xdg_shell_v5::xdg_shell_v5()
|
||||||
|
: m_xdg_shell(nullptr)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
xdg_shell_v5::~xdg_shell_v5()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_shell_v5::init(struct ::wl_registry *registry, int id, int version)
|
||||||
|
{
|
||||||
|
m_xdg_shell = static_cast<struct ::xdg_shell_v5 *>(wl_registry_bind(registry, id, &xdg_shell_v5_interface, version));
|
||||||
|
init_listener();
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_shell_v5::init(struct ::xdg_shell_v5 *obj)
|
||||||
|
{
|
||||||
|
m_xdg_shell = obj;
|
||||||
|
init_listener();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool xdg_shell_v5::isInitialized() const
|
||||||
|
{
|
||||||
|
return m_xdg_shell != nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
const struct wl_interface *xdg_shell_v5::interface()
|
||||||
|
{
|
||||||
|
return &::xdg_shell_v5_interface;
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_shell_v5::destroy()
|
||||||
|
{
|
||||||
|
xdg_shell_destroy(
|
||||||
|
m_xdg_shell);
|
||||||
|
m_xdg_shell = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_shell_v5::use_unstable_version(int32_t version)
|
||||||
|
{
|
||||||
|
xdg_shell_use_unstable_version(
|
||||||
|
m_xdg_shell,
|
||||||
|
version);
|
||||||
|
}
|
||||||
|
|
||||||
|
struct ::xdg_surface_v5 *xdg_shell_v5::get_xdg_surface(struct ::wl_surface *surface)
|
||||||
|
{
|
||||||
|
return xdg_shell_get_xdg_surface(
|
||||||
|
m_xdg_shell,
|
||||||
|
surface);
|
||||||
|
}
|
||||||
|
|
||||||
|
struct ::xdg_popup_v5 *xdg_shell_v5::get_xdg_popup(struct ::wl_surface *surface, struct ::wl_surface *parent, struct ::wl_seat *seat, uint32_t serial, int32_t x, int32_t y)
|
||||||
|
{
|
||||||
|
return xdg_shell_get_xdg_popup(
|
||||||
|
m_xdg_shell,
|
||||||
|
surface,
|
||||||
|
parent,
|
||||||
|
seat,
|
||||||
|
serial,
|
||||||
|
x,
|
||||||
|
y);
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_shell_v5::pong(uint32_t serial)
|
||||||
|
{
|
||||||
|
xdg_shell_pong(
|
||||||
|
m_xdg_shell,
|
||||||
|
serial);
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_shell_v5::xdg_shell_ping(uint32_t )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_shell_v5::handle_ping(
|
||||||
|
void *data,
|
||||||
|
struct ::xdg_shell_v5 *object,
|
||||||
|
uint32_t serial)
|
||||||
|
{
|
||||||
|
Q_UNUSED(object);
|
||||||
|
static_cast<xdg_shell_v5 *>(data)->xdg_shell_ping(
|
||||||
|
serial);
|
||||||
|
}
|
||||||
|
|
||||||
|
const struct xdg_shell_listener xdg_shell_v5::m_xdg_shell_listener = {
|
||||||
|
xdg_shell_v5::handle_ping
|
||||||
|
};
|
||||||
|
|
||||||
|
void xdg_shell_v5::init_listener()
|
||||||
|
{
|
||||||
|
xdg_shell_add_listener(m_xdg_shell, &m_xdg_shell_listener, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
xdg_surface_v5::xdg_surface_v5(struct ::wl_registry *registry, int id, int version)
|
||||||
|
{
|
||||||
|
init(registry, id, version);
|
||||||
|
}
|
||||||
|
|
||||||
|
xdg_surface_v5::xdg_surface_v5(struct ::xdg_surface_v5 *obj)
|
||||||
|
: m_xdg_surface(obj)
|
||||||
|
{
|
||||||
|
init_listener();
|
||||||
|
}
|
||||||
|
|
||||||
|
xdg_surface_v5::xdg_surface_v5()
|
||||||
|
: m_xdg_surface(nullptr)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
xdg_surface_v5::~xdg_surface_v5()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_surface_v5::init(struct ::wl_registry *registry, int id, int version)
|
||||||
|
{
|
||||||
|
m_xdg_surface = static_cast<struct ::xdg_surface_v5 *>(wl_registry_bind(registry, id, &xdg_surface_v5_interface, version));
|
||||||
|
init_listener();
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_surface_v5::init(struct ::xdg_surface_v5 *obj)
|
||||||
|
{
|
||||||
|
m_xdg_surface = obj;
|
||||||
|
init_listener();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool xdg_surface_v5::isInitialized() const
|
||||||
|
{
|
||||||
|
return m_xdg_surface != nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
const struct wl_interface *xdg_surface_v5::interface()
|
||||||
|
{
|
||||||
|
return &::xdg_surface_v5_interface;
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_surface_v5::destroy()
|
||||||
|
{
|
||||||
|
xdg_surface_destroy(
|
||||||
|
m_xdg_surface);
|
||||||
|
m_xdg_surface = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_surface_v5::set_parent(struct ::xdg_surface_v5 *parent)
|
||||||
|
{
|
||||||
|
xdg_surface_set_parent(
|
||||||
|
m_xdg_surface,
|
||||||
|
parent);
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_surface_v5::set_title(const QString &title)
|
||||||
|
{
|
||||||
|
xdg_surface_set_title(
|
||||||
|
m_xdg_surface,
|
||||||
|
title.toUtf8().constData());
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_surface_v5::set_app_id(const QString &app_id)
|
||||||
|
{
|
||||||
|
xdg_surface_set_app_id(
|
||||||
|
m_xdg_surface,
|
||||||
|
app_id.toUtf8().constData());
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_surface_v5::show_window_menu(struct ::wl_seat *seat, uint32_t serial, int32_t x, int32_t y)
|
||||||
|
{
|
||||||
|
xdg_surface_show_window_menu(
|
||||||
|
m_xdg_surface,
|
||||||
|
seat,
|
||||||
|
serial,
|
||||||
|
x,
|
||||||
|
y);
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_surface_v5::move(struct ::wl_seat *seat, uint32_t serial)
|
||||||
|
{
|
||||||
|
xdg_surface_move(
|
||||||
|
m_xdg_surface,
|
||||||
|
seat,
|
||||||
|
serial);
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_surface_v5::resize(struct ::wl_seat *seat, uint32_t serial, uint32_t edges)
|
||||||
|
{
|
||||||
|
xdg_surface_resize(
|
||||||
|
m_xdg_surface,
|
||||||
|
seat,
|
||||||
|
serial,
|
||||||
|
edges);
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_surface_v5::ack_configure(uint32_t serial)
|
||||||
|
{
|
||||||
|
xdg_surface_ack_configure(
|
||||||
|
m_xdg_surface,
|
||||||
|
serial);
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_surface_v5::set_window_geometry(int32_t x, int32_t y, int32_t width, int32_t height)
|
||||||
|
{
|
||||||
|
xdg_surface_set_window_geometry(
|
||||||
|
m_xdg_surface,
|
||||||
|
x,
|
||||||
|
y,
|
||||||
|
width,
|
||||||
|
height);
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_surface_v5::set_maximized()
|
||||||
|
{
|
||||||
|
xdg_surface_set_maximized(
|
||||||
|
m_xdg_surface);
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_surface_v5::unset_maximized()
|
||||||
|
{
|
||||||
|
xdg_surface_unset_maximized(
|
||||||
|
m_xdg_surface);
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_surface_v5::set_fullscreen(struct ::wl_output *output)
|
||||||
|
{
|
||||||
|
xdg_surface_set_fullscreen(
|
||||||
|
m_xdg_surface,
|
||||||
|
output);
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_surface_v5::unset_fullscreen()
|
||||||
|
{
|
||||||
|
xdg_surface_unset_fullscreen(
|
||||||
|
m_xdg_surface);
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_surface_v5::set_minimized()
|
||||||
|
{
|
||||||
|
xdg_surface_set_minimized(
|
||||||
|
m_xdg_surface);
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_surface_v5::xdg_surface_configure(int32_t , int32_t , wl_array *, uint32_t )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_surface_v5::handle_configure(
|
||||||
|
void *data,
|
||||||
|
struct ::xdg_surface_v5 *object,
|
||||||
|
int32_t width,
|
||||||
|
int32_t height,
|
||||||
|
wl_array *states,
|
||||||
|
uint32_t serial)
|
||||||
|
{
|
||||||
|
Q_UNUSED(object);
|
||||||
|
static_cast<xdg_surface_v5 *>(data)->xdg_surface_configure(
|
||||||
|
width,
|
||||||
|
height,
|
||||||
|
states,
|
||||||
|
serial);
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_surface_v5::xdg_surface_close()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_surface_v5::handle_close(
|
||||||
|
void *data,
|
||||||
|
struct ::xdg_surface_v5 *object)
|
||||||
|
{
|
||||||
|
Q_UNUSED(object);
|
||||||
|
static_cast<xdg_surface_v5 *>(data)->xdg_surface_close();
|
||||||
|
}
|
||||||
|
|
||||||
|
const struct xdg_surface_listener xdg_surface_v5::m_xdg_surface_listener = {
|
||||||
|
xdg_surface_v5::handle_configure,
|
||||||
|
xdg_surface_v5::handle_close
|
||||||
|
};
|
||||||
|
|
||||||
|
void xdg_surface_v5::init_listener()
|
||||||
|
{
|
||||||
|
xdg_surface_add_listener(m_xdg_surface, &m_xdg_surface_listener, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
xdg_popup_v5::xdg_popup_v5(struct ::wl_registry *registry, int id, int version)
|
||||||
|
{
|
||||||
|
init(registry, id, version);
|
||||||
|
}
|
||||||
|
|
||||||
|
xdg_popup_v5::xdg_popup_v5(struct ::xdg_popup_v5 *obj)
|
||||||
|
: m_xdg_popup(obj)
|
||||||
|
{
|
||||||
|
init_listener();
|
||||||
|
}
|
||||||
|
|
||||||
|
xdg_popup_v5::xdg_popup_v5()
|
||||||
|
: m_xdg_popup(nullptr)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
xdg_popup_v5::~xdg_popup_v5()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_popup_v5::init(struct ::wl_registry *registry, int id, int version)
|
||||||
|
{
|
||||||
|
m_xdg_popup = static_cast<struct ::xdg_popup_v5 *>(wl_registry_bind(registry, id, &xdg_popup_v5_interface, version));
|
||||||
|
init_listener();
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_popup_v5::init(struct ::xdg_popup_v5 *obj)
|
||||||
|
{
|
||||||
|
m_xdg_popup = obj;
|
||||||
|
init_listener();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool xdg_popup_v5::isInitialized() const
|
||||||
|
{
|
||||||
|
return m_xdg_popup != nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
const struct wl_interface *xdg_popup_v5::interface()
|
||||||
|
{
|
||||||
|
return &::xdg_popup_v5_interface;
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_popup_v5::destroy()
|
||||||
|
{
|
||||||
|
xdg_popup_destroy(
|
||||||
|
m_xdg_popup);
|
||||||
|
m_xdg_popup = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_popup_v5::xdg_popup_popup_done()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void xdg_popup_v5::handle_popup_done(
|
||||||
|
void *data,
|
||||||
|
struct ::xdg_popup_v5 *object)
|
||||||
|
{
|
||||||
|
Q_UNUSED(object);
|
||||||
|
static_cast<xdg_popup_v5 *>(data)->xdg_popup_popup_done();
|
||||||
|
}
|
||||||
|
|
||||||
|
const struct xdg_popup_listener xdg_popup_v5::m_xdg_popup_listener = {
|
||||||
|
xdg_popup_v5::handle_popup_done
|
||||||
|
};
|
||||||
|
|
||||||
|
void xdg_popup_v5::init_listener()
|
||||||
|
{
|
||||||
|
xdg_popup_add_listener(m_xdg_popup, &m_xdg_popup_listener, this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QT_WARNING_POP
|
||||||
|
QT_END_NAMESPACE
|
@ -0,0 +1,198 @@
|
|||||||
|
// Hand-edited to resolve conflicts with xdg-shell stable
|
||||||
|
/*
|
||||||
|
* Copyright © 2008-2013 Kristian Høgsberg
|
||||||
|
* Copyright © 2013 Rafael Antognolli
|
||||||
|
* Copyright © 2013 Jasper St. Pierre
|
||||||
|
* Copyright © 2010-2013 Intel Corporation
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
* copy of this software and associated documentation files (the "Software"),
|
||||||
|
* to deal in the Software without restriction, including without limitation
|
||||||
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
* and/or sell copies of the Software, and to permit persons to whom the
|
||||||
|
* Software is furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice (including the next
|
||||||
|
* paragraph) shall be included in all copies or substantial portions of the
|
||||||
|
* Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
|
* DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
#ifndef QT_WAYLAND_XDG_SHELL_UNSTABLE_V5
|
||||||
|
#define QT_WAYLAND_XDG_SHELL_UNSTABLE_V5
|
||||||
|
|
||||||
|
#include "wayland-xdg-shell-unstable-v5-client-protocol_p.h"
|
||||||
|
#include <QByteArray>
|
||||||
|
#include <QString>
|
||||||
|
|
||||||
|
QT_BEGIN_NAMESPACE
|
||||||
|
QT_WARNING_PUSH
|
||||||
|
QT_WARNING_DISABLE_GCC("-Wmissing-field-initializers")
|
||||||
|
|
||||||
|
namespace QtWayland {
|
||||||
|
class xdg_shell_v5
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
xdg_shell_v5(struct ::wl_registry *registry, int id, int version);
|
||||||
|
xdg_shell_v5(struct ::xdg_shell_v5 *object);
|
||||||
|
xdg_shell_v5();
|
||||||
|
|
||||||
|
virtual ~xdg_shell_v5();
|
||||||
|
|
||||||
|
void init(struct ::wl_registry *registry, int id, int version);
|
||||||
|
void init(struct ::xdg_shell_v5 *object);
|
||||||
|
|
||||||
|
struct ::xdg_shell_v5 *object() { return m_xdg_shell; }
|
||||||
|
const struct ::xdg_shell_v5 *object() const { return m_xdg_shell; }
|
||||||
|
|
||||||
|
bool isInitialized() const;
|
||||||
|
|
||||||
|
static const struct ::wl_interface *interface();
|
||||||
|
|
||||||
|
enum version {
|
||||||
|
version_current = 5 // Always the latest version
|
||||||
|
};
|
||||||
|
|
||||||
|
enum error {
|
||||||
|
error_role = 0, // given wl_surface has another role
|
||||||
|
error_defunct_surfaces = 1, // xdg_shell was destroyed before children
|
||||||
|
error_not_the_topmost_popup = 2, // the client tried to map or destroy a non-topmost popup
|
||||||
|
error_invalid_popup_parent = 3 // the client specified an invalid popup parent surface
|
||||||
|
};
|
||||||
|
|
||||||
|
void destroy();
|
||||||
|
void use_unstable_version(int32_t version);
|
||||||
|
struct ::xdg_surface_v5 *get_xdg_surface(struct ::wl_surface *surface);
|
||||||
|
struct ::xdg_popup_v5 *get_xdg_popup(struct ::wl_surface *surface, struct ::wl_surface *parent, struct ::wl_seat *seat, uint32_t serial, int32_t x, int32_t y);
|
||||||
|
void pong(uint32_t serial);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void xdg_shell_ping(uint32_t serial);
|
||||||
|
|
||||||
|
private:
|
||||||
|
void init_listener();
|
||||||
|
static const struct xdg_shell_listener m_xdg_shell_listener;
|
||||||
|
static void handle_ping(
|
||||||
|
void *data,
|
||||||
|
struct ::xdg_shell_v5 *object,
|
||||||
|
uint32_t serial);
|
||||||
|
struct ::xdg_shell_v5 *m_xdg_shell;
|
||||||
|
};
|
||||||
|
|
||||||
|
class xdg_surface_v5
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
xdg_surface_v5(struct ::wl_registry *registry, int id, int version);
|
||||||
|
xdg_surface_v5(struct ::xdg_surface_v5 *object);
|
||||||
|
xdg_surface_v5();
|
||||||
|
|
||||||
|
virtual ~xdg_surface_v5();
|
||||||
|
|
||||||
|
void init(struct ::wl_registry *registry, int id, int version);
|
||||||
|
void init(struct ::xdg_surface_v5 *object);
|
||||||
|
|
||||||
|
struct ::xdg_surface_v5 *object() { return m_xdg_surface; }
|
||||||
|
const struct ::xdg_surface_v5 *object() const { return m_xdg_surface; }
|
||||||
|
|
||||||
|
bool isInitialized() const;
|
||||||
|
|
||||||
|
static const struct ::wl_interface *interface();
|
||||||
|
|
||||||
|
enum resize_edge {
|
||||||
|
resize_edge_none = 0,
|
||||||
|
resize_edge_top = 1,
|
||||||
|
resize_edge_bottom = 2,
|
||||||
|
resize_edge_left = 4,
|
||||||
|
resize_edge_top_left = 5,
|
||||||
|
resize_edge_bottom_left = 6,
|
||||||
|
resize_edge_right = 8,
|
||||||
|
resize_edge_top_right = 9,
|
||||||
|
resize_edge_bottom_right = 10
|
||||||
|
};
|
||||||
|
|
||||||
|
enum state {
|
||||||
|
state_maximized = 1, // the surface is maximized
|
||||||
|
state_fullscreen = 2, // the surface is fullscreen
|
||||||
|
state_resizing = 3,
|
||||||
|
state_activated = 4
|
||||||
|
};
|
||||||
|
|
||||||
|
void destroy();
|
||||||
|
void set_parent(struct ::xdg_surface_v5 *parent);
|
||||||
|
void set_title(const QString &title);
|
||||||
|
void set_app_id(const QString &app_id);
|
||||||
|
void show_window_menu(struct ::wl_seat *seat, uint32_t serial, int32_t x, int32_t y);
|
||||||
|
void move(struct ::wl_seat *seat, uint32_t serial);
|
||||||
|
void resize(struct ::wl_seat *seat, uint32_t serial, uint32_t edges);
|
||||||
|
void ack_configure(uint32_t serial);
|
||||||
|
void set_window_geometry(int32_t x, int32_t y, int32_t width, int32_t height);
|
||||||
|
void set_maximized();
|
||||||
|
void unset_maximized();
|
||||||
|
void set_fullscreen(struct ::wl_output *output);
|
||||||
|
void unset_fullscreen();
|
||||||
|
void set_minimized();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void xdg_surface_configure(int32_t width, int32_t height, wl_array *states, uint32_t serial);
|
||||||
|
virtual void xdg_surface_close();
|
||||||
|
|
||||||
|
private:
|
||||||
|
void init_listener();
|
||||||
|
static const struct xdg_surface_listener m_xdg_surface_listener;
|
||||||
|
static void handle_configure(
|
||||||
|
void *data,
|
||||||
|
struct ::xdg_surface_v5 *object,
|
||||||
|
int32_t width,
|
||||||
|
int32_t height,
|
||||||
|
wl_array *states,
|
||||||
|
uint32_t serial);
|
||||||
|
static void handle_close(
|
||||||
|
void *data,
|
||||||
|
struct ::xdg_surface_v5 *object);
|
||||||
|
struct ::xdg_surface_v5 *m_xdg_surface;
|
||||||
|
};
|
||||||
|
|
||||||
|
class xdg_popup_v5
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
xdg_popup_v5(struct ::wl_registry *registry, int id, int version);
|
||||||
|
xdg_popup_v5(struct ::xdg_popup_v5 *object);
|
||||||
|
xdg_popup_v5();
|
||||||
|
|
||||||
|
virtual ~xdg_popup_v5();
|
||||||
|
|
||||||
|
void init(struct ::wl_registry *registry, int id, int version);
|
||||||
|
void init(struct ::xdg_popup_v5 *object);
|
||||||
|
|
||||||
|
struct ::xdg_popup_v5 *object() { return m_xdg_popup; }
|
||||||
|
const struct ::xdg_popup_v5 *object() const { return m_xdg_popup; }
|
||||||
|
|
||||||
|
bool isInitialized() const;
|
||||||
|
|
||||||
|
static const struct ::wl_interface *interface();
|
||||||
|
|
||||||
|
void destroy();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void xdg_popup_popup_done();
|
||||||
|
|
||||||
|
private:
|
||||||
|
void init_listener();
|
||||||
|
static const struct xdg_popup_listener m_xdg_popup_listener;
|
||||||
|
static void handle_popup_done(
|
||||||
|
void *data,
|
||||||
|
struct ::xdg_popup_v5 *object);
|
||||||
|
struct ::xdg_popup_v5 *m_xdg_popup;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
QT_WARNING_POP
|
||||||
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
|
#endif
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,126 @@
|
|||||||
|
/* Generated by wayland-scanner 1.13.0 */
|
||||||
|
// Hand-edited to resolve conflicts with xdg-shell stable
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright © 2008-2013 Kristian Høgsberg
|
||||||
|
* Copyright © 2013 Rafael Antognolli
|
||||||
|
* Copyright © 2013 Jasper St. Pierre
|
||||||
|
* Copyright © 2010-2013 Intel Corporation
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
* copy of this software and associated documentation files (the "Software"),
|
||||||
|
* to deal in the Software without restriction, including without limitation
|
||||||
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
* and/or sell copies of the Software, and to permit persons to whom the
|
||||||
|
* Software is furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice (including the next
|
||||||
|
* paragraph) shall be included in all copies or substantial portions of the
|
||||||
|
* Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
|
* DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include "wayland-util.h"
|
||||||
|
|
||||||
|
extern const struct wl_interface wl_output_interface;
|
||||||
|
extern const struct wl_interface wl_seat_interface;
|
||||||
|
extern const struct wl_interface wl_surface_interface;
|
||||||
|
extern const struct wl_interface xdg_popup_v5_interface;
|
||||||
|
extern const struct wl_interface xdg_surface_v5_interface;
|
||||||
|
|
||||||
|
static const struct wl_interface *types[] = {
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
&xdg_surface_v5_interface,
|
||||||
|
&wl_surface_interface,
|
||||||
|
&xdg_popup_v5_interface,
|
||||||
|
&wl_surface_interface,
|
||||||
|
&wl_surface_interface,
|
||||||
|
&wl_seat_interface,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
&xdg_surface_v5_interface,
|
||||||
|
&wl_seat_interface,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
&wl_seat_interface,
|
||||||
|
NULL,
|
||||||
|
&wl_seat_interface,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
&wl_output_interface,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct wl_message xdg_shell_requests[] = {
|
||||||
|
{ "destroy", "", types + 0 },
|
||||||
|
{ "use_unstable_version", "i", types + 0 },
|
||||||
|
{ "get_xdg_surface", "no", types + 4 },
|
||||||
|
{ "get_xdg_popup", "nooouii", types + 6 },
|
||||||
|
{ "pong", "u", types + 0 },
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct wl_message xdg_shell_events[] = {
|
||||||
|
{ "ping", "u", types + 0 },
|
||||||
|
};
|
||||||
|
|
||||||
|
WL_EXPORT const struct wl_interface xdg_shell_v5_interface = {
|
||||||
|
"xdg_shell", 1,
|
||||||
|
5, xdg_shell_requests,
|
||||||
|
1, xdg_shell_events,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct wl_message xdg_surface_requests[] = {
|
||||||
|
{ "destroy", "", types + 0 },
|
||||||
|
{ "set_parent", "?o", types + 13 },
|
||||||
|
{ "set_title", "s", types + 0 },
|
||||||
|
{ "set_app_id", "s", types + 0 },
|
||||||
|
{ "show_window_menu", "ouii", types + 14 },
|
||||||
|
{ "move", "ou", types + 18 },
|
||||||
|
{ "resize", "ouu", types + 20 },
|
||||||
|
{ "ack_configure", "u", types + 0 },
|
||||||
|
{ "set_window_geometry", "iiii", types + 0 },
|
||||||
|
{ "set_maximized", "", types + 0 },
|
||||||
|
{ "unset_maximized", "", types + 0 },
|
||||||
|
{ "set_fullscreen", "?o", types + 23 },
|
||||||
|
{ "unset_fullscreen", "", types + 0 },
|
||||||
|
{ "set_minimized", "", types + 0 },
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct wl_message xdg_surface_events[] = {
|
||||||
|
{ "configure", "iiau", types + 0 },
|
||||||
|
{ "close", "", types + 0 },
|
||||||
|
};
|
||||||
|
|
||||||
|
WL_EXPORT const struct wl_interface xdg_surface_v5_interface = {
|
||||||
|
"xdg_surface", 1,
|
||||||
|
14, xdg_surface_requests,
|
||||||
|
2, xdg_surface_events,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct wl_message xdg_popup_requests[] = {
|
||||||
|
{ "destroy", "", types + 0 },
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct wl_message xdg_popup_events[] = {
|
||||||
|
{ "popup_done", "", types + 0 },
|
||||||
|
};
|
||||||
|
|
||||||
|
WL_EXPORT const struct wl_interface xdg_popup_v5_interface = {
|
||||||
|
"xdg_popup", 1,
|
||||||
|
1, xdg_popup_requests,
|
||||||
|
1, xdg_popup_events,
|
||||||
|
};
|
||||||
|
|
@ -0,0 +1,12 @@
|
|||||||
|
# Putting pregenerated files in a 3rdparty directory to avoid
|
||||||
|
# qtqa's license checking failing.
|
||||||
|
|
||||||
|
HEADERS += \
|
||||||
|
$$PWD/3rdparty/qwayland-xdg-shell-unstable-v5_p.h \
|
||||||
|
$$PWD/3rdparty/wayland-xdg-shell-unstable-v5-client-protocol_p.h
|
||||||
|
|
||||||
|
SOURCES += \
|
||||||
|
$$PWD/3rdparty/qwayland-xdg-shell-unstable-v5.cpp \
|
||||||
|
$$PWD/3rdparty/wayland-xdg-shell-unstable-v5-protocol.c
|
||||||
|
|
||||||
|
INCLUDEPATH += $$PWD/3rdparty
|
@ -47,9 +47,9 @@ QT_BEGIN_NAMESPACE
|
|||||||
|
|
||||||
namespace QtWaylandClient {
|
namespace QtWaylandClient {
|
||||||
|
|
||||||
QWaylandXdgPopupV5::QWaylandXdgPopupV5(struct ::xdg_popup *popup, QWaylandWindow *window)
|
QWaylandXdgPopupV5::QWaylandXdgPopupV5(struct ::xdg_popup_v5 *popup, QWaylandWindow *window)
|
||||||
: QWaylandShellSurface(window)
|
: QWaylandShellSurface(window)
|
||||||
, QtWayland::xdg_popup(popup)
|
, QtWayland::xdg_popup_v5(popup)
|
||||||
, m_window(window)
|
, m_window(window)
|
||||||
{
|
{
|
||||||
if (window->display()->windowExtension())
|
if (window->display()->windowExtension())
|
||||||
|
@ -51,7 +51,7 @@
|
|||||||
// We mean it.
|
// We mean it.
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "qwayland-xdg-shell-unstable-v5.h"
|
#include "qwayland-xdg-shell-unstable-v5_p.h"
|
||||||
|
|
||||||
#include <wayland-client.h>
|
#include <wayland-client.h>
|
||||||
|
|
||||||
@ -68,11 +68,11 @@ class QWaylandWindow;
|
|||||||
class QWaylandExtendedSurface;
|
class QWaylandExtendedSurface;
|
||||||
|
|
||||||
class Q_WAYLAND_CLIENT_EXPORT QWaylandXdgPopupV5 : public QWaylandShellSurface
|
class Q_WAYLAND_CLIENT_EXPORT QWaylandXdgPopupV5 : public QWaylandShellSurface
|
||||||
, public QtWayland::xdg_popup
|
, public QtWayland::xdg_popup_v5
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
QWaylandXdgPopupV5(struct ::xdg_popup *popup, QWaylandWindow *window);
|
QWaylandXdgPopupV5(struct ::xdg_popup_v5 *popup, QWaylandWindow *window);
|
||||||
~QWaylandXdgPopupV5() override;
|
~QWaylandXdgPopupV5() override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -52,15 +52,10 @@ QT_BEGIN_NAMESPACE
|
|||||||
|
|
||||||
namespace QtWaylandClient {
|
namespace QtWaylandClient {
|
||||||
|
|
||||||
QWaylandXdgShellV5::QWaylandXdgShellV5(struct ::xdg_shell *shell)
|
|
||||||
: QtWayland::xdg_shell(shell)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
QWaylandXdgShellV5::QWaylandXdgShellV5(struct ::wl_registry *registry, uint32_t id)
|
QWaylandXdgShellV5::QWaylandXdgShellV5(struct ::wl_registry *registry, uint32_t id)
|
||||||
: QtWayland::xdg_shell(registry, id, 1)
|
: QtWayland::xdg_shell_v5(registry, id, 1)
|
||||||
{
|
{
|
||||||
use_unstable_version(QtWayland::xdg_shell::version_current);
|
use_unstable_version(QtWayland::xdg_shell_v5::version_current);
|
||||||
}
|
}
|
||||||
|
|
||||||
QWaylandXdgShellV5::~QWaylandXdgShellV5()
|
QWaylandXdgShellV5::~QWaylandXdgShellV5()
|
||||||
|
@ -51,7 +51,7 @@
|
|||||||
// We mean it.
|
// We mean it.
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "qwayland-xdg-shell-unstable-v5.h"
|
#include "qwayland-xdg-shell-unstable-v5_p.h"
|
||||||
|
|
||||||
#include <QtCore/QSize>
|
#include <QtCore/QSize>
|
||||||
#include <QtCore/QVector>
|
#include <QtCore/QVector>
|
||||||
@ -72,10 +72,9 @@ class QWaylandInputDevice;
|
|||||||
class QWaylandXdgSurfaceV5;
|
class QWaylandXdgSurfaceV5;
|
||||||
class QWaylandXdgPopupV5;
|
class QWaylandXdgPopupV5;
|
||||||
|
|
||||||
class Q_WAYLAND_CLIENT_EXPORT QWaylandXdgShellV5 : public QtWayland::xdg_shell
|
class Q_WAYLAND_CLIENT_EXPORT QWaylandXdgShellV5 : public QtWayland::xdg_shell_v5
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QWaylandXdgShellV5(struct ::xdg_shell *shell);
|
|
||||||
QWaylandXdgShellV5(struct ::wl_registry *registry, uint32_t id);
|
QWaylandXdgShellV5(struct ::wl_registry *registry, uint32_t id);
|
||||||
~QWaylandXdgShellV5() override;
|
~QWaylandXdgShellV5() override;
|
||||||
|
|
||||||
|
@ -51,6 +51,10 @@ namespace QtWaylandClient {
|
|||||||
|
|
||||||
bool QWaylandXdgShellV5Integration::initialize(QWaylandDisplay *display)
|
bool QWaylandXdgShellV5Integration::initialize(QWaylandDisplay *display)
|
||||||
{
|
{
|
||||||
|
qCWarning(lcQpaWayland) << "\"xdg-shell-v5\" is a deprecated shell extension, prefer using"
|
||||||
|
<< "\"xdg-shell-v6\" or \"xdg-shell\" if supported by the compositor"
|
||||||
|
<< "by setting the environment variable QT_WAYLAND_SHELL_INTEGRATION";
|
||||||
|
|
||||||
Q_FOREACH (QWaylandDisplay::RegistryGlobal global, display->globals()) {
|
Q_FOREACH (QWaylandDisplay::RegistryGlobal global, display->globals()) {
|
||||||
if (global.interface == QLatin1String("xdg_shell")) {
|
if (global.interface == QLatin1String("xdg_shell")) {
|
||||||
m_xdgShell.reset(new QWaylandXdgShellV5(display->wl_registry(), global.id));
|
m_xdgShell.reset(new QWaylandXdgShellV5(display->wl_registry(), global.id));
|
||||||
|
@ -54,7 +54,7 @@ namespace QtWaylandClient {
|
|||||||
|
|
||||||
QWaylandXdgSurfaceV5::QWaylandXdgSurfaceV5(QWaylandXdgShellV5 *shell, QWaylandWindow *window)
|
QWaylandXdgSurfaceV5::QWaylandXdgSurfaceV5(QWaylandXdgShellV5 *shell, QWaylandWindow *window)
|
||||||
: QWaylandShellSurface(window)
|
: QWaylandShellSurface(window)
|
||||||
, QtWayland::xdg_surface(shell->get_xdg_surface(window->object()))
|
, QtWayland::xdg_surface_v5(shell->get_xdg_surface(window->object()))
|
||||||
, m_window(window)
|
, m_window(window)
|
||||||
, m_shell(shell)
|
, m_shell(shell)
|
||||||
{
|
{
|
||||||
@ -105,12 +105,12 @@ void QWaylandXdgSurfaceV5::updateTransientParent(QWaylandWindow *parent)
|
|||||||
|
|
||||||
void QWaylandXdgSurfaceV5::setTitle(const QString & title)
|
void QWaylandXdgSurfaceV5::setTitle(const QString & title)
|
||||||
{
|
{
|
||||||
return QtWayland::xdg_surface::set_title(title);
|
return QtWayland::xdg_surface_v5::set_title(title);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QWaylandXdgSurfaceV5::setAppId(const QString & appId)
|
void QWaylandXdgSurfaceV5::setAppId(const QString & appId)
|
||||||
{
|
{
|
||||||
return QtWayland::xdg_surface::set_app_id(appId);
|
return QtWayland::xdg_surface_v5::set_app_id(appId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QWaylandXdgSurfaceV5::raise()
|
void QWaylandXdgSurfaceV5::raise()
|
||||||
|
@ -51,7 +51,7 @@
|
|||||||
// We mean it.
|
// We mean it.
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "qwayland-xdg-shell-unstable-v5.h"
|
#include "qwayland-xdg-shell-unstable-v5_p.h"
|
||||||
|
|
||||||
#include <QtWaylandClient/qtwaylandclientglobal.h>
|
#include <QtWaylandClient/qtwaylandclientglobal.h>
|
||||||
#include <QtWaylandClient/private/qwaylandshellsurface_p.h>
|
#include <QtWaylandClient/private/qwaylandshellsurface_p.h>
|
||||||
@ -73,19 +73,19 @@ class QWaylandExtendedSurface;
|
|||||||
class QWaylandXdgShellV5;
|
class QWaylandXdgShellV5;
|
||||||
|
|
||||||
class Q_WAYLAND_CLIENT_EXPORT QWaylandXdgSurfaceV5 : public QWaylandShellSurface
|
class Q_WAYLAND_CLIENT_EXPORT QWaylandXdgSurfaceV5 : public QWaylandShellSurface
|
||||||
, public QtWayland::xdg_surface
|
, public QtWayland::xdg_surface_v5
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
QWaylandXdgSurfaceV5(QWaylandXdgShellV5 *shell, QWaylandWindow *window);
|
QWaylandXdgSurfaceV5(QWaylandXdgShellV5 *shell, QWaylandWindow *window);
|
||||||
~QWaylandXdgSurfaceV5() override;
|
~QWaylandXdgSurfaceV5() override;
|
||||||
|
|
||||||
using QtWayland::xdg_surface::resize;
|
using QtWayland::xdg_surface_v5::resize;
|
||||||
void resize(QWaylandInputDevice *inputDevice, enum resize_edge edges);
|
void resize(QWaylandInputDevice *inputDevice, enum resize_edge edges);
|
||||||
|
|
||||||
void resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges) override;
|
void resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges) override;
|
||||||
|
|
||||||
using QtWayland::xdg_surface::move;
|
using QtWayland::xdg_surface_v5::move;
|
||||||
bool move(QWaylandInputDevice *inputDevice) override;
|
bool move(QWaylandInputDevice *inputDevice) override;
|
||||||
|
|
||||||
void setTitle(const QString &title) override;
|
void setTitle(const QString &title) override;
|
||||||
|
@ -6,9 +6,6 @@ QMAKE_USE += wayland-client
|
|||||||
qtConfig(xkbcommon-evdev): \
|
qtConfig(xkbcommon-evdev): \
|
||||||
QMAKE_USE += xkbcommon_evdev
|
QMAKE_USE += xkbcommon_evdev
|
||||||
|
|
||||||
WAYLANDCLIENTSOURCES += \
|
|
||||||
../../../3rdparty/protocol/xdg-shell-unstable-v5.xml
|
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
qwaylandxdgpopupv5_p.h \
|
qwaylandxdgpopupv5_p.h \
|
||||||
qwaylandxdgshellv5_p.h \
|
qwaylandxdgshellv5_p.h \
|
||||||
@ -22,6 +19,8 @@ SOURCES += \
|
|||||||
qwaylandxdgshellv5integration.cpp \
|
qwaylandxdgshellv5integration.cpp \
|
||||||
qwaylandxdgsurfacev5.cpp \
|
qwaylandxdgsurfacev5.cpp \
|
||||||
|
|
||||||
|
include (pregenerated/xdg-shell-v5.pri)
|
||||||
|
|
||||||
OTHER_FILES += \
|
OTHER_FILES += \
|
||||||
xdg-shell-v5.json
|
xdg-shell-v5.json
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user