Merge pull request #3147 from emersion/set10

Use #if instead of #ifdef
This commit is contained in:
Drew DeVault 2018-11-18 08:22:25 -05:00 committed by GitHub
commit b87250425f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 85 additions and 85 deletions

View file

@ -24,7 +24,7 @@ enum background_mode parse_background_mode(const char *mode) {
cairo_surface_t *load_background_image(const char *path) { cairo_surface_t *load_background_image(const char *path) {
cairo_surface_t *image; cairo_surface_t *image;
#ifdef HAVE_GDK_PIXBUF #if HAVE_GDK_PIXBUF
GError *err = NULL; GError *err = NULL;
GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file(path, &err); GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file(path, &err);
if (!pixbuf) { if (!pixbuf) {
@ -36,17 +36,17 @@ cairo_surface_t *load_background_image(const char *path) {
g_object_unref(pixbuf); g_object_unref(pixbuf);
#else #else
image = cairo_image_surface_create_from_png(path); image = cairo_image_surface_create_from_png(path);
#endif //HAVE_GDK_PIXBUF #endif // HAVE_GDK_PIXBUF
if (!image) { if (!image) {
wlr_log(WLR_ERROR, "Failed to read background image."); wlr_log(WLR_ERROR, "Failed to read background image.");
return NULL; return NULL;
} }
if (cairo_surface_status(image) != CAIRO_STATUS_SUCCESS) { if (cairo_surface_status(image) != CAIRO_STATUS_SUCCESS) {
wlr_log(WLR_ERROR, "Failed to read background image: %s." wlr_log(WLR_ERROR, "Failed to read background image: %s."
#ifndef HAVE_GDK_PIXBUF #if !HAVE_GDK_PIXBUF
"\nSway was compiled without gdk_pixbuf support, so only" "\nSway was compiled without gdk_pixbuf support, so only"
"\nPNG images can be loaded. This is the likely cause." "\nPNG images can be loaded. This is the likely cause."
#endif //HAVE_GDK_PIXBUF #endif // !HAVE_GDK_PIXBUF
, cairo_status_to_string(cairo_surface_status(image))); , cairo_status_to_string(cairo_surface_status(image)));
return NULL; return NULL;
} }

View file

@ -1,7 +1,7 @@
#include <stdint.h> #include <stdint.h>
#include <cairo/cairo.h> #include <cairo/cairo.h>
#include "cairo.h" #include "cairo.h"
#ifdef HAVE_GDK_PIXBUF #if HAVE_GDK_PIXBUF
#include <gdk-pixbuf/gdk-pixbuf.h> #include <gdk-pixbuf/gdk-pixbuf.h>
#endif #endif
@ -46,7 +46,7 @@ cairo_surface_t *cairo_image_surface_scale(cairo_surface_t *image,
return new; return new;
} }
#ifdef HAVE_GDK_PIXBUF #if HAVE_GDK_PIXBUF
cairo_surface_t* gdk_cairo_image_surface_create_from_pixbuf(const GdkPixbuf *gdkbuf) { cairo_surface_t* gdk_cairo_image_surface_create_from_pixbuf(const GdkPixbuf *gdkbuf) {
int chan = gdk_pixbuf_get_n_channels(gdkbuf); int chan = gdk_pixbuf_get_n_channels(gdkbuf);
if (chan < 3) { if (chan < 3) {
@ -140,4 +140,4 @@ cairo_surface_t* gdk_cairo_image_surface_create_from_pixbuf(const GdkPixbuf *gdk
cairo_surface_mark_dirty(cs); cairo_surface_mark_dirty(cs);
return cs; return cs;
} }
#endif //HAVE_GDK_PIXBUF #endif // HAVE_GDK_PIXBUF

View file

@ -1,8 +1,13 @@
#ifndef _SWAY_CAIRO_H #ifndef _SWAY_CAIRO_H
#define _SWAY_CAIRO_H #define _SWAY_CAIRO_H
#include "config.h"
#include <stdint.h> #include <stdint.h>
#include <cairo/cairo.h> #include <cairo/cairo.h>
#include <wlr/types/wlr_output.h> #include <wlr/types/wlr_output.h>
#if HAVE_GDK_PIXBUF
#include <gdk-pixbuf/gdk-pixbuf.h>
#endif
void cairo_set_source_u32(cairo_t *cairo, uint32_t color); void cairo_set_source_u32(cairo_t *cairo, uint32_t color);
cairo_subpixel_order_t to_cairo_subpixel_order(enum wl_output_subpixel subpixel); cairo_subpixel_order_t to_cairo_subpixel_order(enum wl_output_subpixel subpixel);
@ -10,12 +15,11 @@ cairo_subpixel_order_t to_cairo_subpixel_order(enum wl_output_subpixel subpixel)
cairo_surface_t *cairo_image_surface_scale(cairo_surface_t *image, cairo_surface_t *cairo_image_surface_scale(cairo_surface_t *image,
int width, int height); int width, int height);
#include "config.h" #if HAVE_GDK_PIXBUF
#ifdef HAVE_GDK_PIXBUF
#include <gdk-pixbuf/gdk-pixbuf.h>
cairo_surface_t* gdk_cairo_image_surface_create_from_pixbuf( cairo_surface_t* gdk_cairo_image_surface_create_from_pixbuf(
const GdkPixbuf *gdkbuf); const GdkPixbuf *gdkbuf);
#endif //WITH_GDK_PIXBUF
#endif // HAVE_GDK_PIXBUF
#endif #endif

View file

@ -25,7 +25,7 @@ struct criteria {
pcre *app_id; pcre *app_id;
pcre *con_mark; pcre *con_mark;
uint32_t con_id; // internal ID uint32_t con_id; // internal ID
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
pcre *class; pcre *class;
uint32_t id; // X11 window ID uint32_t id; // X11 window ID
pcre *instance; pcre *instance;

View file

@ -119,7 +119,7 @@ void output_layer_for_each_surface(struct sway_output *output,
struct wl_list *layer_surfaces, sway_surface_iterator_func_t iterator, struct wl_list *layer_surfaces, sway_surface_iterator_func_t iterator,
void *user_data); void *user_data);
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
void output_unmanaged_for_each_surface(struct sway_output *output, void output_unmanaged_for_each_surface(struct sway_output *output,
struct wl_list *unmanaged, sway_surface_iterator_func_t iterator, struct wl_list *unmanaged, sway_surface_iterator_func_t iterator,
void *user_data); void *user_data);

View file

@ -14,7 +14,7 @@
#include <wlr/types/wlr_xdg_shell.h> #include <wlr/types/wlr_xdg_shell.h>
#include "config.h" #include "config.h"
#include "list.h" #include "list.h"
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
#include "sway/xwayland.h" #include "sway/xwayland.h"
#endif #endif
@ -44,7 +44,7 @@ struct sway_server {
struct wlr_xdg_shell *xdg_shell; struct wlr_xdg_shell *xdg_shell;
struct wl_listener xdg_shell_surface; struct wl_listener xdg_shell_surface;
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
struct sway_xwayland xwayland; struct sway_xwayland xwayland;
struct wl_listener xwayland_surface; struct wl_listener xwayland_surface;
struct wl_listener xwayland_ready; struct wl_listener xwayland_ready;
@ -80,7 +80,7 @@ void handle_idle_inhibitor_v1(struct wl_listener *listener, void *data);
void handle_layer_shell_surface(struct wl_listener *listener, void *data); void handle_layer_shell_surface(struct wl_listener *listener, void *data);
void handle_xdg_shell_v6_surface(struct wl_listener *listener, void *data); void handle_xdg_shell_v6_surface(struct wl_listener *listener, void *data);
void handle_xdg_shell_surface(struct wl_listener *listener, void *data); void handle_xdg_shell_surface(struct wl_listener *listener, void *data);
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
void handle_xwayland_surface(struct wl_listener *listener, void *data); void handle_xwayland_surface(struct wl_listener *listener, void *data);
#endif #endif
void handle_server_decoration(struct wl_listener *listener, void *data); void handle_server_decoration(struct wl_listener *listener, void *data);

View file

@ -16,7 +16,7 @@ struct sway_root {
struct wlr_output_layout *output_layout; struct wlr_output_layout *output_layout;
struct wl_listener output_layout_change; struct wl_listener output_layout_change;
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
struct wl_list xwayland_unmanaged; // sway_xwayland_unmanaged::link struct wl_list xwayland_unmanaged; // sway_xwayland_unmanaged::link
#endif #endif
struct wl_list drag_icons; // sway_drag_icon::link struct wl_list drag_icons; // sway_drag_icon::link

View file

@ -4,7 +4,7 @@
#include <wlr/types/wlr_surface.h> #include <wlr/types/wlr_surface.h>
#include <wlr/types/wlr_xdg_shell_v6.h> #include <wlr/types/wlr_xdg_shell_v6.h>
#include "config.h" #include "config.h"
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
#include <wlr/xwayland.h> #include <wlr/xwayland.h>
#endif #endif
#include "sway/input/input-manager.h" #include "sway/input/input-manager.h"
@ -16,7 +16,7 @@ struct sway_xdg_decoration;
enum sway_view_type { enum sway_view_type {
SWAY_VIEW_XDG_SHELL_V6, SWAY_VIEW_XDG_SHELL_V6,
SWAY_VIEW_XDG_SHELL, SWAY_VIEW_XDG_SHELL,
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
SWAY_VIEW_XWAYLAND, SWAY_VIEW_XWAYLAND,
#endif #endif
}; };
@ -28,7 +28,7 @@ enum sway_view_prop {
VIEW_PROP_INSTANCE, VIEW_PROP_INSTANCE,
VIEW_PROP_WINDOW_TYPE, VIEW_PROP_WINDOW_TYPE,
VIEW_PROP_WINDOW_ROLE, VIEW_PROP_WINDOW_ROLE,
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
VIEW_PROP_X11_WINDOW_ID, VIEW_PROP_X11_WINDOW_ID,
VIEW_PROP_X11_PARENT_ID, VIEW_PROP_X11_PARENT_ID,
#endif #endif
@ -100,7 +100,7 @@ struct sway_view {
union { union {
struct wlr_xdg_surface_v6 *wlr_xdg_surface_v6; struct wlr_xdg_surface_v6 *wlr_xdg_surface_v6;
struct wlr_xdg_surface *wlr_xdg_surface; struct wlr_xdg_surface *wlr_xdg_surface;
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
struct wlr_xwayland_surface *wlr_xwayland_surface; struct wlr_xwayland_surface *wlr_xwayland_surface;
#endif #endif
struct wlr_wl_shell_surface *wlr_wl_shell_surface; struct wlr_wl_shell_surface *wlr_wl_shell_surface;
@ -144,7 +144,7 @@ struct sway_xdg_shell_view {
struct wl_listener unmap; struct wl_listener unmap;
struct wl_listener destroy; struct wl_listener destroy;
}; };
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
struct sway_xwayland_view { struct sway_xwayland_view {
struct sway_view view; struct sway_view view;
@ -323,7 +323,7 @@ struct sway_view *view_from_wlr_xdg_surface(
struct wlr_xdg_surface *xdg_surface); struct wlr_xdg_surface *xdg_surface);
struct sway_view *view_from_wlr_xdg_surface_v6( struct sway_view *view_from_wlr_xdg_surface_v6(
struct wlr_xdg_surface_v6 *xdg_surface_v6); struct wlr_xdg_surface_v6 *xdg_surface_v6);
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
struct sway_view *view_from_wlr_xwayland_surface( struct sway_view *view_from_wlr_xwayland_surface(
struct wlr_xwayland_surface *xsurface); struct wlr_xwayland_surface *xsurface);
#endif #endif

View file

@ -59,30 +59,18 @@ git = find_program('git', required: false)
conf_data = configuration_data() conf_data = configuration_data()
conf_data.set10('HAVE_XWAYLAND', get_option('enable-xwayland'))
if get_option('enable-xwayland') if get_option('enable-xwayland')
conf_data.set('HAVE_XWAYLAND', true)
xcb = dependency('xcb') xcb = dependency('xcb')
else
conf_data.set('HAVE_XWAYLAND', false)
endif endif
if gdk_pixbuf.found() conf_data.set10('HAVE_GDK_PIXBUF', gdk_pixbuf.found())
conf_data.set('HAVE_GDK_PIXBUF', true) conf_data.set10('HAVE_SYSTEMD', systemd.found())
endif conf_data.set10('HAVE_ELOGIND', elogind.found())
if systemd.found()
conf_data.set('SWAY_IDLE_HAS_SYSTEMD', true)
swayidle_deps += systemd
endif
if elogind.found()
conf_data.set('SWAY_IDLE_HAS_ELOGIND', true)
swayidle_deps += elogind
endif
if not systemd.found() and not elogind.found() if not systemd.found() and not elogind.found()
warning('The sway binary must be setuid when compiled without (e)logind') warning('The sway binary must be setuid when compiled without (e)logind')
warning('You must do this manually post-install: chmod a+s /path/to/sway') warning('You must do this manually post-install: chmod a+s /path/to/sway')
endif endif
scdoc = find_program('scdoc', required: false) scdoc = find_program('scdoc', required: false)

View file

@ -149,7 +149,7 @@ static bool test_con_id(struct sway_container *container, void *data) {
return container->node.id == *con_id; return container->node.id == *con_id;
} }
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
static bool test_id(struct sway_container *container, void *data) { static bool test_id(struct sway_container *container, void *data) {
xcb_window_t *wid = data; xcb_window_t *wid = data;
return (container->view && container->view->type == SWAY_VIEW_XWAYLAND return (container->view && container->view->type == SWAY_VIEW_XWAYLAND
@ -184,7 +184,7 @@ struct cmd_results *cmd_swap(int argc, char **argv) {
char *value = join_args(argv + 3, argc - 3); char *value = join_args(argv + 3, argc - 3);
if (strcasecmp(argv[2], "id") == 0) { if (strcasecmp(argv[2], "id") == 0) {
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
xcb_window_t id = strtol(value, NULL, 0); xcb_window_t id = strtol(value, NULL, 0);
other = root_find_container(test_id, &id); other = root_find_container(test_id, &id);
#endif #endif

View file

@ -21,7 +21,7 @@ bool criteria_is_empty(struct criteria *criteria) {
&& !criteria->app_id && !criteria->app_id
&& !criteria->con_mark && !criteria->con_mark
&& !criteria->con_id && !criteria->con_id
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
&& !criteria->class && !criteria->class
&& !criteria->id && !criteria->id
&& !criteria->instance && !criteria->instance
@ -42,7 +42,7 @@ void criteria_destroy(struct criteria *criteria) {
pcre_free(criteria->shell); pcre_free(criteria->shell);
pcre_free(criteria->app_id); pcre_free(criteria->app_id);
pcre_free(criteria->con_mark); pcre_free(criteria->con_mark);
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
pcre_free(criteria->class); pcre_free(criteria->class);
pcre_free(criteria->instance); pcre_free(criteria->instance);
pcre_free(criteria->window_role); pcre_free(criteria->window_role);
@ -55,7 +55,7 @@ static int regex_cmp(const char *item, const pcre *regex) {
return pcre_exec(regex, NULL, item, strlen(item), 0, 0, NULL, 0); return pcre_exec(regex, NULL, item, strlen(item), 0, 0, NULL, 0);
} }
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
static bool view_has_window_type(struct sway_view *view, enum atom_name name) { static bool view_has_window_type(struct sway_view *view, enum atom_name name) {
if (view->type != SWAY_VIEW_XWAYLAND) { if (view->type != SWAY_VIEW_XWAYLAND) {
return false; return false;
@ -140,7 +140,7 @@ static bool criteria_matches_view(struct criteria *criteria,
} }
} }
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
if (criteria->id) { // X11 window ID if (criteria->id) { // X11 window ID
uint32_t x11_window_id = view_get_x11_window_id(view); uint32_t x11_window_id = view_get_x11_window_id(view);
if (!x11_window_id || x11_window_id != criteria->id) { if (!x11_window_id || x11_window_id != criteria->id) {
@ -276,7 +276,7 @@ static bool generate_regex(pcre **regex, char *value) {
return true; return true;
} }
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
static enum atom_name parse_window_type(const char *type) { static enum atom_name parse_window_type(const char *type) {
if (strcasecmp(type, "normal") == 0) { if (strcasecmp(type, "normal") == 0) {
return NET_WM_WINDOW_TYPE_NORMAL; return NET_WM_WINDOW_TYPE_NORMAL;
@ -308,7 +308,7 @@ enum criteria_token {
T_CON_ID, T_CON_ID,
T_CON_MARK, T_CON_MARK,
T_FLOATING, T_FLOATING,
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
T_CLASS, T_CLASS,
T_ID, T_ID,
T_INSTANCE, T_INSTANCE,
@ -331,7 +331,7 @@ static enum criteria_token token_from_name(char *name) {
return T_CON_ID; return T_CON_ID;
} else if (strcmp(name, "con_mark") == 0) { } else if (strcmp(name, "con_mark") == 0) {
return T_CON_MARK; return T_CON_MARK;
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
} else if (strcmp(name, "class") == 0) { } else if (strcmp(name, "class") == 0) {
return T_CLASS; return T_CLASS;
} else if (strcmp(name, "id") == 0) { } else if (strcmp(name, "id") == 0) {
@ -402,7 +402,7 @@ static char *get_focused_prop(enum criteria_token token) {
snprintf(id_str, id_size, "%zu", id); snprintf(id_str, id_size, "%zu", id);
value = id_str; value = id_str;
break; break;
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
case T_CLASS: case T_CLASS:
value = view_get_class(view); value = view_get_class(view);
break; break;
@ -474,7 +474,7 @@ static bool parse_token(struct criteria *criteria, char *name, char *value) {
case T_CON_MARK: case T_CON_MARK:
generate_regex(&criteria->con_mark, effective_value); generate_regex(&criteria->con_mark, effective_value);
break; break;
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
case T_CLASS: case T_CLASS:
generate_regex(&criteria->class, effective_value); generate_regex(&criteria->class, effective_value);
break; break;
@ -577,7 +577,7 @@ struct criteria *criteria_parse(char *raw, char **error_arg) {
++head; ++head;
struct criteria *criteria = calloc(1, sizeof(struct criteria)); struct criteria *criteria = calloc(1, sizeof(struct criteria));
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
criteria->window_type = ATOM_LAST; // default value criteria->window_type = ATOM_LAST; // default value
#endif #endif
char *name = NULL, *value = NULL; char *name = NULL, *value = NULL;

View file

@ -204,7 +204,7 @@ void output_layer_for_each_surface(struct sway_output *output,
} }
} }
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
void output_unmanaged_for_each_surface(struct sway_output *output, void output_unmanaged_for_each_surface(struct sway_output *output,
struct wl_list *unmanaged, sway_surface_iterator_func_t iterator, struct wl_list *unmanaged, sway_surface_iterator_func_t iterator,
void *user_data) { void *user_data) {
@ -274,7 +274,7 @@ static void output_for_each_surface(struct sway_output *output,
for_each_surface_container_iterator(floater, &data); for_each_surface_container_iterator(floater, &data);
} }
} }
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
output_unmanaged_for_each_surface(output, &root->xwayland_unmanaged, output_unmanaged_for_each_surface(output, &root->xwayland_unmanaged,
iterator, user_data); iterator, user_data);
#endif #endif
@ -289,7 +289,7 @@ static void output_for_each_surface(struct sway_output *output,
workspace_for_each_container(workspace, workspace_for_each_container(workspace,
for_each_surface_container_iterator, &data); for_each_surface_container_iterator, &data);
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
output_unmanaged_for_each_surface(output, &root->xwayland_unmanaged, output_unmanaged_for_each_surface(output, &root->xwayland_unmanaged,
iterator, user_data); iterator, user_data);
#endif #endif

View file

@ -140,7 +140,7 @@ static void render_layer(struct sway_output *output,
render_surface_iterator, &data); render_surface_iterator, &data);
} }
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
static void render_unmanaged(struct sway_output *output, static void render_unmanaged(struct sway_output *output,
pixman_region32_t *damage, struct wl_list *unmanaged) { pixman_region32_t *damage, struct wl_list *unmanaged) {
struct render_data data = { struct render_data data = {
@ -966,7 +966,7 @@ void output_render(struct sway_output *output, struct timespec *when,
render_floating_container(output, damage, floater); render_floating_container(output, damage, floater);
} }
} }
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
render_unmanaged(output, damage, &root->xwayland_unmanaged); render_unmanaged(output, damage, &root->xwayland_unmanaged);
#endif #endif
} else { } else {
@ -986,7 +986,7 @@ void output_render(struct sway_output *output, struct timespec *when,
render_workspace(output, damage, workspace, workspace->current.focused); render_workspace(output, damage, workspace, workspace->current.focused);
render_floating(output, damage); render_floating(output, damage);
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
render_unmanaged(output, damage, &root->xwayland_unmanaged); render_unmanaged(output, damage, &root->xwayland_unmanaged);
#endif #endif
render_layer(output, damage, render_layer(output, damage,

View file

@ -380,7 +380,7 @@ static bool should_configure(struct sway_node *node,
} }
struct sway_container_state *cstate = &node->sway_container->current; struct sway_container_state *cstate = &node->sway_container->current;
struct sway_container_state *istate = &instruction->container_state; struct sway_container_state *istate = &instruction->container_state;
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
// Xwayland views are position-aware and need to be reconfigured // Xwayland views are position-aware and need to be reconfigured
// when their position changes. // when their position changes.
if (node->sway_container->view->type == SWAY_VIEW_XWAYLAND) { if (node->sway_container->view->type == SWAY_VIEW_XWAYLAND) {

View file

@ -63,7 +63,7 @@ static struct sway_node *node_at_coords(
struct sway_seat *seat, double lx, double ly, struct sway_seat *seat, double lx, double ly,
struct wlr_surface **surface, double *sx, double *sy) { struct wlr_surface **surface, double *sx, double *sy) {
// check for unmanaged views first // check for unmanaged views first
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
struct wl_list *unmanaged = &root->xwayland_unmanaged; struct wl_list *unmanaged = &root->xwayland_unmanaged;
struct sway_xwayland_unmanaged *unmanaged_surface; struct sway_xwayland_unmanaged *unmanaged_surface;
wl_list_for_each_reverse(unmanaged_surface, unmanaged, link) { wl_list_for_each_reverse(unmanaged_surface, unmanaged, link) {

View file

@ -92,7 +92,7 @@ static void seat_send_focus(struct sway_node *node, struct sway_seat *seat) {
node->sway_container->view : NULL; node->sway_container->view : NULL;
if (view && seat_is_input_allowed(seat, view->surface)) { if (view && seat_is_input_allowed(seat, view->surface)) {
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
if (view->type == SWAY_VIEW_XWAYLAND) { if (view->type == SWAY_VIEW_XWAYLAND) {
struct wlr_xwayland *xwayland = server.xwayland.wlr_xwayland; struct wlr_xwayland *xwayland = server.xwayland.wlr_xwayland;
wlr_xwayland_set_seat(xwayland, seat->wlr_seat); wlr_xwayland_set_seat(xwayland, seat->wlr_seat);

View file

@ -266,7 +266,7 @@ static void ipc_json_describe_view(struct sway_container *c, json_object *object
struct wlr_box geometry = {0, 0, c->view->natural_width, c->view->natural_height}; struct wlr_box geometry = {0, 0, c->view->natural_width, c->view->natural_height};
json_object_object_add(object, "geometry", ipc_json_create_rect(&geometry)); json_object_object_add(object, "geometry", ipc_json_create_rect(&geometry));
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
if (c->view->type == SWAY_VIEW_XWAYLAND) { if (c->view->type == SWAY_VIEW_XWAYLAND) {
json_object_object_add(object, "window", json_object_object_add(object, "window",
json_object_new_int(view_get_x11_window_id(c->view))); json_object_new_int(view_get_x11_window_id(c->view)));

View file

@ -26,7 +26,7 @@
#include "sway/server.h" #include "sway/server.h"
#include "sway/tree/root.h" #include "sway/tree/root.h"
#include "config.h" #include "config.h"
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
#include "sway/xwayland.h" #include "sway/xwayland.h"
#endif #endif
@ -94,7 +94,7 @@ bool server_init(struct sway_server *server) {
setenv("XCURSOR_THEME", cursor_theme, 1); setenv("XCURSOR_THEME", cursor_theme, 1);
} }
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
server->xwayland.wlr_xwayland = server->xwayland.wlr_xwayland =
wlr_xwayland_create(server->wl_display, server->compositor, true); wlr_xwayland_create(server->wl_display, server->compositor, true);
wl_signal_add(&server->xwayland.wlr_xwayland->events.new_surface, wl_signal_add(&server->xwayland.wlr_xwayland->events.new_surface,
@ -164,7 +164,7 @@ bool server_init(struct sway_server *server) {
void server_fini(struct sway_server *server) { void server_fini(struct sway_server *server) {
// TODO: free sway-specific resources // TODO: free sway-specific resources
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
wlr_xwayland_destroy(server->xwayland.wlr_xwayland); wlr_xwayland_destroy(server->xwayland.wlr_xwayland);
#endif #endif
wl_display_destroy_clients(server->wl_display); wl_display_destroy_clients(server->wl_display);

View file

@ -171,7 +171,7 @@ static struct sway_container *surface_at_view(struct sway_container *con, double
double _sx, _sy; double _sx, _sy;
struct wlr_surface *_surface = NULL; struct wlr_surface *_surface = NULL;
switch (view->type) { switch (view->type) {
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
case SWAY_VIEW_XWAYLAND: case SWAY_VIEW_XWAYLAND:
_surface = wlr_surface_surface_at(view->surface, _surface = wlr_surface_surface_at(view->surface,
view_sx, view_sy, &_sx, &_sy); view_sx, view_sy, &_sx, &_sy);

View file

@ -31,7 +31,7 @@ struct sway_root *root_create(void) {
node_init(&root->node, N_ROOT, root); node_init(&root->node, N_ROOT, root);
root->output_layout = wlr_output_layout_create(); root->output_layout = wlr_output_layout_create();
wl_list_init(&root->all_outputs); wl_list_init(&root->all_outputs);
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
wl_list_init(&root->xwayland_unmanaged); wl_list_init(&root->xwayland_unmanaged);
#endif #endif
wl_list_init(&root->drag_icons); wl_list_init(&root->drag_icons);

View file

@ -8,7 +8,7 @@
#include <wlr/types/wlr_server_decoration.h> #include <wlr/types/wlr_server_decoration.h>
#include <wlr/types/wlr_xdg_decoration_v1.h> #include <wlr/types/wlr_xdg_decoration_v1.h>
#include "config.h" #include "config.h"
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
#include <wlr/xwayland.h> #include <wlr/xwayland.h>
#endif #endif
#include "list.h" #include "list.h"
@ -101,7 +101,7 @@ const char *view_get_instance(struct sway_view *view) {
} }
return NULL; return NULL;
} }
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
uint32_t view_get_x11_window_id(struct sway_view *view) { uint32_t view_get_x11_window_id(struct sway_view *view) {
if (view->impl->get_int_prop) { if (view->impl->get_int_prop) {
return view->impl->get_int_prop(view, VIEW_PROP_X11_WINDOW_ID); return view->impl->get_int_prop(view, VIEW_PROP_X11_WINDOW_ID);
@ -136,7 +136,7 @@ const char *view_get_shell(struct sway_view *view) {
return "xdg_shell_v6"; return "xdg_shell_v6";
case SWAY_VIEW_XDG_SHELL: case SWAY_VIEW_XDG_SHELL:
return "xdg_shell"; return "xdg_shell";
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
case SWAY_VIEW_XWAYLAND: case SWAY_VIEW_XWAYLAND:
return "xwayland"; return "xwayland";
#endif #endif
@ -484,7 +484,7 @@ static struct sway_workspace *select_workspace(struct sway_view *view) {
// Check if there's a PID mapping // Check if there's a PID mapping
pid_t pid; pid_t pid;
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
if (view->type == SWAY_VIEW_XWAYLAND) { if (view->type == SWAY_VIEW_XWAYLAND) {
struct wlr_xwayland_surface *surf = struct wlr_xwayland_surface *surf =
wlr_xwayland_surface_from_wlr_surface(view->surface); wlr_xwayland_surface_from_wlr_surface(view->surface);
@ -802,7 +802,7 @@ struct sway_view *view_from_wlr_surface(struct wlr_surface *wlr_surface) {
wlr_xdg_surface_v6_from_wlr_surface(wlr_surface); wlr_xdg_surface_v6_from_wlr_surface(wlr_surface);
return view_from_wlr_xdg_surface_v6(xdg_surface_v6); return view_from_wlr_xdg_surface_v6(xdg_surface_v6);
} }
#ifdef HAVE_XWAYLAND #if HAVE_XWAYLAND
if (wlr_surface_is_xwayland_surface(wlr_surface)) { if (wlr_surface_is_xwayland_surface(wlr_surface)) {
struct wlr_xwayland_surface *xsurface = struct wlr_xwayland_surface *xsurface =
wlr_xwayland_surface_from_wlr_surface(wlr_surface); wlr_xwayland_surface_from_wlr_surface(wlr_surface);

View file

@ -18,10 +18,10 @@
#include "config.h" #include "config.h"
#include "idle-client-protocol.h" #include "idle-client-protocol.h"
#include "list.h" #include "list.h"
#ifdef SWAY_IDLE_HAS_SYSTEMD #if HAVE_SYSTEMD
#include <systemd/sd-bus.h> #include <systemd/sd-bus.h>
#include <systemd/sd-login.h> #include <systemd/sd-login.h>
#elif defined(SWAY_IDLE_HAS_ELOGIND) #elif HAVE_ELOGIND
#include <elogind/sd-bus.h> #include <elogind/sd-bus.h>
#include <elogind/sd-login.h> #include <elogind/sd-login.h>
#endif #endif
@ -66,7 +66,7 @@ static void cmd_exec(char *param) {
} }
} }
#if defined(SWAY_IDLE_HAS_SYSTEMD) || defined(SWAY_IDLE_HAS_ELOGIND) #if HAVE_SYSTEMD || HAVE_ELOGIND
static int lock_fd = -1; static int lock_fd = -1;
static int ongoing_fd = -1; static int ongoing_fd = -1;
static struct sd_bus *bus = NULL; static struct sd_bus *bus = NULL;
@ -414,7 +414,7 @@ int main(int argc, char *argv[]) {
} }
bool should_run = state.timeout_cmds->length > 0; bool should_run = state.timeout_cmds->length > 0;
#if defined(SWAY_IDLE_HAS_SYSTEMD) || defined(SWAY_IDLE_HAS_ELOGIND) #if HAVE_SYSTEMD || HAVE_ELOGIND
if (state.lock_cmd) { if (state.lock_cmd) {
should_run = true; should_run = true;
setup_sleep_listener(); setup_sleep_listener();

View file

@ -1,18 +1,26 @@
threads = dependency('threads') threads = dependency('threads')
swayidle_deps = [
client_protos,
pixman,
wayland_client,
wayland_server,
wlroots,
]
if systemd.found()
swayidle_deps += systemd
endif
if elogind.found()
swayidle_deps += elogind
endif
executable( executable(
'swayidle', [ 'swayidle', [
'main.c', 'main.c',
], ],
include_directories: [sway_inc], include_directories: [sway_inc],
dependencies: [ dependencies: swayidle_deps,
client_protos,
pixman,
wayland_client,
wayland_server,
wlroots,
swayidle_deps,
],
link_with: [lib_sway_common, lib_sway_client], link_with: [lib_sway_common, lib_sway_client],
install_rpath : rpathdir, install_rpath : rpathdir,
install: true install: true