mirror of
https://github.com/swaywm/sway.git
synced 2024-12-28 07:56:31 +01:00
commit
b87250425f
23 changed files with 85 additions and 85 deletions
|
@ -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 *image;
|
||||
#ifdef HAVE_GDK_PIXBUF
|
||||
#if HAVE_GDK_PIXBUF
|
||||
GError *err = NULL;
|
||||
GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file(path, &err);
|
||||
if (!pixbuf) {
|
||||
|
@ -36,17 +36,17 @@ cairo_surface_t *load_background_image(const char *path) {
|
|||
g_object_unref(pixbuf);
|
||||
#else
|
||||
image = cairo_image_surface_create_from_png(path);
|
||||
#endif //HAVE_GDK_PIXBUF
|
||||
#endif // HAVE_GDK_PIXBUF
|
||||
if (!image) {
|
||||
wlr_log(WLR_ERROR, "Failed to read background image.");
|
||||
return NULL;
|
||||
}
|
||||
if (cairo_surface_status(image) != CAIRO_STATUS_SUCCESS) {
|
||||
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"
|
||||
"\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)));
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include <stdint.h>
|
||||
#include <cairo/cairo.h>
|
||||
#include "cairo.h"
|
||||
#ifdef HAVE_GDK_PIXBUF
|
||||
#if HAVE_GDK_PIXBUF
|
||||
#include <gdk-pixbuf/gdk-pixbuf.h>
|
||||
#endif
|
||||
|
||||
|
@ -46,7 +46,7 @@ cairo_surface_t *cairo_image_surface_scale(cairo_surface_t *image,
|
|||
return new;
|
||||
}
|
||||
|
||||
#ifdef HAVE_GDK_PIXBUF
|
||||
#if HAVE_GDK_PIXBUF
|
||||
cairo_surface_t* gdk_cairo_image_surface_create_from_pixbuf(const GdkPixbuf *gdkbuf) {
|
||||
int chan = gdk_pixbuf_get_n_channels(gdkbuf);
|
||||
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);
|
||||
return cs;
|
||||
}
|
||||
#endif //HAVE_GDK_PIXBUF
|
||||
#endif // HAVE_GDK_PIXBUF
|
||||
|
|
|
@ -1,8 +1,13 @@
|
|||
#ifndef _SWAY_CAIRO_H
|
||||
#define _SWAY_CAIRO_H
|
||||
|
||||
#include "config.h"
|
||||
#include <stdint.h>
|
||||
#include <cairo/cairo.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);
|
||||
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,
|
||||
int width, int height);
|
||||
|
||||
#include "config.h"
|
||||
#ifdef HAVE_GDK_PIXBUF
|
||||
#include <gdk-pixbuf/gdk-pixbuf.h>
|
||||
#if HAVE_GDK_PIXBUF
|
||||
|
||||
cairo_surface_t* gdk_cairo_image_surface_create_from_pixbuf(
|
||||
const GdkPixbuf *gdkbuf);
|
||||
#endif //WITH_GDK_PIXBUF
|
||||
|
||||
#endif // HAVE_GDK_PIXBUF
|
||||
|
||||
#endif
|
||||
|
|
|
@ -25,7 +25,7 @@ struct criteria {
|
|||
pcre *app_id;
|
||||
pcre *con_mark;
|
||||
uint32_t con_id; // internal ID
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
pcre *class;
|
||||
uint32_t id; // X11 window ID
|
||||
pcre *instance;
|
||||
|
|
|
@ -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,
|
||||
void *user_data);
|
||||
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
void output_unmanaged_for_each_surface(struct sway_output *output,
|
||||
struct wl_list *unmanaged, sway_surface_iterator_func_t iterator,
|
||||
void *user_data);
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#include <wlr/types/wlr_xdg_shell.h>
|
||||
#include "config.h"
|
||||
#include "list.h"
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
#include "sway/xwayland.h"
|
||||
#endif
|
||||
|
||||
|
@ -44,7 +44,7 @@ struct sway_server {
|
|||
struct wlr_xdg_shell *xdg_shell;
|
||||
struct wl_listener xdg_shell_surface;
|
||||
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
struct sway_xwayland xwayland;
|
||||
struct wl_listener xwayland_surface;
|
||||
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_xdg_shell_v6_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);
|
||||
#endif
|
||||
void handle_server_decoration(struct wl_listener *listener, void *data);
|
||||
|
|
|
@ -16,7 +16,7 @@ struct sway_root {
|
|||
struct wlr_output_layout *output_layout;
|
||||
|
||||
struct wl_listener output_layout_change;
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
struct wl_list xwayland_unmanaged; // sway_xwayland_unmanaged::link
|
||||
#endif
|
||||
struct wl_list drag_icons; // sway_drag_icon::link
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#include <wlr/types/wlr_surface.h>
|
||||
#include <wlr/types/wlr_xdg_shell_v6.h>
|
||||
#include "config.h"
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
#include <wlr/xwayland.h>
|
||||
#endif
|
||||
#include "sway/input/input-manager.h"
|
||||
|
@ -16,7 +16,7 @@ struct sway_xdg_decoration;
|
|||
enum sway_view_type {
|
||||
SWAY_VIEW_XDG_SHELL_V6,
|
||||
SWAY_VIEW_XDG_SHELL,
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
SWAY_VIEW_XWAYLAND,
|
||||
#endif
|
||||
};
|
||||
|
@ -28,7 +28,7 @@ enum sway_view_prop {
|
|||
VIEW_PROP_INSTANCE,
|
||||
VIEW_PROP_WINDOW_TYPE,
|
||||
VIEW_PROP_WINDOW_ROLE,
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
VIEW_PROP_X11_WINDOW_ID,
|
||||
VIEW_PROP_X11_PARENT_ID,
|
||||
#endif
|
||||
|
@ -100,7 +100,7 @@ struct sway_view {
|
|||
union {
|
||||
struct wlr_xdg_surface_v6 *wlr_xdg_surface_v6;
|
||||
struct wlr_xdg_surface *wlr_xdg_surface;
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
struct wlr_xwayland_surface *wlr_xwayland_surface;
|
||||
#endif
|
||||
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 destroy;
|
||||
};
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
struct sway_xwayland_view {
|
||||
struct sway_view view;
|
||||
|
||||
|
@ -323,7 +323,7 @@ struct sway_view *view_from_wlr_xdg_surface(
|
|||
struct wlr_xdg_surface *xdg_surface);
|
||||
struct sway_view *view_from_wlr_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 wlr_xwayland_surface *xsurface);
|
||||
#endif
|
||||
|
|
24
meson.build
24
meson.build
|
@ -59,30 +59,18 @@ git = find_program('git', required: false)
|
|||
|
||||
conf_data = configuration_data()
|
||||
|
||||
conf_data.set10('HAVE_XWAYLAND', get_option('enable-xwayland'))
|
||||
if get_option('enable-xwayland')
|
||||
conf_data.set('HAVE_XWAYLAND', true)
|
||||
xcb = dependency('xcb')
|
||||
else
|
||||
conf_data.set('HAVE_XWAYLAND', false)
|
||||
endif
|
||||
|
||||
if gdk_pixbuf.found()
|
||||
conf_data.set('HAVE_GDK_PIXBUF', true)
|
||||
endif
|
||||
|
||||
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
|
||||
conf_data.set10('HAVE_GDK_PIXBUF', gdk_pixbuf.found())
|
||||
conf_data.set10('HAVE_SYSTEMD', systemd.found())
|
||||
conf_data.set10('HAVE_ELOGIND', elogind.found())
|
||||
|
||||
if not systemd.found() and not elogind.found()
|
||||
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('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')
|
||||
endif
|
||||
|
||||
scdoc = find_program('scdoc', required: false)
|
||||
|
|
|
@ -149,7 +149,7 @@ static bool test_con_id(struct sway_container *container, void *data) {
|
|||
return container->node.id == *con_id;
|
||||
}
|
||||
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
static bool test_id(struct sway_container *container, void *data) {
|
||||
xcb_window_t *wid = data;
|
||||
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);
|
||||
if (strcasecmp(argv[2], "id") == 0) {
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
xcb_window_t id = strtol(value, NULL, 0);
|
||||
other = root_find_container(test_id, &id);
|
||||
#endif
|
||||
|
|
|
@ -21,7 +21,7 @@ bool criteria_is_empty(struct criteria *criteria) {
|
|||
&& !criteria->app_id
|
||||
&& !criteria->con_mark
|
||||
&& !criteria->con_id
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
&& !criteria->class
|
||||
&& !criteria->id
|
||||
&& !criteria->instance
|
||||
|
@ -42,7 +42,7 @@ void criteria_destroy(struct criteria *criteria) {
|
|||
pcre_free(criteria->shell);
|
||||
pcre_free(criteria->app_id);
|
||||
pcre_free(criteria->con_mark);
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
pcre_free(criteria->class);
|
||||
pcre_free(criteria->instance);
|
||||
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);
|
||||
}
|
||||
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
static bool view_has_window_type(struct sway_view *view, enum atom_name name) {
|
||||
if (view->type != SWAY_VIEW_XWAYLAND) {
|
||||
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
|
||||
uint32_t x11_window_id = view_get_x11_window_id(view);
|
||||
if (!x11_window_id || x11_window_id != criteria->id) {
|
||||
|
@ -276,7 +276,7 @@ static bool generate_regex(pcre **regex, char *value) {
|
|||
return true;
|
||||
}
|
||||
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
static enum atom_name parse_window_type(const char *type) {
|
||||
if (strcasecmp(type, "normal") == 0) {
|
||||
return NET_WM_WINDOW_TYPE_NORMAL;
|
||||
|
@ -308,7 +308,7 @@ enum criteria_token {
|
|||
T_CON_ID,
|
||||
T_CON_MARK,
|
||||
T_FLOATING,
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
T_CLASS,
|
||||
T_ID,
|
||||
T_INSTANCE,
|
||||
|
@ -331,7 +331,7 @@ static enum criteria_token token_from_name(char *name) {
|
|||
return T_CON_ID;
|
||||
} else if (strcmp(name, "con_mark") == 0) {
|
||||
return T_CON_MARK;
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
} else if (strcmp(name, "class") == 0) {
|
||||
return T_CLASS;
|
||||
} 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);
|
||||
value = id_str;
|
||||
break;
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
case T_CLASS:
|
||||
value = view_get_class(view);
|
||||
break;
|
||||
|
@ -474,7 +474,7 @@ static bool parse_token(struct criteria *criteria, char *name, char *value) {
|
|||
case T_CON_MARK:
|
||||
generate_regex(&criteria->con_mark, effective_value);
|
||||
break;
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
case T_CLASS:
|
||||
generate_regex(&criteria->class, effective_value);
|
||||
break;
|
||||
|
@ -577,7 +577,7 @@ struct criteria *criteria_parse(char *raw, char **error_arg) {
|
|||
++head;
|
||||
|
||||
struct criteria *criteria = calloc(1, sizeof(struct criteria));
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
criteria->window_type = ATOM_LAST; // default value
|
||||
#endif
|
||||
char *name = NULL, *value = NULL;
|
||||
|
|
|
@ -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,
|
||||
struct wl_list *unmanaged, sway_surface_iterator_func_t iterator,
|
||||
void *user_data) {
|
||||
|
@ -274,7 +274,7 @@ static void output_for_each_surface(struct sway_output *output,
|
|||
for_each_surface_container_iterator(floater, &data);
|
||||
}
|
||||
}
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
output_unmanaged_for_each_surface(output, &root->xwayland_unmanaged,
|
||||
iterator, user_data);
|
||||
#endif
|
||||
|
@ -289,7 +289,7 @@ static void output_for_each_surface(struct sway_output *output,
|
|||
workspace_for_each_container(workspace,
|
||||
for_each_surface_container_iterator, &data);
|
||||
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
output_unmanaged_for_each_surface(output, &root->xwayland_unmanaged,
|
||||
iterator, user_data);
|
||||
#endif
|
||||
|
|
|
@ -140,7 +140,7 @@ static void render_layer(struct sway_output *output,
|
|||
render_surface_iterator, &data);
|
||||
}
|
||||
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
static void render_unmanaged(struct sway_output *output,
|
||||
pixman_region32_t *damage, struct wl_list *unmanaged) {
|
||||
struct render_data data = {
|
||||
|
@ -966,7 +966,7 @@ void output_render(struct sway_output *output, struct timespec *when,
|
|||
render_floating_container(output, damage, floater);
|
||||
}
|
||||
}
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
render_unmanaged(output, damage, &root->xwayland_unmanaged);
|
||||
#endif
|
||||
} else {
|
||||
|
@ -986,7 +986,7 @@ void output_render(struct sway_output *output, struct timespec *when,
|
|||
|
||||
render_workspace(output, damage, workspace, workspace->current.focused);
|
||||
render_floating(output, damage);
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
render_unmanaged(output, damage, &root->xwayland_unmanaged);
|
||||
#endif
|
||||
render_layer(output, damage,
|
||||
|
|
|
@ -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 *istate = &instruction->container_state;
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
// Xwayland views are position-aware and need to be reconfigured
|
||||
// when their position changes.
|
||||
if (node->sway_container->view->type == SWAY_VIEW_XWAYLAND) {
|
||||
|
|
|
@ -63,7 +63,7 @@ static struct sway_node *node_at_coords(
|
|||
struct sway_seat *seat, double lx, double ly,
|
||||
struct wlr_surface **surface, double *sx, double *sy) {
|
||||
// check for unmanaged views first
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
struct wl_list *unmanaged = &root->xwayland_unmanaged;
|
||||
struct sway_xwayland_unmanaged *unmanaged_surface;
|
||||
wl_list_for_each_reverse(unmanaged_surface, unmanaged, link) {
|
||||
|
|
|
@ -92,7 +92,7 @@ static void seat_send_focus(struct sway_node *node, struct sway_seat *seat) {
|
|||
node->sway_container->view : NULL;
|
||||
|
||||
if (view && seat_is_input_allowed(seat, view->surface)) {
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
if (view->type == SWAY_VIEW_XWAYLAND) {
|
||||
struct wlr_xwayland *xwayland = server.xwayland.wlr_xwayland;
|
||||
wlr_xwayland_set_seat(xwayland, seat->wlr_seat);
|
||||
|
|
|
@ -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};
|
||||
json_object_object_add(object, "geometry", ipc_json_create_rect(&geometry));
|
||||
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
if (c->view->type == SWAY_VIEW_XWAYLAND) {
|
||||
json_object_object_add(object, "window",
|
||||
json_object_new_int(view_get_x11_window_id(c->view)));
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#include "sway/server.h"
|
||||
#include "sway/tree/root.h"
|
||||
#include "config.h"
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
#include "sway/xwayland.h"
|
||||
#endif
|
||||
|
||||
|
@ -94,7 +94,7 @@ bool server_init(struct sway_server *server) {
|
|||
setenv("XCURSOR_THEME", cursor_theme, 1);
|
||||
}
|
||||
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
server->xwayland.wlr_xwayland =
|
||||
wlr_xwayland_create(server->wl_display, server->compositor, true);
|
||||
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) {
|
||||
// TODO: free sway-specific resources
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
wlr_xwayland_destroy(server->xwayland.wlr_xwayland);
|
||||
#endif
|
||||
wl_display_destroy_clients(server->wl_display);
|
||||
|
|
|
@ -171,7 +171,7 @@ static struct sway_container *surface_at_view(struct sway_container *con, double
|
|||
double _sx, _sy;
|
||||
struct wlr_surface *_surface = NULL;
|
||||
switch (view->type) {
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
case SWAY_VIEW_XWAYLAND:
|
||||
_surface = wlr_surface_surface_at(view->surface,
|
||||
view_sx, view_sy, &_sx, &_sy);
|
||||
|
|
|
@ -31,7 +31,7 @@ struct sway_root *root_create(void) {
|
|||
node_init(&root->node, N_ROOT, root);
|
||||
root->output_layout = wlr_output_layout_create();
|
||||
wl_list_init(&root->all_outputs);
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
wl_list_init(&root->xwayland_unmanaged);
|
||||
#endif
|
||||
wl_list_init(&root->drag_icons);
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include <wlr/types/wlr_server_decoration.h>
|
||||
#include <wlr/types/wlr_xdg_decoration_v1.h>
|
||||
#include "config.h"
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
#include <wlr/xwayland.h>
|
||||
#endif
|
||||
#include "list.h"
|
||||
|
@ -101,7 +101,7 @@ const char *view_get_instance(struct sway_view *view) {
|
|||
}
|
||||
return NULL;
|
||||
}
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
uint32_t view_get_x11_window_id(struct sway_view *view) {
|
||||
if (view->impl->get_int_prop) {
|
||||
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";
|
||||
case SWAY_VIEW_XDG_SHELL:
|
||||
return "xdg_shell";
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
case SWAY_VIEW_XWAYLAND:
|
||||
return "xwayland";
|
||||
#endif
|
||||
|
@ -484,7 +484,7 @@ static struct sway_workspace *select_workspace(struct sway_view *view) {
|
|||
|
||||
// Check if there's a PID mapping
|
||||
pid_t pid;
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
if (view->type == SWAY_VIEW_XWAYLAND) {
|
||||
struct wlr_xwayland_surface *surf =
|
||||
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);
|
||||
return view_from_wlr_xdg_surface_v6(xdg_surface_v6);
|
||||
}
|
||||
#ifdef HAVE_XWAYLAND
|
||||
#if HAVE_XWAYLAND
|
||||
if (wlr_surface_is_xwayland_surface(wlr_surface)) {
|
||||
struct wlr_xwayland_surface *xsurface =
|
||||
wlr_xwayland_surface_from_wlr_surface(wlr_surface);
|
||||
|
|
|
@ -18,10 +18,10 @@
|
|||
#include "config.h"
|
||||
#include "idle-client-protocol.h"
|
||||
#include "list.h"
|
||||
#ifdef SWAY_IDLE_HAS_SYSTEMD
|
||||
#if HAVE_SYSTEMD
|
||||
#include <systemd/sd-bus.h>
|
||||
#include <systemd/sd-login.h>
|
||||
#elif defined(SWAY_IDLE_HAS_ELOGIND)
|
||||
#elif HAVE_ELOGIND
|
||||
#include <elogind/sd-bus.h>
|
||||
#include <elogind/sd-login.h>
|
||||
#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 ongoing_fd = -1;
|
||||
static struct sd_bus *bus = NULL;
|
||||
|
@ -414,7 +414,7 @@ int main(int argc, char *argv[]) {
|
|||
}
|
||||
|
||||
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) {
|
||||
should_run = true;
|
||||
setup_sleep_listener();
|
||||
|
|
|
@ -1,18 +1,26 @@
|
|||
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(
|
||||
'swayidle', [
|
||||
'main.c',
|
||||
],
|
||||
include_directories: [sway_inc],
|
||||
dependencies: [
|
||||
client_protos,
|
||||
pixman,
|
||||
wayland_client,
|
||||
wayland_server,
|
||||
wlroots,
|
||||
swayidle_deps,
|
||||
],
|
||||
dependencies: swayidle_deps,
|
||||
link_with: [lib_sway_common, lib_sway_client],
|
||||
install_rpath : rpathdir,
|
||||
install: true
|
||||
|
|
Loading…
Reference in a new issue