Client: Use customized version of generated files for xdg-shell-v5
Check in qtwaylandscanner and wayland-scanner generated files with renamed symbols to avoid conflicts with xdg-shell stable. When this was done on the compositor side, we thought we didn't have to do it for the client side because the conflicting symbols are used in separate plugins. Turns out this breaks static builds, though. Task-number: QTBUG-69896 Change-Id: I461df8e136b741063eafe13e858734a3aafdf020 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
This commit is contained in:
parent
b70ab36e1c
commit
c1df229b5d
@ -74,7 +74,7 @@ Copyright (c) 2013 BMW Car IT GmbH"
|
||||
"Name": "Wayland XDG Shell Protocol",
|
||||
"QDocModule": "qtwaylandcompositor",
|
||||
"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.",
|
||||
"Homepage": "https://wayland.freedesktop.org",
|
||||
|
@ -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 {
|
||||
|
||||
QWaylandXdgPopupV5::QWaylandXdgPopupV5(struct ::xdg_popup *popup, QWaylandWindow *window)
|
||||
QWaylandXdgPopupV5::QWaylandXdgPopupV5(struct ::xdg_popup_v5 *popup, QWaylandWindow *window)
|
||||
: QWaylandShellSurface(window)
|
||||
, QtWayland::xdg_popup(popup)
|
||||
, QtWayland::xdg_popup_v5(popup)
|
||||
, m_window(window)
|
||||
{
|
||||
if (window->display()->windowExtension())
|
||||
|
@ -51,7 +51,7 @@
|
||||
// We mean it.
|
||||
//
|
||||
|
||||
#include "qwayland-xdg-shell-unstable-v5.h"
|
||||
#include "qwayland-xdg-shell-unstable-v5_p.h"
|
||||
|
||||
#include <wayland-client.h>
|
||||
|
||||
@ -68,11 +68,11 @@ class QWaylandWindow;
|
||||
class QWaylandExtendedSurface;
|
||||
|
||||
class Q_WAYLAND_CLIENT_EXPORT QWaylandXdgPopupV5 : public QWaylandShellSurface
|
||||
, public QtWayland::xdg_popup
|
||||
, public QtWayland::xdg_popup_v5
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
QWaylandXdgPopupV5(struct ::xdg_popup *popup, QWaylandWindow *window);
|
||||
QWaylandXdgPopupV5(struct ::xdg_popup_v5 *popup, QWaylandWindow *window);
|
||||
~QWaylandXdgPopupV5() override;
|
||||
|
||||
protected:
|
||||
|
@ -52,15 +52,15 @@ QT_BEGIN_NAMESPACE
|
||||
|
||||
namespace QtWaylandClient {
|
||||
|
||||
QWaylandXdgShellV5::QWaylandXdgShellV5(struct ::xdg_shell *shell)
|
||||
: QtWayland::xdg_shell(shell)
|
||||
QWaylandXdgShellV5::QWaylandXdgShellV5(struct ::xdg_shell_v5 *shell)
|
||||
: QtWayland::xdg_shell_v5(shell)
|
||||
{
|
||||
}
|
||||
|
||||
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()
|
||||
|
@ -51,7 +51,7 @@
|
||||
// We mean it.
|
||||
//
|
||||
|
||||
#include "qwayland-xdg-shell-unstable-v5.h"
|
||||
#include "qwayland-xdg-shell-unstable-v5_p.h"
|
||||
|
||||
#include <QtCore/QSize>
|
||||
#include <QtCore/QVector>
|
||||
@ -72,10 +72,10 @@ class QWaylandInputDevice;
|
||||
class QWaylandXdgSurfaceV5;
|
||||
class QWaylandXdgPopupV5;
|
||||
|
||||
class Q_WAYLAND_CLIENT_EXPORT QWaylandXdgShellV5 : public QtWayland::xdg_shell
|
||||
class Q_WAYLAND_CLIENT_EXPORT QWaylandXdgShellV5 : public QtWayland::xdg_shell_v5
|
||||
{
|
||||
public:
|
||||
QWaylandXdgShellV5(struct ::xdg_shell *shell);
|
||||
QWaylandXdgShellV5(struct ::xdg_shell_v5 *shell);
|
||||
QWaylandXdgShellV5(struct ::wl_registry *registry, uint32_t id);
|
||||
~QWaylandXdgShellV5() override;
|
||||
|
||||
|
@ -54,7 +54,7 @@ namespace QtWaylandClient {
|
||||
|
||||
QWaylandXdgSurfaceV5::QWaylandXdgSurfaceV5(QWaylandXdgShellV5 *shell, QWaylandWindow *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_shell(shell)
|
||||
{
|
||||
@ -105,12 +105,12 @@ void QWaylandXdgSurfaceV5::updateTransientParent(QWaylandWindow *parent)
|
||||
|
||||
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)
|
||||
{
|
||||
return QtWayland::xdg_surface::set_app_id(appId);
|
||||
return QtWayland::xdg_surface_v5::set_app_id(appId);
|
||||
}
|
||||
|
||||
void QWaylandXdgSurfaceV5::raise()
|
||||
|
@ -51,7 +51,7 @@
|
||||
// We mean it.
|
||||
//
|
||||
|
||||
#include "qwayland-xdg-shell-unstable-v5.h"
|
||||
#include "qwayland-xdg-shell-unstable-v5_p.h"
|
||||
|
||||
#include <QtWaylandClient/qtwaylandclientglobal.h>
|
||||
#include <QtWaylandClient/private/qwaylandshellsurface_p.h>
|
||||
@ -73,19 +73,19 @@ class QWaylandExtendedSurface;
|
||||
class QWaylandXdgShellV5;
|
||||
|
||||
class Q_WAYLAND_CLIENT_EXPORT QWaylandXdgSurfaceV5 : public QWaylandShellSurface
|
||||
, public QtWayland::xdg_surface
|
||||
, public QtWayland::xdg_surface_v5
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
QWaylandXdgSurfaceV5(QWaylandXdgShellV5 *shell, QWaylandWindow *window);
|
||||
~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 wl_shell_surface_resize edges) override;
|
||||
|
||||
using QtWayland::xdg_surface::move;
|
||||
using QtWayland::xdg_surface_v5::move;
|
||||
bool move(QWaylandInputDevice *inputDevice) override;
|
||||
|
||||
void setTitle(const QString &title) override;
|
||||
|
@ -6,9 +6,6 @@ QMAKE_USE += wayland-client
|
||||
qtConfig(xkbcommon-evdev): \
|
||||
QMAKE_USE += xkbcommon_evdev
|
||||
|
||||
WAYLANDCLIENTSOURCES += \
|
||||
../../../3rdparty/protocol/xdg-shell-unstable-v5.xml
|
||||
|
||||
HEADERS += \
|
||||
qwaylandxdgpopupv5_p.h \
|
||||
qwaylandxdgshellv5_p.h \
|
||||
@ -22,6 +19,8 @@ SOURCES += \
|
||||
qwaylandxdgshellv5integration.cpp \
|
||||
qwaylandxdgsurfacev5.cpp \
|
||||
|
||||
include (pregenerated/xdg-shell-v5.pri)
|
||||
|
||||
OTHER_FILES += \
|
||||
xdg-shell-v5.json
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user