Update to stable xdg shell
This commit is contained in:
parent
04c9ab2290
commit
9cbf15c1a2
@ -583,7 +583,7 @@ if(ENABLE_WAYLAND_DEVICE)
|
||||
set(IRRLICHT_SOURCES
|
||||
${IRRLICHT_SOURCES}
|
||||
source/Irrlicht/server_decoration_client_protocol.c
|
||||
source/Irrlicht/xdg-shell-unstable-v6-protocol.c)
|
||||
source/Irrlicht/xdg_shell_protocol.c)
|
||||
endif()
|
||||
|
||||
|
||||
|
@ -73,9 +73,9 @@ public:
|
||||
static const wl_output_listener output_listener;
|
||||
static const wl_shell_surface_listener shell_surface_listener;
|
||||
static const wl_registry_listener registry_listener;
|
||||
static const zxdg_shell_v6_listener xdg_shell_listener;
|
||||
static const zxdg_surface_v6_listener xdg_surface_listener;
|
||||
static const zxdg_toplevel_v6_listener xdg_toplevel_listener;
|
||||
static const xdg_wm_base_listener wm_base_listener;
|
||||
static const xdg_surface_listener surface_listener;
|
||||
static const xdg_toplevel_listener toplevel_listener;
|
||||
|
||||
static void pointer_enter(void* data, wl_pointer* pointer, uint32_t serial,
|
||||
wl_surface* surface, wl_fixed_t sx, wl_fixed_t sy)
|
||||
@ -514,23 +514,23 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
static void xdg_shell_ping(void* data, zxdg_shell_v6* shell,
|
||||
uint32_t serial)
|
||||
static void xdg_wm_base_ping(void* data, xdg_wm_base* shell,
|
||||
uint32_t serial)
|
||||
{
|
||||
zxdg_shell_v6_pong(shell, serial);
|
||||
xdg_wm_base_pong(shell, serial);
|
||||
}
|
||||
|
||||
static void xdg_surface_configure(void* data, zxdg_surface_v6* surface,
|
||||
static void xdg_surface_configure(void* data, xdg_surface* surface,
|
||||
uint32_t serial)
|
||||
{
|
||||
CIrrDeviceWayland* device = static_cast<CIrrDeviceWayland*>(data);
|
||||
|
||||
zxdg_surface_v6_ack_configure(surface, serial);
|
||||
xdg_surface_ack_configure(surface, serial);
|
||||
|
||||
device->m_surface_configured = true;
|
||||
}
|
||||
|
||||
static void xdg_toplevel_configure(void* data, zxdg_toplevel_v6* toplevel,
|
||||
static void xdg_toplevel_configure(void* data, xdg_toplevel* toplevel,
|
||||
int32_t width, int32_t height,
|
||||
wl_array* states)
|
||||
{
|
||||
@ -553,7 +553,7 @@ public:
|
||||
//}
|
||||
}
|
||||
|
||||
static void xdg_toplevel_close(void* data, zxdg_toplevel_v6* xdg_toplevel)
|
||||
static void xdg_toplevel_close(void* data, xdg_toplevel* xdg_toplevel)
|
||||
{
|
||||
CIrrDeviceWayland* device = static_cast<CIrrDeviceWayland*>(data);
|
||||
|
||||
@ -609,10 +609,10 @@ public:
|
||||
wl_registry_bind(registry, name,
|
||||
&org_kde_kwin_server_decoration_manager_interface, 1));
|
||||
}
|
||||
else if (interface_str == "zxdg_shell_v6")
|
||||
else if (interface_str == "xdg_wm_base")
|
||||
{
|
||||
device->m_has_xdg_shell = true;
|
||||
device->m_xdg_shell_name = name;
|
||||
device->m_has_xdg_wm_base = true;
|
||||
device->m_xdg_wm_base_name = name;
|
||||
}
|
||||
}
|
||||
|
||||
@ -668,17 +668,17 @@ const wl_registry_listener WaylandCallbacks::registry_listener =
|
||||
WaylandCallbacks::registry_global_remove
|
||||
};
|
||||
|
||||
const zxdg_shell_v6_listener WaylandCallbacks::xdg_shell_listener =
|
||||
const xdg_wm_base_listener WaylandCallbacks::wm_base_listener =
|
||||
{
|
||||
WaylandCallbacks::xdg_shell_ping
|
||||
WaylandCallbacks::xdg_wm_base_ping
|
||||
};
|
||||
|
||||
const zxdg_surface_v6_listener WaylandCallbacks::xdg_surface_listener =
|
||||
const xdg_surface_listener WaylandCallbacks::surface_listener =
|
||||
{
|
||||
WaylandCallbacks::xdg_surface_configure
|
||||
};
|
||||
|
||||
const zxdg_toplevel_v6_listener WaylandCallbacks::xdg_toplevel_listener =
|
||||
const xdg_toplevel_listener WaylandCallbacks::toplevel_listener =
|
||||
{
|
||||
WaylandCallbacks::xdg_toplevel_configure,
|
||||
WaylandCallbacks::xdg_toplevel_close
|
||||
@ -724,12 +724,12 @@ CIrrDeviceWayland::CIrrDeviceWayland(const SIrrlichtCreationParameters& params)
|
||||
m_has_wl_shell = false;
|
||||
m_wl_shell_name = 0;
|
||||
|
||||
m_xdg_shell = NULL;
|
||||
m_xdg_wm_base = NULL;
|
||||
m_xdg_surface = NULL;
|
||||
m_xdg_toplevel = NULL;
|
||||
m_has_xdg_shell = false;
|
||||
m_has_xdg_wm_base = false;
|
||||
m_surface_configured = false;
|
||||
m_xdg_shell_name = 0;
|
||||
m_xdg_wm_base_name = 0;
|
||||
|
||||
m_decoration_manager = NULL;
|
||||
m_decoration = NULL;
|
||||
@ -818,13 +818,13 @@ CIrrDeviceWayland::~CIrrDeviceWayland()
|
||||
wl_cursor_theme_destroy(m_cursor_theme);
|
||||
|
||||
if (m_xdg_toplevel)
|
||||
zxdg_toplevel_v6_destroy(m_xdg_toplevel);
|
||||
xdg_toplevel_destroy(m_xdg_toplevel);
|
||||
|
||||
if (m_xdg_surface)
|
||||
zxdg_surface_v6_destroy(m_xdg_surface);
|
||||
xdg_surface_destroy(m_xdg_surface);
|
||||
|
||||
if (m_xdg_shell)
|
||||
zxdg_shell_v6_destroy(m_xdg_shell);
|
||||
if (m_xdg_wm_base)
|
||||
xdg_wm_base_destroy(m_xdg_wm_base);
|
||||
|
||||
if (m_shell_surface)
|
||||
wl_shell_surface_destroy(m_shell_surface);
|
||||
@ -908,7 +908,7 @@ bool CIrrDeviceWayland::initWayland()
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!m_has_wl_shell && !m_has_xdg_shell)
|
||||
if (!m_has_wl_shell && !m_has_xdg_wm_base)
|
||||
{
|
||||
os::Printer::log("Shell protocol is not available.", ELL_ERROR);
|
||||
return false;
|
||||
@ -916,13 +916,13 @@ bool CIrrDeviceWayland::initWayland()
|
||||
|
||||
if (CreationParams.DriverType != video::EDT_NULL)
|
||||
{
|
||||
if (m_has_xdg_shell)
|
||||
if (m_has_xdg_wm_base)
|
||||
{
|
||||
m_xdg_shell = static_cast<zxdg_shell_v6*>(wl_registry_bind(
|
||||
m_registry, m_xdg_shell_name, &zxdg_shell_v6_interface, 1));
|
||||
m_xdg_wm_base = static_cast<xdg_wm_base*>(wl_registry_bind(
|
||||
m_registry, m_xdg_wm_base_name, &xdg_wm_base_interface, 1));
|
||||
|
||||
zxdg_shell_v6_add_listener(m_xdg_shell,
|
||||
&WaylandCallbacks::xdg_shell_listener, this);
|
||||
xdg_wm_base_add_listener(m_xdg_wm_base,
|
||||
&WaylandCallbacks::wm_base_listener, this);
|
||||
}
|
||||
else if (m_has_wl_shell)
|
||||
{
|
||||
@ -1001,29 +1001,26 @@ bool CIrrDeviceWayland::createWindow()
|
||||
return false;
|
||||
}
|
||||
|
||||
if (m_xdg_shell != NULL)
|
||||
if (m_xdg_wm_base != NULL)
|
||||
{
|
||||
m_xdg_surface = zxdg_shell_v6_get_xdg_surface(m_xdg_shell, m_surface);
|
||||
m_xdg_surface = xdg_wm_base_get_xdg_surface(m_xdg_wm_base, m_surface);
|
||||
|
||||
zxdg_surface_v6_add_listener(m_xdg_surface,
|
||||
&WaylandCallbacks::xdg_surface_listener,
|
||||
this);
|
||||
xdg_surface_add_listener(m_xdg_surface,
|
||||
&WaylandCallbacks::surface_listener, this);
|
||||
|
||||
m_xdg_toplevel = zxdg_surface_v6_get_toplevel(m_xdg_surface);
|
||||
m_xdg_toplevel = xdg_surface_get_toplevel(m_xdg_surface);
|
||||
|
||||
zxdg_toplevel_v6_add_listener(m_xdg_toplevel,
|
||||
&WaylandCallbacks::xdg_toplevel_listener,
|
||||
this);
|
||||
xdg_toplevel_add_listener(m_xdg_toplevel,
|
||||
&WaylandCallbacks::toplevel_listener, this);
|
||||
|
||||
wl_surface_commit(m_surface);
|
||||
|
||||
if (CreationParams.Fullscreen)
|
||||
{
|
||||
zxdg_toplevel_v6_set_fullscreen(m_xdg_toplevel, NULL);
|
||||
xdg_toplevel_set_fullscreen(m_xdg_toplevel, NULL);
|
||||
}
|
||||
|
||||
zxdg_surface_v6_set_window_geometry(m_xdg_surface, 0, 0, m_width,
|
||||
m_height);
|
||||
xdg_surface_set_window_geometry(m_xdg_surface, 0, 0, m_width, m_height);
|
||||
|
||||
while (!m_surface_configured)
|
||||
{
|
||||
@ -1221,7 +1218,7 @@ void CIrrDeviceWayland::setWindowCaption(const wchar_t* text)
|
||||
|
||||
if (m_xdg_toplevel)
|
||||
{
|
||||
zxdg_toplevel_v6_set_title(m_xdg_toplevel, title);
|
||||
xdg_toplevel_set_title(m_xdg_toplevel, title);
|
||||
}
|
||||
else if (m_shell_surface)
|
||||
{
|
||||
@ -1234,7 +1231,7 @@ void CIrrDeviceWayland::setWindowClass(const char* text)
|
||||
{
|
||||
if (m_xdg_toplevel)
|
||||
{
|
||||
zxdg_toplevel_v6_set_app_id(m_xdg_toplevel, text);
|
||||
xdg_toplevel_set_app_id(m_xdg_toplevel, text);
|
||||
}
|
||||
else if (m_shell_surface)
|
||||
{
|
||||
@ -1287,8 +1284,8 @@ void CIrrDeviceWayland::setResizable(bool resize)
|
||||
int width = resize ? 0 : m_width;
|
||||
int height = resize ? 0 : m_height;
|
||||
|
||||
zxdg_toplevel_v6_set_min_size(m_xdg_toplevel, width, height);
|
||||
zxdg_toplevel_v6_set_max_size(m_xdg_toplevel, width, height);
|
||||
xdg_toplevel_set_min_size(m_xdg_toplevel, width, height);
|
||||
xdg_toplevel_set_max_size(m_xdg_toplevel, width, height);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1303,7 +1300,7 @@ void CIrrDeviceWayland::minimizeWindow()
|
||||
{
|
||||
if (m_xdg_toplevel)
|
||||
{
|
||||
zxdg_toplevel_v6_set_minimized(m_xdg_toplevel);
|
||||
xdg_toplevel_set_minimized(m_xdg_toplevel);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1312,7 +1309,7 @@ void CIrrDeviceWayland::maximizeWindow()
|
||||
{
|
||||
if (m_xdg_toplevel)
|
||||
{
|
||||
zxdg_toplevel_v6_set_maximized(m_xdg_toplevel);
|
||||
xdg_toplevel_set_maximized(m_xdg_toplevel);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1321,7 +1318,7 @@ void CIrrDeviceWayland::restoreWindow()
|
||||
{
|
||||
if (m_xdg_toplevel)
|
||||
{
|
||||
zxdg_toplevel_v6_unset_maximized(m_xdg_toplevel);
|
||||
xdg_toplevel_unset_maximized(m_xdg_toplevel);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -27,7 +27,7 @@
|
||||
#include "IImagePresenter.h"
|
||||
#include "ICursorControl.h"
|
||||
#include "server_decoration_client_protocol.h"
|
||||
#include "xdg-shell-unstable-v6-client-protocol.h"
|
||||
#include "xdg_shell_client_protocol.h"
|
||||
|
||||
#include <wayland-client.h>
|
||||
#include <wayland-cursor.h>
|
||||
@ -183,12 +183,12 @@ namespace irr
|
||||
bool m_has_wl_shell;
|
||||
uint32_t m_wl_shell_name;
|
||||
|
||||
zxdg_shell_v6* m_xdg_shell;
|
||||
zxdg_surface_v6* m_xdg_surface;
|
||||
zxdg_toplevel_v6* m_xdg_toplevel;
|
||||
bool m_has_xdg_shell;
|
||||
xdg_wm_base* m_xdg_wm_base;
|
||||
xdg_surface* m_xdg_surface;
|
||||
xdg_toplevel* m_xdg_toplevel;
|
||||
bool m_has_xdg_wm_base;
|
||||
bool m_surface_configured;
|
||||
uint32_t m_xdg_shell_name;
|
||||
uint32_t m_xdg_wm_base_name;
|
||||
|
||||
org_kde_kwin_server_decoration_manager* m_decoration_manager;
|
||||
org_kde_kwin_server_decoration* m_decoration;
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,10 +1,12 @@
|
||||
/* Generated by wayland-scanner 1.12.0 */
|
||||
/* Generated by wayland-scanner 1.14.0 */
|
||||
|
||||
/*
|
||||
* Copyright © 2008-2013 Kristian Høgsberg
|
||||
* Copyright © 2013 Rafael Antognolli
|
||||
* Copyright © 2013 Jasper St. Pierre
|
||||
* Copyright © 2010-2013 Intel Corporation
|
||||
* Copyright © 2015-2017 Samsung Electronics Co., Ltd
|
||||
* Copyright © 2015-2017 Red Hat Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
@ -33,24 +35,24 @@
|
||||
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 zxdg_popup_v6_interface;
|
||||
extern const struct wl_interface zxdg_positioner_v6_interface;
|
||||
extern const struct wl_interface zxdg_surface_v6_interface;
|
||||
extern const struct wl_interface zxdg_toplevel_v6_interface;
|
||||
extern const struct wl_interface xdg_popup_interface;
|
||||
extern const struct wl_interface xdg_positioner_interface;
|
||||
extern const struct wl_interface xdg_surface_interface;
|
||||
extern const struct wl_interface xdg_toplevel_interface;
|
||||
|
||||
static const struct wl_interface *types[] = {
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
&zxdg_positioner_v6_interface,
|
||||
&zxdg_surface_v6_interface,
|
||||
&xdg_positioner_interface,
|
||||
&xdg_surface_interface,
|
||||
&wl_surface_interface,
|
||||
&zxdg_toplevel_v6_interface,
|
||||
&zxdg_popup_v6_interface,
|
||||
&zxdg_surface_v6_interface,
|
||||
&zxdg_positioner_v6_interface,
|
||||
&zxdg_toplevel_v6_interface,
|
||||
&xdg_toplevel_interface,
|
||||
&xdg_popup_interface,
|
||||
&xdg_surface_interface,
|
||||
&xdg_positioner_interface,
|
||||
&xdg_toplevel_interface,
|
||||
&wl_seat_interface,
|
||||
NULL,
|
||||
NULL,
|
||||
@ -65,24 +67,24 @@ static const struct wl_interface *types[] = {
|
||||
NULL,
|
||||
};
|
||||
|
||||
static const struct wl_message zxdg_shell_v6_requests[] = {
|
||||
static const struct wl_message xdg_wm_base_requests[] = {
|
||||
{ "destroy", "", types + 0 },
|
||||
{ "create_positioner", "n", types + 4 },
|
||||
{ "get_xdg_surface", "no", types + 5 },
|
||||
{ "pong", "u", types + 0 },
|
||||
};
|
||||
|
||||
static const struct wl_message zxdg_shell_v6_events[] = {
|
||||
static const struct wl_message xdg_wm_base_events[] = {
|
||||
{ "ping", "u", types + 0 },
|
||||
};
|
||||
|
||||
WL_EXPORT const struct wl_interface zxdg_shell_v6_interface = {
|
||||
"zxdg_shell_v6", 1,
|
||||
4, zxdg_shell_v6_requests,
|
||||
1, zxdg_shell_v6_events,
|
||||
WL_EXPORT const struct wl_interface xdg_wm_base_interface = {
|
||||
"xdg_wm_base", 2,
|
||||
4, xdg_wm_base_requests,
|
||||
1, xdg_wm_base_events,
|
||||
};
|
||||
|
||||
static const struct wl_message zxdg_positioner_v6_requests[] = {
|
||||
static const struct wl_message xdg_positioner_requests[] = {
|
||||
{ "destroy", "", types + 0 },
|
||||
{ "set_size", "ii", types + 0 },
|
||||
{ "set_anchor_rect", "iiii", types + 0 },
|
||||
@ -92,31 +94,31 @@ static const struct wl_message zxdg_positioner_v6_requests[] = {
|
||||
{ "set_offset", "ii", types + 0 },
|
||||
};
|
||||
|
||||
WL_EXPORT const struct wl_interface zxdg_positioner_v6_interface = {
|
||||
"zxdg_positioner_v6", 1,
|
||||
7, zxdg_positioner_v6_requests,
|
||||
WL_EXPORT const struct wl_interface xdg_positioner_interface = {
|
||||
"xdg_positioner", 2,
|
||||
7, xdg_positioner_requests,
|
||||
0, NULL,
|
||||
};
|
||||
|
||||
static const struct wl_message zxdg_surface_v6_requests[] = {
|
||||
static const struct wl_message xdg_surface_requests[] = {
|
||||
{ "destroy", "", types + 0 },
|
||||
{ "get_toplevel", "n", types + 7 },
|
||||
{ "get_popup", "noo", types + 8 },
|
||||
{ "get_popup", "n?oo", types + 8 },
|
||||
{ "set_window_geometry", "iiii", types + 0 },
|
||||
{ "ack_configure", "u", types + 0 },
|
||||
};
|
||||
|
||||
static const struct wl_message zxdg_surface_v6_events[] = {
|
||||
static const struct wl_message xdg_surface_events[] = {
|
||||
{ "configure", "u", types + 0 },
|
||||
};
|
||||
|
||||
WL_EXPORT const struct wl_interface zxdg_surface_v6_interface = {
|
||||
"zxdg_surface_v6", 1,
|
||||
5, zxdg_surface_v6_requests,
|
||||
1, zxdg_surface_v6_events,
|
||||
WL_EXPORT const struct wl_interface xdg_surface_interface = {
|
||||
"xdg_surface", 2,
|
||||
5, xdg_surface_requests,
|
||||
1, xdg_surface_events,
|
||||
};
|
||||
|
||||
static const struct wl_message zxdg_toplevel_v6_requests[] = {
|
||||
static const struct wl_message xdg_toplevel_requests[] = {
|
||||
{ "destroy", "", types + 0 },
|
||||
{ "set_parent", "?o", types + 11 },
|
||||
{ "set_title", "s", types + 0 },
|
||||
@ -133,30 +135,30 @@ static const struct wl_message zxdg_toplevel_v6_requests[] = {
|
||||
{ "set_minimized", "", types + 0 },
|
||||
};
|
||||
|
||||
static const struct wl_message zxdg_toplevel_v6_events[] = {
|
||||
static const struct wl_message xdg_toplevel_events[] = {
|
||||
{ "configure", "iia", types + 0 },
|
||||
{ "close", "", types + 0 },
|
||||
};
|
||||
|
||||
WL_EXPORT const struct wl_interface zxdg_toplevel_v6_interface = {
|
||||
"zxdg_toplevel_v6", 1,
|
||||
14, zxdg_toplevel_v6_requests,
|
||||
2, zxdg_toplevel_v6_events,
|
||||
WL_EXPORT const struct wl_interface xdg_toplevel_interface = {
|
||||
"xdg_toplevel", 2,
|
||||
14, xdg_toplevel_requests,
|
||||
2, xdg_toplevel_events,
|
||||
};
|
||||
|
||||
static const struct wl_message zxdg_popup_v6_requests[] = {
|
||||
static const struct wl_message xdg_popup_requests[] = {
|
||||
{ "destroy", "", types + 0 },
|
||||
{ "grab", "ou", types + 22 },
|
||||
};
|
||||
|
||||
static const struct wl_message zxdg_popup_v6_events[] = {
|
||||
static const struct wl_message xdg_popup_events[] = {
|
||||
{ "configure", "iiii", types + 0 },
|
||||
{ "popup_done", "", types + 0 },
|
||||
};
|
||||
|
||||
WL_EXPORT const struct wl_interface zxdg_popup_v6_interface = {
|
||||
"zxdg_popup_v6", 1,
|
||||
2, zxdg_popup_v6_requests,
|
||||
2, zxdg_popup_v6_events,
|
||||
WL_EXPORT const struct wl_interface xdg_popup_interface = {
|
||||
"xdg_popup", 2,
|
||||
2, xdg_popup_requests,
|
||||
2, xdg_popup_events,
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user