mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-29 16:05:59 +01:00
Merge pull request #1372 from emersion/config10
Use #if instead of #ifdef for wlroots config data
This commit is contained in:
commit
77dfac4fa4
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…
Reference in a new issue