Replace xdg-decoration (needs xdg_toplevel, GTK3 doesn't expose it) with org_kde_kwin_server_decoration (works with wl_surface which GDK provides). On KDE Wayland: binds the manager from the registry, creates a per-surface decoration object, requests mode=None (0). Falls back gracefully on GNOME (protocol not present, GTK's set_decorated(FALSE) already works). X11 fallback via gdk_window_set_decorations(0) unchanged. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
241 lines
8.5 KiB
C
241 lines
8.5 KiB
C
/* Generated by wayland-scanner 1.24.0 */
|
|
|
|
#ifndef SERVER_DECORATION_CLIENT_PROTOCOL_H
|
|
#define SERVER_DECORATION_CLIENT_PROTOCOL_H
|
|
|
|
#include <stdint.h>
|
|
#include <stddef.h>
|
|
#include "wayland-client.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* @page page_server_decoration The server_decoration protocol
|
|
* @section page_ifaces_server_decoration Interfaces
|
|
* - @subpage page_iface_org_kde_kwin_server_decoration_manager -
|
|
* - @subpage page_iface_org_kde_kwin_server_decoration -
|
|
* @section page_copyright_server_decoration Copyright
|
|
* <pre>
|
|
*
|
|
* SPDX-FileCopyrightText: 2015 Martin Gräßlin
|
|
* SPDX-License-Identifier: LGPL-2.1-or-later
|
|
* </pre>
|
|
*/
|
|
struct org_kde_kwin_server_decoration;
|
|
struct org_kde_kwin_server_decoration_manager;
|
|
struct wl_surface;
|
|
|
|
#ifndef ORG_KDE_KWIN_SERVER_DECORATION_MANAGER_INTERFACE
|
|
#define ORG_KDE_KWIN_SERVER_DECORATION_MANAGER_INTERFACE
|
|
/**
|
|
* @page page_iface_org_kde_kwin_server_decoration_manager org_kde_kwin_server_decoration_manager
|
|
* @section page_iface_org_kde_kwin_server_decoration_manager_api API
|
|
* See @ref iface_org_kde_kwin_server_decoration_manager.
|
|
*/
|
|
/**
|
|
* @defgroup iface_org_kde_kwin_server_decoration_manager The org_kde_kwin_server_decoration_manager interface
|
|
*/
|
|
extern const struct wl_interface org_kde_kwin_server_decoration_manager_interface;
|
|
#endif
|
|
#ifndef ORG_KDE_KWIN_SERVER_DECORATION_INTERFACE
|
|
#define ORG_KDE_KWIN_SERVER_DECORATION_INTERFACE
|
|
/**
|
|
* @page page_iface_org_kde_kwin_server_decoration org_kde_kwin_server_decoration
|
|
* @section page_iface_org_kde_kwin_server_decoration_api API
|
|
* See @ref iface_org_kde_kwin_server_decoration.
|
|
*/
|
|
/**
|
|
* @defgroup iface_org_kde_kwin_server_decoration The org_kde_kwin_server_decoration interface
|
|
*/
|
|
extern const struct wl_interface org_kde_kwin_server_decoration_interface;
|
|
#endif
|
|
|
|
#ifndef ORG_KDE_KWIN_SERVER_DECORATION_MANAGER_MODE_ENUM
|
|
#define ORG_KDE_KWIN_SERVER_DECORATION_MANAGER_MODE_ENUM
|
|
enum org_kde_kwin_server_decoration_manager_mode {
|
|
ORG_KDE_KWIN_SERVER_DECORATION_MANAGER_MODE_NONE = 0,
|
|
ORG_KDE_KWIN_SERVER_DECORATION_MANAGER_MODE_CLIENT = 1,
|
|
ORG_KDE_KWIN_SERVER_DECORATION_MANAGER_MODE_SERVER = 2,
|
|
};
|
|
#endif /* ORG_KDE_KWIN_SERVER_DECORATION_MANAGER_MODE_ENUM */
|
|
|
|
/**
|
|
* @ingroup iface_org_kde_kwin_server_decoration_manager
|
|
* @struct org_kde_kwin_server_decoration_manager_listener
|
|
*/
|
|
struct org_kde_kwin_server_decoration_manager_listener {
|
|
/**
|
|
*/
|
|
void (*default_mode)(void *data,
|
|
struct org_kde_kwin_server_decoration_manager *org_kde_kwin_server_decoration_manager,
|
|
uint32_t mode);
|
|
};
|
|
|
|
/**
|
|
* @ingroup iface_org_kde_kwin_server_decoration_manager
|
|
*/
|
|
static inline int
|
|
org_kde_kwin_server_decoration_manager_add_listener(struct org_kde_kwin_server_decoration_manager *org_kde_kwin_server_decoration_manager,
|
|
const struct org_kde_kwin_server_decoration_manager_listener *listener, void *data)
|
|
{
|
|
return wl_proxy_add_listener((struct wl_proxy *) org_kde_kwin_server_decoration_manager,
|
|
(void (**)(void)) listener, data);
|
|
}
|
|
|
|
#define ORG_KDE_KWIN_SERVER_DECORATION_MANAGER_CREATE 0
|
|
|
|
/**
|
|
* @ingroup iface_org_kde_kwin_server_decoration_manager
|
|
*/
|
|
#define ORG_KDE_KWIN_SERVER_DECORATION_MANAGER_DEFAULT_MODE_SINCE_VERSION 1
|
|
|
|
/**
|
|
* @ingroup iface_org_kde_kwin_server_decoration_manager
|
|
*/
|
|
#define ORG_KDE_KWIN_SERVER_DECORATION_MANAGER_CREATE_SINCE_VERSION 1
|
|
|
|
/** @ingroup iface_org_kde_kwin_server_decoration_manager */
|
|
static inline void
|
|
org_kde_kwin_server_decoration_manager_set_user_data(struct org_kde_kwin_server_decoration_manager *org_kde_kwin_server_decoration_manager, void *user_data)
|
|
{
|
|
wl_proxy_set_user_data((struct wl_proxy *) org_kde_kwin_server_decoration_manager, user_data);
|
|
}
|
|
|
|
/** @ingroup iface_org_kde_kwin_server_decoration_manager */
|
|
static inline void *
|
|
org_kde_kwin_server_decoration_manager_get_user_data(struct org_kde_kwin_server_decoration_manager *org_kde_kwin_server_decoration_manager)
|
|
{
|
|
return wl_proxy_get_user_data((struct wl_proxy *) org_kde_kwin_server_decoration_manager);
|
|
}
|
|
|
|
static inline uint32_t
|
|
org_kde_kwin_server_decoration_manager_get_version(struct org_kde_kwin_server_decoration_manager *org_kde_kwin_server_decoration_manager)
|
|
{
|
|
return wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_server_decoration_manager);
|
|
}
|
|
|
|
/** @ingroup iface_org_kde_kwin_server_decoration_manager */
|
|
static inline void
|
|
org_kde_kwin_server_decoration_manager_destroy(struct org_kde_kwin_server_decoration_manager *org_kde_kwin_server_decoration_manager)
|
|
{
|
|
wl_proxy_destroy((struct wl_proxy *) org_kde_kwin_server_decoration_manager);
|
|
}
|
|
|
|
/**
|
|
* @ingroup iface_org_kde_kwin_server_decoration_manager
|
|
*/
|
|
static inline struct org_kde_kwin_server_decoration *
|
|
org_kde_kwin_server_decoration_manager_create(struct org_kde_kwin_server_decoration_manager *org_kde_kwin_server_decoration_manager, struct wl_surface *surface)
|
|
{
|
|
struct wl_proxy *id;
|
|
|
|
id = wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_server_decoration_manager,
|
|
ORG_KDE_KWIN_SERVER_DECORATION_MANAGER_CREATE, &org_kde_kwin_server_decoration_interface, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_server_decoration_manager), 0, NULL, surface);
|
|
|
|
return (struct org_kde_kwin_server_decoration *) id;
|
|
}
|
|
|
|
#ifndef ORG_KDE_KWIN_SERVER_DECORATION_MODE_ENUM
|
|
#define ORG_KDE_KWIN_SERVER_DECORATION_MODE_ENUM
|
|
enum org_kde_kwin_server_decoration_mode {
|
|
ORG_KDE_KWIN_SERVER_DECORATION_MODE_NONE = 0,
|
|
ORG_KDE_KWIN_SERVER_DECORATION_MODE_CLIENT = 1,
|
|
ORG_KDE_KWIN_SERVER_DECORATION_MODE_SERVER = 2,
|
|
};
|
|
#endif /* ORG_KDE_KWIN_SERVER_DECORATION_MODE_ENUM */
|
|
|
|
/**
|
|
* @ingroup iface_org_kde_kwin_server_decoration
|
|
* @struct org_kde_kwin_server_decoration_listener
|
|
*/
|
|
struct org_kde_kwin_server_decoration_listener {
|
|
/**
|
|
*/
|
|
void (*mode)(void *data,
|
|
struct org_kde_kwin_server_decoration *org_kde_kwin_server_decoration,
|
|
uint32_t mode);
|
|
};
|
|
|
|
/**
|
|
* @ingroup iface_org_kde_kwin_server_decoration
|
|
*/
|
|
static inline int
|
|
org_kde_kwin_server_decoration_add_listener(struct org_kde_kwin_server_decoration *org_kde_kwin_server_decoration,
|
|
const struct org_kde_kwin_server_decoration_listener *listener, void *data)
|
|
{
|
|
return wl_proxy_add_listener((struct wl_proxy *) org_kde_kwin_server_decoration,
|
|
(void (**)(void)) listener, data);
|
|
}
|
|
|
|
#define ORG_KDE_KWIN_SERVER_DECORATION_RELEASE 0
|
|
#define ORG_KDE_KWIN_SERVER_DECORATION_REQUEST_MODE 1
|
|
|
|
/**
|
|
* @ingroup iface_org_kde_kwin_server_decoration
|
|
*/
|
|
#define ORG_KDE_KWIN_SERVER_DECORATION_MODE_SINCE_VERSION 1
|
|
|
|
/**
|
|
* @ingroup iface_org_kde_kwin_server_decoration
|
|
*/
|
|
#define ORG_KDE_KWIN_SERVER_DECORATION_RELEASE_SINCE_VERSION 1
|
|
/**
|
|
* @ingroup iface_org_kde_kwin_server_decoration
|
|
*/
|
|
#define ORG_KDE_KWIN_SERVER_DECORATION_REQUEST_MODE_SINCE_VERSION 1
|
|
|
|
/** @ingroup iface_org_kde_kwin_server_decoration */
|
|
static inline void
|
|
org_kde_kwin_server_decoration_set_user_data(struct org_kde_kwin_server_decoration *org_kde_kwin_server_decoration, void *user_data)
|
|
{
|
|
wl_proxy_set_user_data((struct wl_proxy *) org_kde_kwin_server_decoration, user_data);
|
|
}
|
|
|
|
/** @ingroup iface_org_kde_kwin_server_decoration */
|
|
static inline void *
|
|
org_kde_kwin_server_decoration_get_user_data(struct org_kde_kwin_server_decoration *org_kde_kwin_server_decoration)
|
|
{
|
|
return wl_proxy_get_user_data((struct wl_proxy *) org_kde_kwin_server_decoration);
|
|
}
|
|
|
|
static inline uint32_t
|
|
org_kde_kwin_server_decoration_get_version(struct org_kde_kwin_server_decoration *org_kde_kwin_server_decoration)
|
|
{
|
|
return wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_server_decoration);
|
|
}
|
|
|
|
/** @ingroup iface_org_kde_kwin_server_decoration */
|
|
static inline void
|
|
org_kde_kwin_server_decoration_destroy(struct org_kde_kwin_server_decoration *org_kde_kwin_server_decoration)
|
|
{
|
|
wl_proxy_destroy((struct wl_proxy *) org_kde_kwin_server_decoration);
|
|
}
|
|
|
|
/**
|
|
* @ingroup iface_org_kde_kwin_server_decoration
|
|
*/
|
|
static inline void
|
|
org_kde_kwin_server_decoration_release(struct org_kde_kwin_server_decoration *org_kde_kwin_server_decoration)
|
|
{
|
|
wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_server_decoration,
|
|
ORG_KDE_KWIN_SERVER_DECORATION_RELEASE, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_server_decoration), WL_MARSHAL_FLAG_DESTROY);
|
|
}
|
|
|
|
/**
|
|
* @ingroup iface_org_kde_kwin_server_decoration
|
|
*/
|
|
static inline void
|
|
org_kde_kwin_server_decoration_request_mode(struct org_kde_kwin_server_decoration *org_kde_kwin_server_decoration, uint32_t mode)
|
|
{
|
|
wl_proxy_marshal_flags((struct wl_proxy *) org_kde_kwin_server_decoration,
|
|
ORG_KDE_KWIN_SERVER_DECORATION_REQUEST_MODE, NULL, wl_proxy_get_version((struct wl_proxy *) org_kde_kwin_server_decoration), 0, mode);
|
|
}
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|