mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-06 09:29:38 +01:00
JBR-6138 Wayland: utilize gtk_shell1 protocol to mark dialogs as modal
(cherry picked from commit ba60bfa1f4)
This commit is contained in:
@@ -147,15 +147,12 @@ public class WLComponentPeer implements ComponentPeer {
|
||||
}
|
||||
|
||||
public void postPaintEvent(int x, int y, int w, int h) {
|
||||
if (!hasSurface()) {
|
||||
log.warning("WLComponentPeer: No surface. Skipping paint request x=" + x + " y=" + y +
|
||||
" width=" + w + " height=" + h);
|
||||
return;
|
||||
}
|
||||
PaintEvent event = PaintEventDispatcher.getPaintEventDispatcher().
|
||||
createPaintEvent(target, x, y, w, h);
|
||||
if (event != null) {
|
||||
WLToolkit.postEvent(event);
|
||||
if (isVisible()) {
|
||||
PaintEvent event = PaintEventDispatcher.getPaintEventDispatcher().
|
||||
createPaintEvent(target, x, y, w, h);
|
||||
if (event != null) {
|
||||
WLToolkit.postEvent(event);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -168,7 +165,7 @@ public class WLComponentPeer implements ComponentPeer {
|
||||
}
|
||||
|
||||
boolean isVisible() {
|
||||
return visible;
|
||||
return visible && hasSurface();
|
||||
}
|
||||
|
||||
boolean hasSurface() {
|
||||
@@ -232,11 +229,12 @@ public class WLComponentPeer implements ComponentPeer {
|
||||
|
||||
protected void wlSetVisible(boolean v) {
|
||||
this.visible = v;
|
||||
if (this.visible) {
|
||||
if (v) {
|
||||
final String title = getTitle();
|
||||
final boolean isWlPopup = targetIsWlPopup();
|
||||
final int thisWidth = getWidth();
|
||||
final int thisHeight = getHeight();
|
||||
final boolean isModal = targetIsModal();
|
||||
performLocked(() -> {
|
||||
if (isWlPopup) {
|
||||
Window popup = (Window) target;
|
||||
@@ -262,7 +260,10 @@ public class WLComponentPeer implements ComponentPeer {
|
||||
offsetX, offsetY);
|
||||
} else {
|
||||
nativeCreateWLSurface(nativePtr,
|
||||
getParentNativePtr(target), target.getX(), target.getY(), title, appID);
|
||||
getParentNativePtr(target),
|
||||
target.getX(), target.getY(),
|
||||
isModal,
|
||||
title, appID);
|
||||
}
|
||||
final long wlSurfacePtr = getWLSurface(nativePtr);
|
||||
WLToolkit.registerWLSurface(wlSurfacePtr, this);
|
||||
@@ -291,6 +292,12 @@ public class WLComponentPeer implements ComponentPeer {
|
||||
&& AWTAccessor.getWindowAccessor().getPopupParent(window) != null;
|
||||
}
|
||||
|
||||
private boolean targetIsModal() {
|
||||
return target instanceof Dialog dialog
|
||||
&& (dialog.getModalityType() == Dialog.ModalityType.APPLICATION_MODAL
|
||||
|| dialog.getModalityType() == Dialog.ModalityType.TOOLKIT_MODAL);
|
||||
}
|
||||
|
||||
void configureWLSurface() {
|
||||
synchronized (sizeLock) {
|
||||
if (log.isLoggable(PlatformLogger.Level.FINE)) {
|
||||
@@ -373,7 +380,7 @@ public class WLComponentPeer implements ComponentPeer {
|
||||
|
||||
public void setBounds(int x, int y, int width, int height, int op) {
|
||||
final boolean positionChanged = this.x != x || this.y != y;
|
||||
if (positionChanged) {
|
||||
if (positionChanged && isVisible()) {
|
||||
performLocked(() -> WLRobotPeer.setLocationOfWLSurface(getWLSurface(nativePtr), x, y));
|
||||
}
|
||||
this.x = x;
|
||||
@@ -400,6 +407,7 @@ public class WLComponentPeer implements ComponentPeer {
|
||||
|
||||
WLToolkit.postEvent(new ComponentEvent(getTarget(), ComponentEvent.COMPONENT_RESIZED));
|
||||
}
|
||||
|
||||
postPaintEvent();
|
||||
}
|
||||
|
||||
@@ -845,7 +853,7 @@ public class WLComponentPeer implements ComponentPeer {
|
||||
protected native long nativeCreateFrame();
|
||||
|
||||
protected native void nativeCreateWLSurface(long ptr, long parentPtr,
|
||||
int x, int y,
|
||||
int x, int y, boolean isModal,
|
||||
String title, String appID);
|
||||
|
||||
protected native void nativeCreateWLPopup(long ptr, long parentPtr,
|
||||
|
||||
@@ -134,9 +134,11 @@ public abstract class WLDecoratedPeer extends WLWindowPeer {
|
||||
}
|
||||
|
||||
void postPaintEvent() {
|
||||
// Full re-paint must include window decorations, if any
|
||||
notifyClientDecorationsChanged();
|
||||
super.postPaintEvent();
|
||||
if (isVisible()) {
|
||||
// Full re-paint must include window decorations, if any
|
||||
notifyClientDecorationsChanged();
|
||||
super.postPaintEvent();
|
||||
}
|
||||
}
|
||||
|
||||
final void paintClientDecorations(final Graphics g) {
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include <jni.h>
|
||||
#include <Trace.h>
|
||||
#include <assert.h>
|
||||
#include <gtk-shell1-client-protocol.h>
|
||||
|
||||
#include "jni_util.h"
|
||||
#include "WLToolkit.h"
|
||||
@@ -88,6 +89,7 @@ struct WLFrame {
|
||||
jobject nativeFramePeer; // weak reference
|
||||
struct wl_surface *wl_surface;
|
||||
struct xdg_surface *xdg_surface;
|
||||
struct gtk_surface1 *gtk_surface;
|
||||
struct WLFrame *parent;
|
||||
struct xdg_positioner *xdg_positioner;
|
||||
struct activation_token_list_item *activation_token_list;
|
||||
@@ -409,7 +411,7 @@ Java_sun_awt_wl_WLComponentPeer_nativeRequestUnsetFullScreen
|
||||
JNIEXPORT void JNICALL
|
||||
Java_sun_awt_wl_WLComponentPeer_nativeCreateWLSurface
|
||||
(JNIEnv *env, jobject obj, jlong ptr, jlong parentPtr,
|
||||
jint x, jint y,
|
||||
jint x, jint y, jboolean isModal,
|
||||
jstring title, jstring appid)
|
||||
{
|
||||
struct WLFrame *frame = (struct WLFrame *) ptr;
|
||||
@@ -417,6 +419,9 @@ Java_sun_awt_wl_WLComponentPeer_nativeCreateWLSurface
|
||||
if (frame->wl_surface) return;
|
||||
frame->wl_surface = wl_compositor_create_surface(wl_compositor);
|
||||
frame->xdg_surface = xdg_wm_base_get_xdg_surface(xdg_wm_base, frame->wl_surface);
|
||||
if (gtk_shell1 != NULL) {
|
||||
frame->gtk_surface = gtk_shell1_get_gtk_surface(gtk_shell1, frame->wl_surface);
|
||||
}
|
||||
|
||||
wl_surface_add_listener(frame->wl_surface, &wl_surface_listener, frame);
|
||||
xdg_surface_add_listener(frame->xdg_surface, &xdg_surface_listener, frame);
|
||||
@@ -433,6 +438,10 @@ Java_sun_awt_wl_WLComponentPeer_nativeCreateWLSurface
|
||||
xdg_toplevel_set_parent(frame->xdg_toplevel, parentFrame->xdg_toplevel);
|
||||
}
|
||||
|
||||
if (isModal && frame->gtk_surface != NULL) {
|
||||
gtk_surface1_set_modal(frame->gtk_surface);
|
||||
}
|
||||
|
||||
#ifdef WAKEFIELD_ROBOT
|
||||
if (wakefield) {
|
||||
// TODO: this doesn't work quite as expected for some reason
|
||||
@@ -498,6 +507,9 @@ DoHide(struct WLFrame *frame)
|
||||
if (wl_surface_in_focus == frame->wl_surface) {
|
||||
wl_surface_in_focus = NULL;
|
||||
}
|
||||
if (frame->gtk_surface != NULL) {
|
||||
gtk_surface1_destroy(frame->gtk_surface);
|
||||
}
|
||||
xdg_surface_destroy(frame->xdg_surface);
|
||||
wl_surface_destroy(frame->wl_surface);
|
||||
delete_all_tokens(frame->activation_token_list);
|
||||
|
||||
@@ -40,6 +40,8 @@
|
||||
#include <unistd.h>
|
||||
#include <time.h>
|
||||
|
||||
#include "gtk-shell1-client-protocol.h"
|
||||
|
||||
#include "jvm_md.h"
|
||||
#include "jni_util.h"
|
||||
#include "awt.h"
|
||||
@@ -60,6 +62,7 @@ struct wl_shm *wl_shm = NULL;
|
||||
struct wl_compositor *wl_compositor = NULL;
|
||||
struct xdg_wm_base *xdg_wm_base = NULL;
|
||||
struct xdg_activation_v1 *xdg_activation_v1 = NULL;
|
||||
struct gtk_shell1* gtk_shell1 = NULL;
|
||||
struct wl_seat *wl_seat = NULL;
|
||||
|
||||
struct wl_keyboard *wl_keyboard;
|
||||
@@ -685,6 +688,8 @@ registry_global(void *data, struct wl_registry *wl_registry,
|
||||
process_new_listener_before_end_of_init();
|
||||
} else if (strcmp(interface, xdg_activation_v1_interface.name) == 0) {
|
||||
xdg_activation_v1 = wl_registry_bind(wl_registry, name, &xdg_activation_v1_interface, 1);
|
||||
} else if (strcmp(interface, gtk_shell1_interface.name) == 0) {
|
||||
gtk_shell1 = wl_registry_bind(wl_registry, name, >k_shell1_interface, 1);
|
||||
}
|
||||
#ifdef WAKEFIELD_ROBOT
|
||||
else if (strcmp(interface, wakefield_interface.name) == 0) {
|
||||
|
||||
@@ -44,12 +44,16 @@
|
||||
} \
|
||||
} while(0) \
|
||||
|
||||
struct gtk_shell1;
|
||||
|
||||
extern struct wl_seat *wl_seat;
|
||||
extern struct wl_display *wl_display;
|
||||
extern struct wl_pointer *wl_pointer;
|
||||
extern struct wl_compositor *wl_compositor;
|
||||
extern struct xdg_wm_base *xdg_wm_base;
|
||||
extern struct xdg_activation_v1 *xdg_activation_v1;
|
||||
extern struct gtk_shell1* gtk_shell1; // optional, check for NULL before use
|
||||
|
||||
extern struct wl_cursor_theme *wl_cursor_theme;
|
||||
|
||||
extern struct wl_surface *wl_surface_in_focus;
|
||||
|
||||
@@ -0,0 +1,430 @@
|
||||
/* Generated by wayland-scanner 1.19.0 */
|
||||
|
||||
#ifndef GTK_CLIENT_PROTOCOL_H
|
||||
#define GTK_CLIENT_PROTOCOL_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
#include "wayland-client.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @page page_gtk The gtk protocol
|
||||
* @section page_ifaces_gtk Interfaces
|
||||
* - @subpage page_iface_gtk_shell1 - gtk specific extensions
|
||||
* - @subpage page_iface_gtk_surface1 -
|
||||
*/
|
||||
struct gtk_shell1;
|
||||
struct gtk_surface1;
|
||||
struct wl_seat;
|
||||
struct wl_surface;
|
||||
|
||||
#ifndef GTK_SHELL1_INTERFACE
|
||||
#define GTK_SHELL1_INTERFACE
|
||||
/**
|
||||
* @page page_iface_gtk_shell1 gtk_shell1
|
||||
* @section page_iface_gtk_shell1_desc Description
|
||||
*
|
||||
* gtk_shell is a protocol extension providing additional features for
|
||||
* clients implementing it.
|
||||
* @section page_iface_gtk_shell1_api API
|
||||
* See @ref iface_gtk_shell1.
|
||||
*/
|
||||
/**
|
||||
* @defgroup iface_gtk_shell1 The gtk_shell1 interface
|
||||
*
|
||||
* gtk_shell is a protocol extension providing additional features for
|
||||
* clients implementing it.
|
||||
*/
|
||||
extern const struct wl_interface gtk_shell1_interface;
|
||||
#endif
|
||||
#ifndef GTK_SURFACE1_INTERFACE
|
||||
#define GTK_SURFACE1_INTERFACE
|
||||
/**
|
||||
* @page page_iface_gtk_surface1 gtk_surface1
|
||||
* @section page_iface_gtk_surface1_api API
|
||||
* See @ref iface_gtk_surface1.
|
||||
*/
|
||||
/**
|
||||
* @defgroup iface_gtk_surface1 The gtk_surface1 interface
|
||||
*/
|
||||
extern const struct wl_interface gtk_surface1_interface;
|
||||
#endif
|
||||
|
||||
#ifndef GTK_SHELL1_CAPABILITY_ENUM
|
||||
#define GTK_SHELL1_CAPABILITY_ENUM
|
||||
enum gtk_shell1_capability {
|
||||
GTK_SHELL1_CAPABILITY_GLOBAL_APP_MENU = 1,
|
||||
GTK_SHELL1_CAPABILITY_GLOBAL_MENU_BAR = 2,
|
||||
GTK_SHELL1_CAPABILITY_DESKTOP_ICONS = 3,
|
||||
};
|
||||
#endif /* GTK_SHELL1_CAPABILITY_ENUM */
|
||||
|
||||
/**
|
||||
* @ingroup iface_gtk_shell1
|
||||
* @struct gtk_shell1_listener
|
||||
*/
|
||||
struct gtk_shell1_listener {
|
||||
/**
|
||||
*/
|
||||
void (*capabilities)(void *data,
|
||||
struct gtk_shell1 *gtk_shell1,
|
||||
uint32_t capabilities);
|
||||
};
|
||||
|
||||
/**
|
||||
* @ingroup iface_gtk_shell1
|
||||
*/
|
||||
static inline int
|
||||
gtk_shell1_add_listener(struct gtk_shell1 *gtk_shell1,
|
||||
const struct gtk_shell1_listener *listener, void *data)
|
||||
{
|
||||
return wl_proxy_add_listener((struct wl_proxy *) gtk_shell1,
|
||||
(void (**)(void)) listener, data);
|
||||
}
|
||||
|
||||
#define GTK_SHELL1_GET_GTK_SURFACE 0
|
||||
#define GTK_SHELL1_SET_STARTUP_ID 1
|
||||
#define GTK_SHELL1_SYSTEM_BELL 2
|
||||
#define GTK_SHELL1_NOTIFY_LAUNCH 3
|
||||
|
||||
/**
|
||||
* @ingroup iface_gtk_shell1
|
||||
*/
|
||||
#define GTK_SHELL1_CAPABILITIES_SINCE_VERSION 1
|
||||
|
||||
/**
|
||||
* @ingroup iface_gtk_shell1
|
||||
*/
|
||||
#define GTK_SHELL1_GET_GTK_SURFACE_SINCE_VERSION 1
|
||||
/**
|
||||
* @ingroup iface_gtk_shell1
|
||||
*/
|
||||
#define GTK_SHELL1_SET_STARTUP_ID_SINCE_VERSION 1
|
||||
/**
|
||||
* @ingroup iface_gtk_shell1
|
||||
*/
|
||||
#define GTK_SHELL1_SYSTEM_BELL_SINCE_VERSION 1
|
||||
/**
|
||||
* @ingroup iface_gtk_shell1
|
||||
*/
|
||||
#define GTK_SHELL1_NOTIFY_LAUNCH_SINCE_VERSION 3
|
||||
|
||||
/** @ingroup iface_gtk_shell1 */
|
||||
static inline void
|
||||
gtk_shell1_set_user_data(struct gtk_shell1 *gtk_shell1, void *user_data)
|
||||
{
|
||||
wl_proxy_set_user_data((struct wl_proxy *) gtk_shell1, user_data);
|
||||
}
|
||||
|
||||
/** @ingroup iface_gtk_shell1 */
|
||||
static inline void *
|
||||
gtk_shell1_get_user_data(struct gtk_shell1 *gtk_shell1)
|
||||
{
|
||||
return wl_proxy_get_user_data((struct wl_proxy *) gtk_shell1);
|
||||
}
|
||||
|
||||
static inline uint32_t
|
||||
gtk_shell1_get_version(struct gtk_shell1 *gtk_shell1)
|
||||
{
|
||||
return wl_proxy_get_version((struct wl_proxy *) gtk_shell1);
|
||||
}
|
||||
|
||||
/** @ingroup iface_gtk_shell1 */
|
||||
static inline void
|
||||
gtk_shell1_destroy(struct gtk_shell1 *gtk_shell1)
|
||||
{
|
||||
wl_proxy_destroy((struct wl_proxy *) gtk_shell1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @ingroup iface_gtk_shell1
|
||||
*/
|
||||
static inline struct gtk_surface1 *
|
||||
gtk_shell1_get_gtk_surface(struct gtk_shell1 *gtk_shell1, struct wl_surface *surface)
|
||||
{
|
||||
struct wl_proxy *gtk_surface;
|
||||
|
||||
gtk_surface = wl_proxy_marshal_constructor((struct wl_proxy *) gtk_shell1,
|
||||
GTK_SHELL1_GET_GTK_SURFACE, >k_surface1_interface, NULL, surface);
|
||||
|
||||
return (struct gtk_surface1 *) gtk_surface;
|
||||
}
|
||||
|
||||
/**
|
||||
* @ingroup iface_gtk_shell1
|
||||
*/
|
||||
static inline void
|
||||
gtk_shell1_set_startup_id(struct gtk_shell1 *gtk_shell1, const char *startup_id)
|
||||
{
|
||||
wl_proxy_marshal((struct wl_proxy *) gtk_shell1,
|
||||
GTK_SHELL1_SET_STARTUP_ID, startup_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* @ingroup iface_gtk_shell1
|
||||
*/
|
||||
static inline void
|
||||
gtk_shell1_system_bell(struct gtk_shell1 *gtk_shell1, struct gtk_surface1 *surface)
|
||||
{
|
||||
wl_proxy_marshal((struct wl_proxy *) gtk_shell1,
|
||||
GTK_SHELL1_SYSTEM_BELL, surface);
|
||||
}
|
||||
|
||||
/**
|
||||
* @ingroup iface_gtk_shell1
|
||||
*/
|
||||
static inline void
|
||||
gtk_shell1_notify_launch(struct gtk_shell1 *gtk_shell1, const char *startup_id)
|
||||
{
|
||||
wl_proxy_marshal((struct wl_proxy *) gtk_shell1,
|
||||
GTK_SHELL1_NOTIFY_LAUNCH, startup_id);
|
||||
}
|
||||
|
||||
#ifndef GTK_SURFACE1_STATE_ENUM
|
||||
#define GTK_SURFACE1_STATE_ENUM
|
||||
enum gtk_surface1_state {
|
||||
GTK_SURFACE1_STATE_TILED = 1,
|
||||
/**
|
||||
* @since 2
|
||||
*/
|
||||
GTK_SURFACE1_STATE_TILED_TOP = 2,
|
||||
/**
|
||||
* @since 2
|
||||
*/
|
||||
GTK_SURFACE1_STATE_TILED_RIGHT = 3,
|
||||
/**
|
||||
* @since 2
|
||||
*/
|
||||
GTK_SURFACE1_STATE_TILED_BOTTOM = 4,
|
||||
/**
|
||||
* @since 2
|
||||
*/
|
||||
GTK_SURFACE1_STATE_TILED_LEFT = 5,
|
||||
};
|
||||
/**
|
||||
* @ingroup iface_gtk_surface1
|
||||
*/
|
||||
#define GTK_SURFACE1_STATE_TILED_TOP_SINCE_VERSION 2
|
||||
/**
|
||||
* @ingroup iface_gtk_surface1
|
||||
*/
|
||||
#define GTK_SURFACE1_STATE_TILED_RIGHT_SINCE_VERSION 2
|
||||
/**
|
||||
* @ingroup iface_gtk_surface1
|
||||
*/
|
||||
#define GTK_SURFACE1_STATE_TILED_BOTTOM_SINCE_VERSION 2
|
||||
/**
|
||||
* @ingroup iface_gtk_surface1
|
||||
*/
|
||||
#define GTK_SURFACE1_STATE_TILED_LEFT_SINCE_VERSION 2
|
||||
#endif /* GTK_SURFACE1_STATE_ENUM */
|
||||
|
||||
#ifndef GTK_SURFACE1_EDGE_CONSTRAINT_ENUM
|
||||
#define GTK_SURFACE1_EDGE_CONSTRAINT_ENUM
|
||||
enum gtk_surface1_edge_constraint {
|
||||
GTK_SURFACE1_EDGE_CONSTRAINT_RESIZABLE_TOP = 1,
|
||||
GTK_SURFACE1_EDGE_CONSTRAINT_RESIZABLE_RIGHT = 2,
|
||||
GTK_SURFACE1_EDGE_CONSTRAINT_RESIZABLE_BOTTOM = 3,
|
||||
GTK_SURFACE1_EDGE_CONSTRAINT_RESIZABLE_LEFT = 4,
|
||||
};
|
||||
#endif /* GTK_SURFACE1_EDGE_CONSTRAINT_ENUM */
|
||||
|
||||
#ifndef GTK_SURFACE1_GESTURE_ENUM
|
||||
#define GTK_SURFACE1_GESTURE_ENUM
|
||||
enum gtk_surface1_gesture {
|
||||
GTK_SURFACE1_GESTURE_DOUBLE_CLICK = 1,
|
||||
GTK_SURFACE1_GESTURE_RIGHT_CLICK = 2,
|
||||
GTK_SURFACE1_GESTURE_MIDDLE_CLICK = 3,
|
||||
};
|
||||
#endif /* GTK_SURFACE1_GESTURE_ENUM */
|
||||
|
||||
#ifndef GTK_SURFACE1_ERROR_ENUM
|
||||
#define GTK_SURFACE1_ERROR_ENUM
|
||||
enum gtk_surface1_error {
|
||||
GTK_SURFACE1_ERROR_INVALID_GESTURE = 0,
|
||||
};
|
||||
#endif /* GTK_SURFACE1_ERROR_ENUM */
|
||||
|
||||
/**
|
||||
* @ingroup iface_gtk_surface1
|
||||
* @struct gtk_surface1_listener
|
||||
*/
|
||||
struct gtk_surface1_listener {
|
||||
/**
|
||||
*/
|
||||
void (*configure)(void *data,
|
||||
struct gtk_surface1 *gtk_surface1,
|
||||
struct wl_array *states);
|
||||
/**
|
||||
* @since 2
|
||||
*/
|
||||
void (*configure_edges)(void *data,
|
||||
struct gtk_surface1 *gtk_surface1,
|
||||
struct wl_array *constraints);
|
||||
};
|
||||
|
||||
/**
|
||||
* @ingroup iface_gtk_surface1
|
||||
*/
|
||||
static inline int
|
||||
gtk_surface1_add_listener(struct gtk_surface1 *gtk_surface1,
|
||||
const struct gtk_surface1_listener *listener, void *data)
|
||||
{
|
||||
return wl_proxy_add_listener((struct wl_proxy *) gtk_surface1,
|
||||
(void (**)(void)) listener, data);
|
||||
}
|
||||
|
||||
#define GTK_SURFACE1_SET_DBUS_PROPERTIES 0
|
||||
#define GTK_SURFACE1_SET_MODAL 1
|
||||
#define GTK_SURFACE1_UNSET_MODAL 2
|
||||
#define GTK_SURFACE1_PRESENT 3
|
||||
#define GTK_SURFACE1_REQUEST_FOCUS 4
|
||||
#define GTK_SURFACE1_RELEASE 5
|
||||
#define GTK_SURFACE1_TITLEBAR_GESTURE 6
|
||||
|
||||
/**
|
||||
* @ingroup iface_gtk_surface1
|
||||
*/
|
||||
#define GTK_SURFACE1_CONFIGURE_SINCE_VERSION 1
|
||||
/**
|
||||
* @ingroup iface_gtk_surface1
|
||||
*/
|
||||
#define GTK_SURFACE1_CONFIGURE_EDGES_SINCE_VERSION 2
|
||||
|
||||
/**
|
||||
* @ingroup iface_gtk_surface1
|
||||
*/
|
||||
#define GTK_SURFACE1_SET_DBUS_PROPERTIES_SINCE_VERSION 1
|
||||
/**
|
||||
* @ingroup iface_gtk_surface1
|
||||
*/
|
||||
#define GTK_SURFACE1_SET_MODAL_SINCE_VERSION 1
|
||||
/**
|
||||
* @ingroup iface_gtk_surface1
|
||||
*/
|
||||
#define GTK_SURFACE1_UNSET_MODAL_SINCE_VERSION 1
|
||||
/**
|
||||
* @ingroup iface_gtk_surface1
|
||||
*/
|
||||
#define GTK_SURFACE1_PRESENT_SINCE_VERSION 1
|
||||
/**
|
||||
* @ingroup iface_gtk_surface1
|
||||
*/
|
||||
#define GTK_SURFACE1_REQUEST_FOCUS_SINCE_VERSION 3
|
||||
/**
|
||||
* @ingroup iface_gtk_surface1
|
||||
*/
|
||||
#define GTK_SURFACE1_RELEASE_SINCE_VERSION 4
|
||||
/**
|
||||
* @ingroup iface_gtk_surface1
|
||||
*/
|
||||
#define GTK_SURFACE1_TITLEBAR_GESTURE_SINCE_VERSION 5
|
||||
|
||||
/** @ingroup iface_gtk_surface1 */
|
||||
static inline void
|
||||
gtk_surface1_set_user_data(struct gtk_surface1 *gtk_surface1, void *user_data)
|
||||
{
|
||||
wl_proxy_set_user_data((struct wl_proxy *) gtk_surface1, user_data);
|
||||
}
|
||||
|
||||
/** @ingroup iface_gtk_surface1 */
|
||||
static inline void *
|
||||
gtk_surface1_get_user_data(struct gtk_surface1 *gtk_surface1)
|
||||
{
|
||||
return wl_proxy_get_user_data((struct wl_proxy *) gtk_surface1);
|
||||
}
|
||||
|
||||
static inline uint32_t
|
||||
gtk_surface1_get_version(struct gtk_surface1 *gtk_surface1)
|
||||
{
|
||||
return wl_proxy_get_version((struct wl_proxy *) gtk_surface1);
|
||||
}
|
||||
|
||||
/** @ingroup iface_gtk_surface1 */
|
||||
static inline void
|
||||
gtk_surface1_destroy(struct gtk_surface1 *gtk_surface1)
|
||||
{
|
||||
wl_proxy_destroy((struct wl_proxy *) gtk_surface1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @ingroup iface_gtk_surface1
|
||||
*/
|
||||
static inline void
|
||||
gtk_surface1_set_dbus_properties(struct gtk_surface1 *gtk_surface1, const char *application_id, const char *app_menu_path, const char *menubar_path, const char *window_object_path, const char *application_object_path, const char *unique_bus_name)
|
||||
{
|
||||
wl_proxy_marshal((struct wl_proxy *) gtk_surface1,
|
||||
GTK_SURFACE1_SET_DBUS_PROPERTIES, application_id, app_menu_path, menubar_path, window_object_path, application_object_path, unique_bus_name);
|
||||
}
|
||||
|
||||
/**
|
||||
* @ingroup iface_gtk_surface1
|
||||
*/
|
||||
static inline void
|
||||
gtk_surface1_set_modal(struct gtk_surface1 *gtk_surface1)
|
||||
{
|
||||
wl_proxy_marshal((struct wl_proxy *) gtk_surface1,
|
||||
GTK_SURFACE1_SET_MODAL);
|
||||
}
|
||||
|
||||
/**
|
||||
* @ingroup iface_gtk_surface1
|
||||
*/
|
||||
static inline void
|
||||
gtk_surface1_unset_modal(struct gtk_surface1 *gtk_surface1)
|
||||
{
|
||||
wl_proxy_marshal((struct wl_proxy *) gtk_surface1,
|
||||
GTK_SURFACE1_UNSET_MODAL);
|
||||
}
|
||||
|
||||
/**
|
||||
* @ingroup iface_gtk_surface1
|
||||
*/
|
||||
static inline void
|
||||
gtk_surface1_present(struct gtk_surface1 *gtk_surface1, uint32_t time)
|
||||
{
|
||||
wl_proxy_marshal((struct wl_proxy *) gtk_surface1,
|
||||
GTK_SURFACE1_PRESENT, time);
|
||||
}
|
||||
|
||||
/**
|
||||
* @ingroup iface_gtk_surface1
|
||||
*/
|
||||
static inline void
|
||||
gtk_surface1_request_focus(struct gtk_surface1 *gtk_surface1, const char *startup_id)
|
||||
{
|
||||
wl_proxy_marshal((struct wl_proxy *) gtk_surface1,
|
||||
GTK_SURFACE1_REQUEST_FOCUS, startup_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* @ingroup iface_gtk_surface1
|
||||
*/
|
||||
static inline void
|
||||
gtk_surface1_release(struct gtk_surface1 *gtk_surface1)
|
||||
{
|
||||
wl_proxy_marshal((struct wl_proxy *) gtk_surface1,
|
||||
GTK_SURFACE1_RELEASE);
|
||||
|
||||
wl_proxy_destroy((struct wl_proxy *) gtk_surface1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @ingroup iface_gtk_surface1
|
||||
*/
|
||||
static inline void
|
||||
gtk_surface1_titlebar_gesture(struct gtk_surface1 *gtk_surface1, uint32_t serial, struct wl_seat *seat, uint32_t gesture)
|
||||
{
|
||||
wl_proxy_marshal((struct wl_proxy *) gtk_surface1,
|
||||
GTK_SURFACE1_TITLEBAR_GESTURE, serial, seat, gesture);
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,73 @@
|
||||
/* Generated by wayland-scanner 1.19.0 */
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include "wayland-util.h"
|
||||
|
||||
#ifndef __has_attribute
|
||||
# define __has_attribute(x) 0 /* Compatibility with non-clang compilers. */
|
||||
#endif
|
||||
|
||||
#if (__has_attribute(visibility) || defined(__GNUC__) && __GNUC__ >= 4)
|
||||
#define WL_PRIVATE __attribute__ ((visibility("hidden")))
|
||||
#else
|
||||
#define WL_PRIVATE
|
||||
#endif
|
||||
|
||||
extern const struct wl_interface gtk_surface1_interface;
|
||||
extern const struct wl_interface wl_seat_interface;
|
||||
extern const struct wl_interface wl_surface_interface;
|
||||
|
||||
static const struct wl_interface *gtk_types[] = {
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
>k_surface1_interface,
|
||||
&wl_surface_interface,
|
||||
>k_surface1_interface,
|
||||
NULL,
|
||||
&wl_seat_interface,
|
||||
NULL,
|
||||
};
|
||||
|
||||
static const struct wl_message gtk_shell1_requests[] = {
|
||||
{ "get_gtk_surface", "no", gtk_types + 6 },
|
||||
{ "set_startup_id", "?s", gtk_types + 0 },
|
||||
{ "system_bell", "?o", gtk_types + 8 },
|
||||
{ "notify_launch", "3s", gtk_types + 0 },
|
||||
};
|
||||
|
||||
static const struct wl_message gtk_shell1_events[] = {
|
||||
{ "capabilities", "u", gtk_types + 0 },
|
||||
};
|
||||
|
||||
WL_PRIVATE const struct wl_interface gtk_shell1_interface = {
|
||||
"gtk_shell1", 5,
|
||||
4, gtk_shell1_requests,
|
||||
1, gtk_shell1_events,
|
||||
};
|
||||
|
||||
static const struct wl_message gtk_surface1_requests[] = {
|
||||
{ "set_dbus_properties", "?s?s?s?s?s?s", gtk_types + 0 },
|
||||
{ "set_modal", "", gtk_types + 0 },
|
||||
{ "unset_modal", "", gtk_types + 0 },
|
||||
{ "present", "u", gtk_types + 0 },
|
||||
{ "request_focus", "3?s", gtk_types + 0 },
|
||||
{ "release", "4", gtk_types + 0 },
|
||||
{ "titlebar_gesture", "5uou", gtk_types + 9 },
|
||||
};
|
||||
|
||||
static const struct wl_message gtk_surface1_events[] = {
|
||||
{ "configure", "a", gtk_types + 0 },
|
||||
{ "configure_edges", "2a", gtk_types + 0 },
|
||||
};
|
||||
|
||||
WL_PRIVATE const struct wl_interface gtk_surface1_interface = {
|
||||
"gtk_surface1", 5,
|
||||
7, gtk_surface1_requests,
|
||||
2, gtk_surface1_events,
|
||||
};
|
||||
|
||||
0
src/java.desktop/unix/native/libawt_wlawt/xdg-activation-v1-client-protocol.h
Executable file → Normal file
0
src/java.desktop/unix/native/libawt_wlawt/xdg-activation-v1-client-protocol.h
Executable file → Normal file
0
src/java.desktop/unix/native/libawt_wlawt/xdg-activation-v1-protocol.c
Executable file → Normal file
0
src/java.desktop/unix/native/libawt_wlawt/xdg-activation-v1-protocol.c
Executable file → Normal file
Reference in New Issue
Block a user