aboutsummaryrefslogtreecommitdiff
path: root/include/xwayland/internals.h
diff options
context:
space:
mode:
authorDominique Martinet <asmadeus@codewreck.org>2017-08-20 07:47:38 +0200
committerDominique Martinet <asmadeus@codewreck.org>2017-08-23 22:03:49 +0200
commitfa0e1015c6f06f08fe368f89af511ef646f0bc99 (patch)
tree9e22da19d54e22bd72c014eefebc6963c7b63c2f /include/xwayland/internals.h
parent6eb20fb8d28749e0b710a54daa1b916080cf4ea1 (diff)
xwm: fix minimal init, this gets us some events on window creations
Diffstat (limited to 'include/xwayland/internals.h')
-rw-r--r--include/xwayland/internals.h68
1 files changed, 66 insertions, 2 deletions
diff --git a/include/xwayland/internals.h b/include/xwayland/internals.h
index 46158bd0..97c7e31a 100644
--- a/include/xwayland/internals.h
+++ b/include/xwayland/internals.h
@@ -4,13 +4,77 @@
#include <wayland-server-core.h>
#include <wlr/xwayland.h>
+/* wlc's atom list:
+ WL_SURFACE_ID,
+ WM_DELETE_WINDOW,
+ WM_TAKE_FOCUS,
+ WM_PROTOCOLS,
+ WM_NORMAL_HINTS,
+ MOTIF_WM_HINTS,
+ TEXT,
+ UTF8_STRING,
+ CLIPBOARD,
+ CLIPBOARD_MANAGER,
+ TARGETS,
+ PRIMARY,
+ WM_S0,
+ STRING,
+ WLC_SELECTION,
+ NET_WM_S0,
+ NET_WM_PID,
+ NET_WM_NAME,
+ NET_WM_STATE,
+ NET_WM_STATE_FULLSCREEN,
+ NET_WM_STATE_MODAL,
+ NET_WM_STATE_ABOVE,
+ NET_SUPPORTED,
+ NET_SUPPORTING_WM_CHECK,
+ NET_WM_WINDOW_TYPE,
+ NET_WM_WINDOW_TYPE_DESKTOP,
+ NET_WM_WINDOW_TYPE_DOCK,
+ NET_WM_WINDOW_TYPE_TOOLBAR,
+ NET_WM_WINDOW_TYPE_MENU,
+ NET_WM_WINDOW_TYPE_UTILITY,
+ NET_WM_WINDOW_TYPE_SPLASH,
+ NET_WM_WINDOW_TYPE_DIALOG,
+ NET_WM_WINDOW_TYPE_DROPDOWN_MENU,
+ NET_WM_WINDOW_TYPE_POPUP_MENU,
+ NET_WM_WINDOW_TYPE_TOOLTIP,
+ NET_WM_WINDOW_TYPE_NOTIFICATION,
+ NET_WM_WINDOW_TYPE_COMBO,
+ NET_WM_WINDOW_TYPE_DND,
+ NET_WM_WINDOW_TYPE_NORMAL,
+ */
+
+enum atom_name {
+ WL_SURFACE_ID,
+ WM_PROTOCOLS,
+ WM_S0,
+ NET_SUPPORTED,
+ NET_WM_S0,
+ NET_WM_STATE,
+ ATOM_LAST
+};
+
+static const char * const atom_map[ATOM_LAST] = {
+ "WL_SURFACE_ID",
+ "WM_PROTOCOLS",
+ "WM_S0",
+ "_NET_SUPPORTED",
+ "_NET_WM_S0",
+ "_NET_WM_STATE",
+};
+
+
struct wlr_xwm {
struct wlr_xwayland *xwayland;
struct wl_event_source *event_source;
struct wl_listener surface_listener;
- xcb_connection_t *xcb_connection;
- xcb_screen_t *xcb_screen;
+ xcb_atom_t atoms[ATOM_LAST];
+ xcb_connection_t *xcb_conn;
+ xcb_screen_t *screen;
+ xcb_window_t window;
};
void unlink_sockets(int display);