mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-11-03 09:01:40 -05:00 
			
		
		
		
	Use #if instead of #ifdef for wlroots config data
This prevents some annoying issues when e.g. not including wlr/config.h or making a typo in the guard name.
This commit is contained in:
		
							parent
							
								
									3181c4bec0
								
							
						
					
					
						commit
						51bfdd620e
					
				
					 25 changed files with 69 additions and 61 deletions
				
			
		| 
						 | 
					@ -17,8 +17,7 @@
 | 
				
			||||||
#include <wlr/util/log.h>
 | 
					#include <wlr/util/log.h>
 | 
				
			||||||
#include "backend/multi.h"
 | 
					#include "backend/multi.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* WLR_HAS_X11_BACKEND needs to be after wlr/config.h */
 | 
					#if WLR_HAS_X11_BACKEND
 | 
				
			||||||
#ifdef WLR_HAS_X11_BACKEND
 | 
					 | 
				
			||||||
#include <wlr/backend/x11.h>
 | 
					#include <wlr/backend/x11.h>
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -102,7 +101,7 @@ static struct wlr_backend *attempt_wl_backend(struct wl_display *display,
 | 
				
			||||||
	return backend;
 | 
						return backend;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef WLR_HAS_X11_BACKEND
 | 
					#if WLR_HAS_X11_BACKEND
 | 
				
			||||||
static struct wlr_backend *attempt_x11_backend(struct wl_display *display,
 | 
					static struct wlr_backend *attempt_x11_backend(struct wl_display *display,
 | 
				
			||||||
		const char *x11_display, wlr_renderer_create_func_t create_renderer_func) {
 | 
							const char *x11_display, wlr_renderer_create_func_t create_renderer_func) {
 | 
				
			||||||
	struct wlr_backend *backend = wlr_x11_backend_create(display, x11_display, create_renderer_func);
 | 
						struct wlr_backend *backend = wlr_x11_backend_create(display, x11_display, create_renderer_func);
 | 
				
			||||||
| 
						 | 
					@ -165,7 +164,7 @@ static struct wlr_backend *attempt_backend_by_name(struct wl_display *display,
 | 
				
			||||||
		const char *name, wlr_renderer_create_func_t create_renderer_func) {
 | 
							const char *name, wlr_renderer_create_func_t create_renderer_func) {
 | 
				
			||||||
	if (strcmp(name, "wayland") == 0) {
 | 
						if (strcmp(name, "wayland") == 0) {
 | 
				
			||||||
		return attempt_wl_backend(display, create_renderer_func);
 | 
							return attempt_wl_backend(display, create_renderer_func);
 | 
				
			||||||
#ifdef WLR_HAS_X11_BACKEND
 | 
					#if WLR_HAS_X11_BACKEND
 | 
				
			||||||
	} else if (strcmp(name, "x11") == 0) {
 | 
						} else if (strcmp(name, "x11") == 0) {
 | 
				
			||||||
		return attempt_x11_backend(display, NULL, create_renderer_func);
 | 
							return attempt_x11_backend(display, NULL, create_renderer_func);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					@ -248,7 +247,7 @@ struct wlr_backend *wlr_backend_autocreate(struct wl_display *display,
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef WLR_HAS_X11_BACKEND
 | 
					#if WLR_HAS_X11_BACKEND
 | 
				
			||||||
	const char *x11_display = getenv("DISPLAY");
 | 
						const char *x11_display = getenv("DISPLAY");
 | 
				
			||||||
	if (x11_display) {
 | 
						if (x11_display) {
 | 
				
			||||||
		struct wlr_backend *x11_backend =
 | 
							struct wlr_backend *x11_backend =
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,7 +24,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
enum { DRM_MAJOR = 226 };
 | 
					enum { DRM_MAJOR = 226 };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef WLR_HAS_LIBCAP
 | 
					#if WLR_HAS_LIBCAP
 | 
				
			||||||
#include <sys/capability.h>
 | 
					#include <sys/capability.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static bool have_permissions(void) {
 | 
					static bool have_permissions(void) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,10 +15,10 @@
 | 
				
			||||||
#include <wlr/util/log.h>
 | 
					#include <wlr/util/log.h>
 | 
				
			||||||
#include "util/signal.h"
 | 
					#include "util/signal.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef WLR_HAS_SYSTEMD
 | 
					#if WLR_HAS_SYSTEMD
 | 
				
			||||||
	#include <systemd/sd-bus.h>
 | 
						#include <systemd/sd-bus.h>
 | 
				
			||||||
	#include <systemd/sd-login.h>
 | 
						#include <systemd/sd-login.h>
 | 
				
			||||||
#elif defined(WLR_HAS_ELOGIND)
 | 
					#elif WLR_HAS_ELOGIND
 | 
				
			||||||
	#include <elogind/sd-bus.h>
 | 
						#include <elogind/sd-bus.h>
 | 
				
			||||||
	#include <elogind/sd-login.h>
 | 
						#include <elogind/sd-login.h>
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,7 +19,7 @@ extern const struct session_impl session_logind;
 | 
				
			||||||
extern const struct session_impl session_direct;
 | 
					extern const struct session_impl session_direct;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const struct session_impl *impls[] = {
 | 
					static const struct session_impl *impls[] = {
 | 
				
			||||||
#if defined(WLR_HAS_SYSTEMD) || defined(WLR_HAS_ELOGIND)
 | 
					#if WLR_HAS_SYSTEMD || WLR_HAS_ELOGIND
 | 
				
			||||||
	&session_logind,
 | 
						&session_logind,
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	&session_direct,
 | 
						&session_direct,
 | 
				
			||||||
| 
						 | 
					@ -70,7 +70,7 @@ struct wlr_session *wlr_session_create(struct wl_display *disp) {
 | 
				
			||||||
	const char *env_wlr_session = getenv("WLR_SESSION");
 | 
						const char *env_wlr_session = getenv("WLR_SESSION");
 | 
				
			||||||
	if (env_wlr_session) {
 | 
						if (env_wlr_session) {
 | 
				
			||||||
		if (!strcmp(env_wlr_session, "logind") || !strcmp(env_wlr_session, "systemd")) {
 | 
							if (!strcmp(env_wlr_session, "logind") || !strcmp(env_wlr_session, "systemd")) {
 | 
				
			||||||
		#if defined(WLR_HAS_SYSTEMD) || defined(WLR_HAS_ELOGIND)
 | 
							#if WLR_HAS_SYSTEMD || WLR_HAS_ELOGIND
 | 
				
			||||||
			session = session_logind.create(disp);
 | 
								session = session_logind.create(disp);
 | 
				
			||||||
		#else
 | 
							#else
 | 
				
			||||||
			wlr_log(WLR_ERROR, "wlroots is not compiled with logind support");
 | 
								wlr_log(WLR_ERROR, "wlroots is not compiled with logind support");
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,7 +17,7 @@
 | 
				
			||||||
#include <wlr/util/log.h>
 | 
					#include <wlr/util/log.h>
 | 
				
			||||||
#include <X11/Xlib-xcb.h>
 | 
					#include <X11/Xlib-xcb.h>
 | 
				
			||||||
#include <xcb/xcb.h>
 | 
					#include <xcb/xcb.h>
 | 
				
			||||||
#ifdef WLR_HAS_XCB_XKB
 | 
					#if WLR_HAS_XCB_XKB
 | 
				
			||||||
#include <xcb/xkb.h>
 | 
					#include <xcb/xkb.h>
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
#include "backend/x11.h"
 | 
					#include "backend/x11.h"
 | 
				
			||||||
| 
						 | 
					@ -148,7 +148,7 @@ static bool backend_start(struct wlr_backend *backend) {
 | 
				
			||||||
		0, 0);
 | 
							0, 0);
 | 
				
			||||||
	xcb_free_pixmap(x11->xcb_conn, pix);
 | 
						xcb_free_pixmap(x11->xcb_conn, pix);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef WLR_HAS_XCB_XKB
 | 
					#if WLR_HAS_XCB_XKB
 | 
				
			||||||
		const xcb_query_extension_reply_t *reply =
 | 
							const xcb_query_extension_reply_t *reply =
 | 
				
			||||||
			xcb_get_extension_data(x11->xcb_conn, &xcb_xkb_id);
 | 
								xcb_get_extension_data(x11->xcb_conn, &xcb_xkb_id);
 | 
				
			||||||
		if (reply != NULL && reply->present) {
 | 
							if (reply != NULL && reply->present) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,7 +10,7 @@
 | 
				
			||||||
#elif __FreeBSD__
 | 
					#elif __FreeBSD__
 | 
				
			||||||
#include <dev/evdev/input-event-codes.h>
 | 
					#include <dev/evdev/input-event-codes.h>
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
#ifdef WLR_HAS_XCB_XKB
 | 
					#if WLR_HAS_XCB_XKB
 | 
				
			||||||
#include <xcb/xkb.h>
 | 
					#include <xcb/xkb.h>
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
#include "backend/x11.h"
 | 
					#include "backend/x11.h"
 | 
				
			||||||
| 
						 | 
					@ -124,7 +124,7 @@ void handle_x11_input_event(struct wlr_x11_backend *x11,
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	default:
 | 
						default:
 | 
				
			||||||
#ifdef WLR_HAS_XCB_XKB
 | 
					#if WLR_HAS_XCB_XKB
 | 
				
			||||||
		if (x11->xkb_supported && event->response_type == x11->xkb_base_event) {
 | 
							if (x11->xkb_supported && event->response_type == x11->xkb_base_event) {
 | 
				
			||||||
			xcb_xkb_state_notify_event_t *ev =
 | 
								xcb_xkb_state_notify_event_t *ev =
 | 
				
			||||||
				(xcb_xkb_state_notify_event_t *)event;
 | 
									(xcb_xkb_state_notify_event_t *)event;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -20,7 +20,7 @@ foreach lib : x11_optional
 | 
				
			||||||
	dep = dependency(lib, required: get_option(lib))
 | 
						dep = dependency(lib, required: get_option(lib))
 | 
				
			||||||
	if dep.found()
 | 
						if dep.found()
 | 
				
			||||||
		x11_libs += dep
 | 
							x11_libs += dep
 | 
				
			||||||
		conf_data.set('WLR_HAS_' + lib.underscorify().to_upper(), true)
 | 
							conf_data.set10('WLR_HAS_' + lib.underscorify().to_upper(), true)
 | 
				
			||||||
	endif
 | 
						endif
 | 
				
			||||||
endforeach
 | 
					endforeach
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -41,4 +41,4 @@ lib_wlr_backend_x11 = static_library(
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
backend_parts += lib_wlr_backend_x11
 | 
					backend_parts += lib_wlr_backend_x11
 | 
				
			||||||
conf_data.set('WLR_HAS_X11_BACKEND', true)
 | 
					conf_data.set10('WLR_HAS_X11_BACKEND', true)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -64,7 +64,7 @@ struct wlr_x11_backend {
 | 
				
			||||||
	// A blank cursor
 | 
						// A blank cursor
 | 
				
			||||||
	xcb_cursor_t cursor;
 | 
						xcb_cursor_t cursor;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef WLR_HAS_XCB_XKB
 | 
					#if WLR_HAS_XCB_XKB
 | 
				
			||||||
	bool xkb_supported;
 | 
						bool xkb_supported;
 | 
				
			||||||
	uint8_t xkb_base_event;
 | 
						uint8_t xkb_base_event;
 | 
				
			||||||
	uint8_t xkb_base_error;
 | 
						uint8_t xkb_base_error;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -76,7 +76,7 @@ struct roots_desktop {
 | 
				
			||||||
	struct wl_listener virtual_keyboard_new;
 | 
						struct wl_listener virtual_keyboard_new;
 | 
				
			||||||
	struct wl_listener pointer_constraint;
 | 
						struct wl_listener pointer_constraint;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef WLR_HAS_XWAYLAND
 | 
					#if WLR_HAS_XWAYLAND
 | 
				
			||||||
	struct wlr_xwayland *xwayland;
 | 
						struct wlr_xwayland *xwayland;
 | 
				
			||||||
	struct wl_listener xwayland_surface;
 | 
						struct wl_listener xwayland_surface;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,7 +7,7 @@
 | 
				
			||||||
#include <wlr/config.h>
 | 
					#include <wlr/config.h>
 | 
				
			||||||
#include <wlr/render/wlr_renderer.h>
 | 
					#include <wlr/render/wlr_renderer.h>
 | 
				
			||||||
#include <wlr/types/wlr_data_device.h>
 | 
					#include <wlr/types/wlr_data_device.h>
 | 
				
			||||||
#ifdef WLR_HAS_XWAYLAND
 | 
					#if WLR_HAS_XWAYLAND
 | 
				
			||||||
#include <wlr/xwayland.h>
 | 
					#include <wlr/xwayland.h>
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
#include "rootston/config.h"
 | 
					#include "rootston/config.h"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -79,7 +79,7 @@ enum roots_view_type {
 | 
				
			||||||
	ROOTS_WL_SHELL_VIEW,
 | 
						ROOTS_WL_SHELL_VIEW,
 | 
				
			||||||
	ROOTS_XDG_SHELL_V6_VIEW,
 | 
						ROOTS_XDG_SHELL_V6_VIEW,
 | 
				
			||||||
	ROOTS_XDG_SHELL_VIEW,
 | 
						ROOTS_XDG_SHELL_VIEW,
 | 
				
			||||||
#ifdef WLR_HAS_XWAYLAND
 | 
					#if WLR_HAS_XWAYLAND
 | 
				
			||||||
	ROOTS_XWAYLAND_VIEW,
 | 
						ROOTS_XWAYLAND_VIEW,
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
| 
						 | 
					@ -117,7 +117,7 @@ struct roots_view {
 | 
				
			||||||
		struct wlr_wl_shell_surface *wl_shell_surface;
 | 
							struct wlr_wl_shell_surface *wl_shell_surface;
 | 
				
			||||||
		struct wlr_xdg_surface_v6 *xdg_surface_v6;
 | 
							struct wlr_xdg_surface_v6 *xdg_surface_v6;
 | 
				
			||||||
		struct wlr_xdg_surface *xdg_surface;
 | 
							struct wlr_xdg_surface *xdg_surface;
 | 
				
			||||||
#ifdef WLR_HAS_XWAYLAND
 | 
					#if WLR_HAS_XWAYLAND
 | 
				
			||||||
		struct wlr_xwayland_surface *xwayland_surface;
 | 
							struct wlr_xwayland_surface *xwayland_surface;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
| 
						 | 
					@ -125,7 +125,7 @@ struct roots_view {
 | 
				
			||||||
		struct roots_wl_shell_surface *roots_wl_shell_surface;
 | 
							struct roots_wl_shell_surface *roots_wl_shell_surface;
 | 
				
			||||||
		struct roots_xdg_surface_v6 *roots_xdg_surface_v6;
 | 
							struct roots_xdg_surface_v6 *roots_xdg_surface_v6;
 | 
				
			||||||
		struct roots_xdg_surface *roots_xdg_surface;
 | 
							struct roots_xdg_surface *roots_xdg_surface;
 | 
				
			||||||
#ifdef WLR_HAS_XWAYLAND
 | 
					#if WLR_HAS_XWAYLAND
 | 
				
			||||||
		struct roots_xwayland_surface *roots_xwayland_surface;
 | 
							struct roots_xwayland_surface *roots_xwayland_surface;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,7 +9,7 @@ install_headers(
 | 
				
			||||||
	subdir: 'wlr/backend',
 | 
						subdir: 'wlr/backend',
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if conf_data.get('WLR_HAS_X11_BACKEND', false)
 | 
					if conf_data.get('WLR_HAS_X11_BACKEND', 0) == 1
 | 
				
			||||||
	install_headers('x11.h', subdir: 'wlr/backend')
 | 
						install_headers('x11.h', subdir: 'wlr/backend')
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,7 +15,7 @@ install_headers(
 | 
				
			||||||
	'xcursor.h',
 | 
						'xcursor.h',
 | 
				
			||||||
	subdir: 'wlr'
 | 
						subdir: 'wlr'
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
if conf_data.get('WLR_HAS_XWAYLAND', false)
 | 
					if conf_data.get('WLR_HAS_XWAYLAND', 0) == 1
 | 
				
			||||||
	install_headers('xwayland.h', subdir: 'wlr')
 | 
						install_headers('xwayland.h', subdir: 'wlr')
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,7 +11,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <wlr/config.h>
 | 
					#include <wlr/config.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if !(defined(WLR_HAS_X11_BACKEND) || defined(WLR_HAS_WAYLAND))
 | 
					#if !WLR_HAS_X11_BACKEND && !WLR_HAS_XWAYLAND
 | 
				
			||||||
#define MESA_EGL_NO_X11_HEADERS
 | 
					#define MESA_EGL_NO_X11_HEADERS
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,7 +11,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <wlr/config.h>
 | 
					#include <wlr/config.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if !(defined(WLR_HAS_X11_BACKEND) || defined(WLR_HAS_WAYLAND))
 | 
					#if !WLR_HAS_X11_BACKEND && !WLR_HAS_XWAYLAND
 | 
				
			||||||
#define MESA_EGL_NO_X11_HEADERS
 | 
					#define MESA_EGL_NO_X11_HEADERS
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,10 +5,10 @@
 | 
				
			||||||
#include <wlr/config.h>
 | 
					#include <wlr/config.h>
 | 
				
			||||||
#include <wlr/xwayland.h>
 | 
					#include <wlr/xwayland.h>
 | 
				
			||||||
#include <xcb/render.h>
 | 
					#include <xcb/render.h>
 | 
				
			||||||
#ifdef WLR_HAS_XCB_ICCCM
 | 
					#if WLR_HAS_XCB_ICCCM
 | 
				
			||||||
#include <xcb/xcb_icccm.h>
 | 
					#include <xcb/xcb_icccm.h>
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
#ifdef WLR_HAS_XCB_ERRORS
 | 
					#if WLR_HAS_XCB_ERRORS
 | 
				
			||||||
#include <xcb/xcb_errors.h>
 | 
					#include <xcb/xcb_errors.h>
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
#include "xwayland/selection.h"
 | 
					#include "xwayland/selection.h"
 | 
				
			||||||
| 
						 | 
					@ -122,7 +122,7 @@ struct wlr_xwm {
 | 
				
			||||||
	struct wlr_xwayland_surface *drag_focus;
 | 
						struct wlr_xwayland_surface *drag_focus;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	const xcb_query_extension_reply_t *xfixes;
 | 
						const xcb_query_extension_reply_t *xfixes;
 | 
				
			||||||
#ifdef WLR_HAS_XCB_ERRORS
 | 
					#if WLR_HAS_XCB_ERRORS
 | 
				
			||||||
	xcb_errors_context_t *errors_context;
 | 
						xcb_errors_context_t *errors_context;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										25
									
								
								meson.build
									
										
									
									
									
								
							
							
						
						
									
										25
									
								
								meson.build
									
										
									
									
									
								
							| 
						 | 
					@ -16,17 +16,26 @@ project(
 | 
				
			||||||
# for a reference about clean library versioning.
 | 
					# for a reference about clean library versioning.
 | 
				
			||||||
so_version = ['0', '0', '0']
 | 
					so_version = ['0', '0', '0']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_project_arguments('-Wno-unused-parameter', language: 'c')
 | 
					 | 
				
			||||||
add_project_arguments(
 | 
					add_project_arguments(
 | 
				
			||||||
	'-DWLR_SRC_DIR="@0@"'.format(meson.current_source_dir()),
 | 
						[
 | 
				
			||||||
	language: 'c',
 | 
							'-DWLR_SRC_DIR="@0@"'.format(meson.current_source_dir()),
 | 
				
			||||||
)
 | 
							'-DWLR_USE_UNSTABLE',
 | 
				
			||||||
add_project_arguments(
 | 
					
 | 
				
			||||||
	'-DWLR_USE_UNSTABLE',
 | 
							'-Wno-unused-parameter',
 | 
				
			||||||
 | 
							'-Wundef',
 | 
				
			||||||
 | 
						],
 | 
				
			||||||
	language: 'c',
 | 
						language: 'c',
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
conf_data = configuration_data()
 | 
					conf_data = configuration_data()
 | 
				
			||||||
 | 
					conf_data.set10('WLR_HAS_LIBCAP', false)
 | 
				
			||||||
 | 
					conf_data.set10('WLR_HAS_SYSTEMD', false)
 | 
				
			||||||
 | 
					conf_data.set10('WLR_HAS_ELOGIND', false)
 | 
				
			||||||
 | 
					conf_data.set10('WLR_HAS_X11_BACKEND', false)
 | 
				
			||||||
 | 
					conf_data.set10('WLR_HAS_XWAYLAND', false)
 | 
				
			||||||
 | 
					conf_data.set10('WLR_HAS_XCB_ERRORS', false)
 | 
				
			||||||
 | 
					conf_data.set10('WLR_HAS_XCB_ICCCM', false)
 | 
				
			||||||
 | 
					conf_data.set10('WLR_HAS_XCB_XKB', false)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
wlr_inc = include_directories('.', 'include')
 | 
					wlr_inc = include_directories('.', 'include')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -63,12 +72,12 @@ wlr_parts = []
 | 
				
			||||||
wlr_deps = []
 | 
					wlr_deps = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if libcap.found()
 | 
					if libcap.found()
 | 
				
			||||||
	conf_data.set('WLR_HAS_LIBCAP', true)
 | 
						conf_data.set10('WLR_HAS_LIBCAP', true)
 | 
				
			||||||
	wlr_deps += libcap
 | 
						wlr_deps += libcap
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if logind.found()
 | 
					if logind.found()
 | 
				
			||||||
	conf_data.set('WLR_HAS_' + get_option('logind-provider').to_upper(), true)
 | 
						conf_data.set10('WLR_HAS_' + get_option('logind-provider').to_upper(), true)
 | 
				
			||||||
	wlr_deps += logind
 | 
						wlr_deps += logind
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -619,7 +619,7 @@ static bool view_at(struct roots_view *view, double lx, double ly,
 | 
				
			||||||
		_surface = wlr_wl_shell_surface_surface_at(view->wl_shell_surface,
 | 
							_surface = wlr_wl_shell_surface_surface_at(view->wl_shell_surface,
 | 
				
			||||||
			view_sx, view_sy, &_sx, &_sy);
 | 
								view_sx, view_sy, &_sx, &_sy);
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
#ifdef WLR_HAS_XWAYLAND
 | 
					#if WLR_HAS_XWAYLAND
 | 
				
			||||||
	case ROOTS_XWAYLAND_VIEW:
 | 
						case ROOTS_XWAYLAND_VIEW:
 | 
				
			||||||
		_surface = wlr_surface_surface_at(view->wlr_surface,
 | 
							_surface = wlr_surface_surface_at(view->wlr_surface,
 | 
				
			||||||
			view_sx, view_sy, &_sx, &_sy);
 | 
								view_sx, view_sy, &_sx, &_sy);
 | 
				
			||||||
| 
						 | 
					@ -890,14 +890,14 @@ struct roots_desktop *desktop_create(struct roots_server *server,
 | 
				
			||||||
	desktop->tablet_v2 = wlr_tablet_v2_create(server->wl_display);
 | 
						desktop->tablet_v2 = wlr_tablet_v2_create(server->wl_display);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	const char *cursor_theme = NULL;
 | 
						const char *cursor_theme = NULL;
 | 
				
			||||||
#ifdef WLR_HAS_XWAYLAND
 | 
					#if WLR_HAS_XWAYLAND
 | 
				
			||||||
	const char *cursor_default = ROOTS_XCURSOR_DEFAULT;
 | 
						const char *cursor_default = ROOTS_XCURSOR_DEFAULT;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	struct roots_cursor_config *cc =
 | 
						struct roots_cursor_config *cc =
 | 
				
			||||||
		roots_config_get_cursor(config, ROOTS_CONFIG_DEFAULT_SEAT_NAME);
 | 
							roots_config_get_cursor(config, ROOTS_CONFIG_DEFAULT_SEAT_NAME);
 | 
				
			||||||
	if (cc != NULL) {
 | 
						if (cc != NULL) {
 | 
				
			||||||
		cursor_theme = cc->theme;
 | 
							cursor_theme = cc->theme;
 | 
				
			||||||
#ifdef WLR_HAS_XWAYLAND
 | 
					#if WLR_HAS_XWAYLAND
 | 
				
			||||||
		if (cc->default_image != NULL) {
 | 
							if (cc->default_image != NULL) {
 | 
				
			||||||
			cursor_default = cc->default_image;
 | 
								cursor_default = cc->default_image;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					@ -912,7 +912,7 @@ struct roots_desktop *desktop_create(struct roots_server *server,
 | 
				
			||||||
		setenv("XCURSOR_THEME", cursor_theme, 1);
 | 
							setenv("XCURSOR_THEME", cursor_theme, 1);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef WLR_HAS_XWAYLAND
 | 
					#if WLR_HAS_XWAYLAND
 | 
				
			||||||
	desktop->xcursor_manager = wlr_xcursor_manager_create(cursor_theme,
 | 
						desktop->xcursor_manager = wlr_xcursor_manager_create(cursor_theme,
 | 
				
			||||||
		ROOTS_XCURSOR_SIZE);
 | 
							ROOTS_XCURSOR_SIZE);
 | 
				
			||||||
	if (desktop->xcursor_manager == NULL) {
 | 
						if (desktop->xcursor_manager == NULL) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,7 +8,7 @@
 | 
				
			||||||
#include <wlr/types/wlr_cursor.h>
 | 
					#include <wlr/types/wlr_cursor.h>
 | 
				
			||||||
#include <wlr/util/log.h>
 | 
					#include <wlr/util/log.h>
 | 
				
			||||||
#include <wlr/xcursor.h>
 | 
					#include <wlr/xcursor.h>
 | 
				
			||||||
#ifdef WLR_HAS_XWAYLAND
 | 
					#if WLR_HAS_XWAYLAND
 | 
				
			||||||
#include <wlr/xwayland.h>
 | 
					#include <wlr/xwayland.h>
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
#include "rootston/config.h"
 | 
					#include "rootston/config.h"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -53,7 +53,7 @@ int main(int argc, char **argv) {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	setenv("WAYLAND_DISPLAY", socket, true);
 | 
						setenv("WAYLAND_DISPLAY", socket, true);
 | 
				
			||||||
#ifdef WLR_HAS_XWAYLAND
 | 
					#if WLR_HAS_XWAYLAND
 | 
				
			||||||
	if (server.desktop->xwayland != NULL) {
 | 
						if (server.desktop->xwayland != NULL) {
 | 
				
			||||||
		struct roots_seat *xwayland_seat =
 | 
							struct roots_seat *xwayland_seat =
 | 
				
			||||||
			input_get_seat(server.input, ROOTS_CONFIG_DEFAULT_SEAT_NAME);
 | 
								input_get_seat(server.input, ROOTS_CONFIG_DEFAULT_SEAT_NAME);
 | 
				
			||||||
| 
						 | 
					@ -72,7 +72,7 @@ int main(int argc, char **argv) {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	wl_display_run(server.wl_display);
 | 
						wl_display_run(server.wl_display);
 | 
				
			||||||
#ifdef WLR_HAS_XWAYLAND
 | 
					#if WLR_HAS_XWAYLAND
 | 
				
			||||||
	wlr_xwayland_destroy(server.desktop->xwayland);
 | 
						wlr_xwayland_destroy(server.desktop->xwayland);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	wl_display_destroy_clients(server.wl_display);
 | 
						wl_display_destroy_clients(server.wl_display);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,7 +16,7 @@ sources = [
 | 
				
			||||||
	'xdg_shell_v6.c',
 | 
						'xdg_shell_v6.c',
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if conf_data.get('WLR_HAS_XWAYLAND', false)
 | 
					if conf_data.get('WLR_HAS_XWAYLAND', 0) == 1
 | 
				
			||||||
	sources += 'xwayland.c'
 | 
						sources += 'xwayland.c'
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -86,7 +86,7 @@ static void view_for_each_surface(struct roots_view *view,
 | 
				
			||||||
		wlr_wl_shell_surface_for_each_surface(view->wl_shell_surface, iterator,
 | 
							wlr_wl_shell_surface_for_each_surface(view->wl_shell_surface, iterator,
 | 
				
			||||||
			user_data);
 | 
								user_data);
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
#ifdef WLR_HAS_XWAYLAND
 | 
					#if WLR_HAS_XWAYLAND
 | 
				
			||||||
	case ROOTS_XWAYLAND_VIEW:
 | 
						case ROOTS_XWAYLAND_VIEW:
 | 
				
			||||||
		wlr_surface_for_each_surface(view->wlr_surface, iterator, user_data);
 | 
							wlr_surface_for_each_surface(view->wlr_surface, iterator, user_data);
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
| 
						 | 
					@ -94,7 +94,7 @@ static void view_for_each_surface(struct roots_view *view,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef WLR_HAS_XWAYLAND
 | 
					#if WLR_HAS_XWAYLAND
 | 
				
			||||||
static void xwayland_children_for_each_surface(
 | 
					static void xwayland_children_for_each_surface(
 | 
				
			||||||
		struct wlr_xwayland_surface *surface,
 | 
							struct wlr_xwayland_surface *surface,
 | 
				
			||||||
		wlr_surface_iterator_func_t iterator, struct layout_data *layout_data,
 | 
							wlr_surface_iterator_func_t iterator, struct layout_data *layout_data,
 | 
				
			||||||
| 
						 | 
					@ -164,7 +164,7 @@ static void output_for_each_surface(struct roots_output *output,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		view_for_each_surface(view, layout_data, iterator, user_data);
 | 
							view_for_each_surface(view, layout_data, iterator, user_data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef WLR_HAS_XWAYLAND
 | 
					#if WLR_HAS_XWAYLAND
 | 
				
			||||||
		if (view->type == ROOTS_XWAYLAND_VIEW) {
 | 
							if (view->type == ROOTS_XWAYLAND_VIEW) {
 | 
				
			||||||
			xwayland_children_for_each_surface(view->xwayland_surface,
 | 
								xwayland_children_for_each_surface(view->xwayland_surface,
 | 
				
			||||||
				iterator, layout_data, user_data);
 | 
									iterator, layout_data, user_data);
 | 
				
			||||||
| 
						 | 
					@ -400,7 +400,7 @@ static bool has_standalone_surface(struct roots_view *view) {
 | 
				
			||||||
		return wl_list_empty(&view->xdg_surface->popups);
 | 
							return wl_list_empty(&view->xdg_surface->popups);
 | 
				
			||||||
	case ROOTS_WL_SHELL_VIEW:
 | 
						case ROOTS_WL_SHELL_VIEW:
 | 
				
			||||||
		return wl_list_empty(&view->wl_shell_surface->popups);
 | 
							return wl_list_empty(&view->wl_shell_surface->popups);
 | 
				
			||||||
#ifdef WLR_HAS_XWAYLAND
 | 
					#if WLR_HAS_XWAYLAND
 | 
				
			||||||
	case ROOTS_XWAYLAND_VIEW:
 | 
						case ROOTS_XWAYLAND_VIEW:
 | 
				
			||||||
		return wl_list_empty(&view->xwayland_surface->children);
 | 
							return wl_list_empty(&view->xwayland_surface->children);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					@ -530,7 +530,7 @@ static void render_output(struct roots_output *output) {
 | 
				
			||||||
		// During normal rendering the xwayland window tree isn't traversed
 | 
							// During normal rendering the xwayland window tree isn't traversed
 | 
				
			||||||
		// because all windows are rendered. Here we only want to render
 | 
							// because all windows are rendered. Here we only want to render
 | 
				
			||||||
		// the fullscreen window's children so we have to traverse the tree.
 | 
							// the fullscreen window's children so we have to traverse the tree.
 | 
				
			||||||
#ifdef WLR_HAS_XWAYLAND
 | 
					#if WLR_HAS_XWAYLAND
 | 
				
			||||||
		if (view->type == ROOTS_XWAYLAND_VIEW) {
 | 
							if (view->type == ROOTS_XWAYLAND_VIEW) {
 | 
				
			||||||
			xwayland_children_for_each_surface(view->xwayland_surface,
 | 
								xwayland_children_for_each_surface(view->xwayland_surface,
 | 
				
			||||||
				render_surface, &data.layout, &data);
 | 
									render_surface, &data.layout, &data);
 | 
				
			||||||
| 
						 | 
					@ -593,7 +593,7 @@ static bool view_accept_damage(struct roots_output *output,
 | 
				
			||||||
	if (output->fullscreen_view == view) {
 | 
						if (output->fullscreen_view == view) {
 | 
				
			||||||
		return true;
 | 
							return true;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
#ifdef WLR_HAS_XWAYLAND
 | 
					#if WLR_HAS_XWAYLAND
 | 
				
			||||||
	if (output->fullscreen_view->type == ROOTS_XWAYLAND_VIEW &&
 | 
						if (output->fullscreen_view->type == ROOTS_XWAYLAND_VIEW &&
 | 
				
			||||||
			view->type == ROOTS_XWAYLAND_VIEW) {
 | 
								view->type == ROOTS_XWAYLAND_VIEW) {
 | 
				
			||||||
		// Special case: accept damage from children
 | 
							// Special case: accept damage from children
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1131,7 +1131,7 @@ void roots_seat_set_focus(struct roots_seat *seat, struct roots_view *view) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	bool unfullscreen = true;
 | 
						bool unfullscreen = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef WLR_HAS_XWAYLAND
 | 
					#if WLR_HAS_XWAYLAND
 | 
				
			||||||
	if (view && view->type == ROOTS_XWAYLAND_VIEW &&
 | 
						if (view && view->type == ROOTS_XWAYLAND_VIEW &&
 | 
				
			||||||
			view->xwayland_surface->override_redirect) {
 | 
								view->xwayland_surface->override_redirect) {
 | 
				
			||||||
		unfullscreen = false;
 | 
							unfullscreen = false;
 | 
				
			||||||
| 
						 | 
					@ -1160,7 +1160,7 @@ void roots_seat_set_focus(struct roots_seat *seat, struct roots_view *view) {
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef WLR_HAS_XWAYLAND
 | 
					#if WLR_HAS_XWAYLAND
 | 
				
			||||||
	if (view && view->type == ROOTS_XWAYLAND_VIEW &&
 | 
						if (view && view->type == ROOTS_XWAYLAND_VIEW &&
 | 
				
			||||||
			!wlr_xwayland_or_surface_wants_focus(
 | 
								!wlr_xwayland_or_surface_wants_focus(
 | 
				
			||||||
				view->xwayland_surface)) {
 | 
									view->xwayland_surface)) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,7 +23,7 @@ foreach lib : xwayland_optional
 | 
				
			||||||
	dep = dependency(lib, required: get_option(lib))
 | 
						dep = dependency(lib, required: get_option(lib))
 | 
				
			||||||
	if dep.found()
 | 
						if dep.found()
 | 
				
			||||||
		xwayland_libs += dep
 | 
							xwayland_libs += dep
 | 
				
			||||||
		conf_data.set('WLR_HAS_' + lib.underscorify().to_upper(), true)
 | 
							conf_data.set10('WLR_HAS_' + lib.underscorify().to_upper(), true)
 | 
				
			||||||
	endif
 | 
						endif
 | 
				
			||||||
endforeach
 | 
					endforeach
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -48,4 +48,4 @@ lib_wlr_xwayland = static_library(
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
wlr_parts += lib_wlr_xwayland
 | 
					wlr_parts += lib_wlr_xwayland
 | 
				
			||||||
conf_data.set('WLR_HAS_XWAYLAND', true)
 | 
					conf_data.set10('WLR_HAS_XWAYLAND', true)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -502,7 +502,7 @@ static void read_surface_protocols(struct wlr_xwm *xwm,
 | 
				
			||||||
	wlr_log(WLR_DEBUG, "WM_PROTOCOLS (%zu)", atoms_len);
 | 
						wlr_log(WLR_DEBUG, "WM_PROTOCOLS (%zu)", atoms_len);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef WLR_HAS_XCB_ICCCM
 | 
					#if WLR_HAS_XCB_ICCCM
 | 
				
			||||||
static void read_surface_hints(struct wlr_xwm *xwm,
 | 
					static void read_surface_hints(struct wlr_xwm *xwm,
 | 
				
			||||||
		struct wlr_xwayland_surface *xsurface,
 | 
							struct wlr_xwayland_surface *xsurface,
 | 
				
			||||||
		xcb_get_property_reply_t *reply) {
 | 
							xcb_get_property_reply_t *reply) {
 | 
				
			||||||
| 
						 | 
					@ -540,7 +540,7 @@ static void read_surface_hints(struct wlr_xwm *xwm,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef WLR_HAS_XCB_ICCCM
 | 
					#if WLR_HAS_XCB_ICCCM
 | 
				
			||||||
static void read_surface_normal_hints(struct wlr_xwm *xwm,
 | 
					static void read_surface_normal_hints(struct wlr_xwm *xwm,
 | 
				
			||||||
		struct wlr_xwayland_surface *xsurface,
 | 
							struct wlr_xwayland_surface *xsurface,
 | 
				
			||||||
		xcb_get_property_reply_t *reply) {
 | 
							xcb_get_property_reply_t *reply) {
 | 
				
			||||||
| 
						 | 
					@ -1195,7 +1195,7 @@ static void xwm_handle_focus_in(struct wlr_xwm *xwm,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void xwm_handle_xcb_error(struct wlr_xwm *xwm, xcb_value_error_t *ev) {
 | 
					static void xwm_handle_xcb_error(struct wlr_xwm *xwm, xcb_value_error_t *ev) {
 | 
				
			||||||
#ifdef WLR_HAS_XCB_ERRORS
 | 
					#if WLR_HAS_XCB_ERRORS
 | 
				
			||||||
	const char *major_name =
 | 
						const char *major_name =
 | 
				
			||||||
		xcb_errors_get_name_for_major_code(xwm->errors_context,
 | 
							xcb_errors_get_name_for_major_code(xwm->errors_context,
 | 
				
			||||||
			ev->major_opcode);
 | 
								ev->major_opcode);
 | 
				
			||||||
| 
						 | 
					@ -1233,7 +1233,7 @@ log_raw:
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void xwm_handle_unhandled_event(struct wlr_xwm *xwm, xcb_generic_event_t *ev) {
 | 
					static void xwm_handle_unhandled_event(struct wlr_xwm *xwm, xcb_generic_event_t *ev) {
 | 
				
			||||||
#ifdef WLR_HAS_XCB_ERRORS
 | 
					#if WLR_HAS_XCB_ERRORS
 | 
				
			||||||
	const char *extension;
 | 
						const char *extension;
 | 
				
			||||||
	const char *event_name =
 | 
						const char *event_name =
 | 
				
			||||||
		xcb_errors_get_name_for_xcb_event(xwm->errors_context,
 | 
							xcb_errors_get_name_for_xcb_event(xwm->errors_context,
 | 
				
			||||||
| 
						 | 
					@ -1418,7 +1418,7 @@ void xwm_destroy(struct wlr_xwm *xwm) {
 | 
				
			||||||
	if (xwm->event_source) {
 | 
						if (xwm->event_source) {
 | 
				
			||||||
		wl_event_source_remove(xwm->event_source);
 | 
							wl_event_source_remove(xwm->event_source);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
#ifdef WLR_HAS_XCB_ERRORS
 | 
					#if WLR_HAS_XCB_ERRORS
 | 
				
			||||||
	if (xwm->errors_context) {
 | 
						if (xwm->errors_context) {
 | 
				
			||||||
		xcb_errors_context_free(xwm->errors_context);
 | 
							xcb_errors_context_free(xwm->errors_context);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -1659,7 +1659,7 @@ struct wlr_xwm *xwm_create(struct wlr_xwayland *wlr_xwayland) {
 | 
				
			||||||
		return NULL;
 | 
							return NULL;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef WLR_HAS_XCB_ERRORS
 | 
					#if WLR_HAS_XCB_ERRORS
 | 
				
			||||||
	if (xcb_errors_context_new(xwm->xcb_conn, &xwm->errors_context)) {
 | 
						if (xcb_errors_context_new(xwm->xcb_conn, &xwm->errors_context)) {
 | 
				
			||||||
		wlr_log(WLR_ERROR, "Could not allocate error context");
 | 
							wlr_log(WLR_ERROR, "Could not allocate error context");
 | 
				
			||||||
		xwm_destroy(xwm);
 | 
							xwm_destroy(xwm);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue