2018-03-04 11:16:14 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#ifndef XWAYLAND_XWM_H
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#define XWAYLAND_XWM_H
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-02 16:59:57 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-08-19 21:25:26 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#include <wayland-server-core.h>
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-27 09:19:44 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#include <wlr/config.h>
							 | 
						
					
						
							
								
									
										
										
										
											2017-08-19 21:25:26 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#include <wlr/xwayland.h>
							 | 
						
					
						
							
								
									
										
										
										
											2018-02-12 21:29:23 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#include <xcb/render.h>
							 | 
						
					
						
							
								
									
										
										
										
											2022-11-25 17:36:24 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#include "config.h"
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#include "xwayland/selection.h"
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2022-11-25 18:15:31 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#if HAVE_XCB_ERRORS
							 | 
						
					
						
							
								
									
										
										
										
											2018-04-03 12:12:57 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#include <xcb/xcb_errors.h>
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-03 17:03:19 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#endif
							 | 
						
					
						
							
								
									
										
										
										
											2018-04-03 12:12:57 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								/* This is in xcb/xcb_event.h, but pulling xcb-util just for a constant
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 * others redefine anyway is meh
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 */
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#define XCB_EVENT_RESPONSE_TYPE_MASK (0x7f)
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-03 17:03:19 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-08-20 07:47:38 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								enum atom_name {
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									WL_SURFACE_ID,
							 | 
						
					
						
							
								
									
										
										
										
											2022-10-18 13:09:17 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									WL_SURFACE_SERIAL,
							 | 
						
					
						
							
								
									
										
										
										
											2017-09-29 23:18:12 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									WM_DELETE_WINDOW,
							 | 
						
					
						
							
								
									
										
										
										
											2017-08-20 07:47:38 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									WM_PROTOCOLS,
							 | 
						
					
						
							
								
									
										
										
										
											2017-10-05 16:24:45 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									WM_HINTS,
							 | 
						
					
						
							
								
									
										
										
										
											2017-10-02 17:34:55 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									WM_NORMAL_HINTS,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									WM_SIZE_HINTS,
							 | 
						
					
						
							
								
									
										
										
										
											2018-09-03 17:07:07 +10:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									WM_WINDOW_ROLE,
							 | 
						
					
						
							
								
									
										
										
										
											2017-10-02 17:34:55 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									MOTIF_WM_HINTS,
							 | 
						
					
						
							
								
									
										
										
										
											2017-09-29 16:44:22 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									UTF8_STRING,
							 | 
						
					
						
							
								
									
										
										
										
											2017-08-20 07:47:38 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									WM_S0,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									NET_SUPPORTED,
							 | 
						
					
						
							
								
									
										
										
										
											2018-10-27 11:59:27 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_WM_CM_S0,
							 | 
						
					
						
							
								
									
										
										
										
											2017-09-29 22:43:14 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_WM_PID,
							 | 
						
					
						
							
								
									
										
										
										
											2017-09-29 15:57:21 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_WM_NAME,
							 | 
						
					
						
							
								
									
										
										
										
											2017-08-20 07:47:38 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_WM_STATE,
							 | 
						
					
						
							
								
									
										
										
										
											2022-11-09 16:09:43 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_WM_STRUT_PARTIAL,
							 | 
						
					
						
							
								
									
										
										
										
											2017-09-29 23:03:01 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_WM_WINDOW_TYPE,
							 | 
						
					
						
							
								
									
										
										
										
											2017-09-28 09:11:16 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									WM_TAKE_FOCUS,
							 | 
						
					
						
							
								
									
										
										
										
											2017-10-24 10:04:33 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									WINDOW,
							 | 
						
					
						
							
								
									
										
										
										
											2020-03-06 12:37:43 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_ACTIVE_WINDOW,
							 | 
						
					
						
							
								
									
										
										
										
											2023-02-17 08:18:41 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_CLOSE_WINDOW,
							 | 
						
					
						
							
								
									
										
										
										
											2020-03-06 12:37:43 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_WM_MOVERESIZE,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									NET_SUPPORTING_WM_CHECK,
							 | 
						
					
						
							
								
									
										
										
										
											2020-07-27 05:41:54 -06:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_WM_STATE_FOCUSED,
							 | 
						
					
						
							
								
									
										
										
										
											2020-03-06 12:37:43 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_WM_STATE_MODAL,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									NET_WM_STATE_FULLSCREEN,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									NET_WM_STATE_MAXIMIZED_VERT,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									NET_WM_STATE_MAXIMIZED_HORZ,
							 | 
						
					
						
							
								
									
										
										
										
											2020-07-18 21:37:02 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_WM_STATE_HIDDEN,
							 | 
						
					
						
							
								
									
										
										
										
											2024-11-21 22:49:47 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_WM_STATE_STICKY,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									NET_WM_STATE_SHADED,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									NET_WM_STATE_SKIP_TASKBAR,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									NET_WM_STATE_SKIP_PAGER,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									NET_WM_STATE_ABOVE,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									NET_WM_STATE_BELOW,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									NET_WM_STATE_DEMANDS_ATTENTION,
							 | 
						
					
						
							
								
									
										
										
										
											2020-03-06 12:37:43 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_WM_PING,
							 | 
						
					
						
							
								
									
										
										
										
											2020-07-18 21:37:02 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									WM_CHANGE_STATE,
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-19 17:55:02 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									WM_STATE,
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-20 08:51:40 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									CLIPBOARD,
							 | 
						
					
						
							
								
									
										
										
										
											2017-12-25 16:10:16 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									PRIMARY,
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-20 08:51:40 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									WL_SELECTION,
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-21 09:25:05 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									TARGETS,
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-21 10:18:44 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									CLIPBOARD_MANAGER,
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-21 18:25:21 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									INCR,
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-22 08:10:06 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									TEXT,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									TIMESTAMP,
							 | 
						
					
						
							
								
									
										
										
										
											2018-04-02 19:56:41 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									DELETE,
							 | 
						
					
						
							
								
									
										
										
										
											2021-01-29 16:45:44 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_STARTUP_ID,
							 | 
						
					
						
							
								
									
										
										
										
											2021-01-29 16:45:44 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_STARTUP_INFO,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									NET_STARTUP_INFO_BEGIN,
							 | 
						
					
						
							
								
									
										
										
										
											2018-04-08 12:02:52 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_WM_WINDOW_TYPE_NORMAL,
							 | 
						
					
						
							
								
									
										
										
										
											2018-02-25 09:57:30 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_WM_WINDOW_TYPE_UTILITY,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									NET_WM_WINDOW_TYPE_TOOLTIP,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									NET_WM_WINDOW_TYPE_DND,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									NET_WM_WINDOW_TYPE_DROPDOWN_MENU,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									NET_WM_WINDOW_TYPE_POPUP_MENU,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									NET_WM_WINDOW_TYPE_COMBO,
							 | 
						
					
						
							
								
									
										
										
										
											2018-04-08 12:02:52 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_WM_WINDOW_TYPE_MENU,
							 | 
						
					
						
							
								
									
										
										
										
											2018-04-26 23:12:21 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_WM_WINDOW_TYPE_NOTIFICATION,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									NET_WM_WINDOW_TYPE_SPLASH,
							 | 
						
					
						
							
								
									
										
										
										
											2024-01-25 19:27:37 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_WM_WINDOW_TYPE_DESKTOP,
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-14 22:54:33 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_WM_WINDOW_TYPE_DOCK,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									NET_WM_WINDOW_TYPE_TOOLBAR,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									NET_WM_WINDOW_TYPE_DIALOG,
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-27 12:04:37 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									DND_SELECTION,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									DND_AWARE,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									DND_STATUS,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									DND_POSITION,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									DND_ENTER,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									DND_LEAVE,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									DND_DROP,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									DND_FINISHED,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									DND_PROXY,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									DND_TYPE_LIST,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									DND_ACTION_MOVE,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									DND_ACTION_COPY,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									DND_ACTION_ASK,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									DND_ACTION_PRIVATE,
							 | 
						
					
						
							
								
									
										
										
										
											2020-03-06 12:37:43 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_CLIENT_LIST,
							 | 
						
					
						
							
								
									
										
										
										
											2021-05-02 12:50:36 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_CLIENT_LIST_STACKING,
							 | 
						
					
						
							
								
									
										
										
										
											2023-10-24 10:33:50 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									NET_WORKAREA,
							 | 
						
					
						
							
								
									
										
										
										
											2020-03-06 12:29:20 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									ATOM_LAST // keep last
							 | 
						
					
						
							
								
									
										
										
										
											2017-08-20 07:47:38 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								};
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-08-19 21:25:26 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								struct wlr_xwm {
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									struct wlr_xwayland *xwayland;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									struct wl_event_source *event_source;
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-22 08:10:06 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct wlr_seat *seat;
							 | 
						
					
						
							
								
									
										
										
										
											2018-04-08 16:28:01 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									uint32_t ping_timeout;
							 | 
						
					
						
							
								
									
										
										
										
											2017-08-19 21:25:26 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-08-20 07:47:38 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									xcb_atom_t atoms[ATOM_LAST];
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									xcb_connection_t *xcb_conn;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									xcb_screen_t *screen;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									xcb_window_t window;
							 | 
						
					
						
							
								
									
										
										
										
											2017-10-27 15:20:50 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									xcb_visualid_t visual_id;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									xcb_colormap_t colormap;
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-02 16:59:57 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									xcb_render_pictformat_t render_format_id;
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-02 11:09:14 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									xcb_cursor_t cursor;
							 | 
						
					
						
							
								
									
										
										
										
											2017-08-20 13:43:04 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-12-25 16:10:16 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct wlr_xwm_selection clipboard_selection;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									struct wlr_xwm_selection primary_selection;
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-28 12:59:11 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct wlr_xwm_selection dnd_selection;
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-27 12:04:37 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-10-24 10:04:33 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct wlr_xwayland_surface *focus_surface;
							 | 
						
					
						
							
								
									
										
										
										
											2024-02-14 06:05:04 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct wlr_xwayland_surface *offered_focus;
							 | 
						
					
						
							
								
									
										
										
										
											2017-10-24 10:04:33 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2021-05-02 12:50:36 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									// Surfaces in creation order
							 | 
						
					
						
							
								
									
										
										
										
											2023-10-02 22:06:44 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct wl_list surfaces; // wlr_xwayland_surface.link
							 | 
						
					
						
							
								
									
										
										
										
											2021-05-02 12:50:36 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									// Surfaces in bottom-to-top stacking order, for _NET_CLIENT_LIST_STACKING
							 | 
						
					
						
							
								
									
										
										
										
											2023-10-02 22:06:44 +03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct wl_list surfaces_in_stack_order; // wlr_xwayland_surface.stack_link
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									struct wl_list unpaired_surfaces; // wlr_xwayland_surface.unpaired_link
							 | 
						
					
						
							
								
									
										
										
										
											2021-01-29 16:45:44 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct wl_list pending_startup_ids; // pending_startup_id
							 | 
						
					
						
							
								
									
										
										
										
											2017-10-15 14:50:21 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-28 14:16:14 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct wlr_drag *drag;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									struct wlr_xwayland_surface *drag_focus;
							 | 
						
					
						
							
								
									
										
										
										
											2024-11-28 04:46:33 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct wlr_xwayland_surface *drop_focus;
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-28 14:16:14 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-10-15 14:50:21 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									const xcb_query_extension_reply_t *xfixes;
							 | 
						
					
						
							
								
									
										
										
										
											2021-04-16 19:27:12 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									const xcb_query_extension_reply_t *xres;
							 | 
						
					
						
							
								
									
										
										
										
											2021-06-25 13:49:47 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									uint32_t xfixes_major_version;
							 | 
						
					
						
							
								
									
										
										
										
											2022-11-25 18:15:31 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#if HAVE_XCB_ERRORS
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-03 17:06:27 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									xcb_errors_context_t *errors_context;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#endif
							 | 
						
					
						
							
								
									
										
										
										
											2020-07-19 14:57:10 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									unsigned int last_focus_seq;
							 | 
						
					
						
							
								
									
										
										
										
											2017-10-24 12:00:43 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2018-02-23 10:20:53 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct wl_listener compositor_new_surface;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									struct wl_listener compositor_destroy;
							 | 
						
					
						
							
								
									
										
										
										
											2022-10-18 13:09:17 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct wl_listener shell_v1_new_surface;
							 | 
						
					
						
							
								
									
										
										
										
											2024-08-13 11:23:47 +08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct wl_listener shell_v1_destroy;
							 | 
						
					
						
							
								
									
										
										
										
											2018-11-29 19:30:04 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct wl_listener seat_set_selection;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									struct wl_listener seat_set_primary_selection;
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-28 12:59:11 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct wl_listener seat_start_drag;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									struct wl_listener seat_drag_focus;
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-28 14:16:14 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct wl_listener seat_drag_motion;
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-28 15:33:23 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct wl_listener seat_drag_drop;
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-28 12:59:11 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct wl_listener seat_drag_destroy;
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-29 11:40:19 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct wl_listener seat_drag_source_destroy;
							 | 
						
					
						
							
								
									
										
										
										
											2024-12-05 20:21:56 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct wl_listener drag_focus_destroy;
							 | 
						
					
						
							
								
									
										
										
										
											2024-11-28 04:46:33 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									struct wl_listener drop_focus_destroy;
							 | 
						
					
						
							
								
									
										
										
										
											2017-08-19 21:25:26 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								};
							 | 
						
					
						
							
								
									
										
										
										
											2017-08-19 17:59:31 +02:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2020-05-05 10:24:08 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								struct wlr_xwm *xwm_create(struct wlr_xwayland *wlr_xwayland, int wm_fd);
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-02 16:49:22 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-08-19 21:25:26 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								void xwm_destroy(struct wlr_xwm *xwm);
							 | 
						
					
						
							
								
									
										
										
										
											2017-10-24 09:21:11 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-02 16:49:22 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								void xwm_set_cursor(struct wlr_xwm *xwm, const uint8_t *pixels, uint32_t stride,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									uint32_t width, uint32_t height, int32_t hotspot_x, int32_t hotspot_y);
							 | 
						
					
						
							
								
									
										
										
										
											2017-08-19 21:25:26 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-20 07:23:17 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								int xwm_handle_selection_event(struct wlr_xwm *xwm, xcb_generic_event_t *event);
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-28 15:33:23 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								int xwm_handle_selection_client_message(struct wlr_xwm *xwm,
							 | 
						
					
						
							
								
									
										
										
										
											2018-04-03 12:12:57 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									xcb_client_message_event_t *ev);
							 | 
						
					
						
							
								
									
										
										
										
											2024-11-22 18:29:37 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								void xwm_seat_unlink_drag_handlers(struct wlr_xwm *xwm);
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-20 08:51:40 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-11-22 08:10:06 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								void xwm_set_seat(struct wlr_xwm *xwm, struct wlr_seat *seat);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-28 21:36:53 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								char *xwm_get_atom_name(struct wlr_xwm *xwm, xcb_atom_t atom);
							 | 
						
					
						
							
								
									
										
										
										
											2018-03-04 11:16:14 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								bool xwm_atoms_contains(struct wlr_xwm *xwm, xcb_atom_t *atoms,
							 | 
						
					
						
							
								
									
										
										
										
											2018-04-03 12:12:57 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									size_t num_atoms, enum atom_name needle);
							 | 
						
					
						
							
								
									
										
										
										
											2018-02-25 09:57:30 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2024-04-20 14:59:40 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								xcb_void_cookie_t xwm_send_event_with_size(xcb_connection_t *c,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									uint8_t propagate, xcb_window_t destination,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									uint32_t event_mask, const void *event, uint32_t length);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2023-08-21 12:16:24 +02:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								void xwm_schedule_flush(struct wlr_xwm *xwm);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2017-08-19 17:59:31 +02:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#endif
							 |