server: hide xdg_output from unprivileged clients

Regular Wayland clients shouldn't care about the position or size
of outputs. Hide xdg_output from unprivileged clients to make sure
they're not doing shenanigans with this information.
master
Simon Ser 7 months ago committed by Simon Zeni
parent a168b20299
commit 700f4805bc

@ -81,6 +81,8 @@ struct sway_server {
struct wlr_pointer_constraints_v1 *pointer_constraints; struct wlr_pointer_constraints_v1 *pointer_constraints;
struct wl_listener pointer_constraint; struct wl_listener pointer_constraint;
struct wlr_xdg_output_manager_v1 *xdg_output_manager_v1;
struct wlr_output_manager_v1 *output_manager_v1; struct wlr_output_manager_v1 *output_manager_v1;
struct wl_listener output_manager_apply; struct wl_listener output_manager_apply;
struct wl_listener output_manager_test; struct wl_listener output_manager_test;

@ -113,7 +113,8 @@ static bool is_privileged(const struct wl_global *global) {
global == server.input->keyboard_shortcuts_inhibit->global || global == server.input->keyboard_shortcuts_inhibit->global ||
global == server.input->virtual_keyboard->global || global == server.input->virtual_keyboard->global ||
global == server.input->virtual_pointer->global || global == server.input->virtual_pointer->global ||
global == server.input->transient_seat_manager->global; global == server.input->transient_seat_manager->global ||
global == server.xdg_output_manager_v1->global;
} }
static bool filter_global(const struct wl_client *client, static bool filter_global(const struct wl_client *client,
@ -275,6 +276,7 @@ bool server_init(struct sway_server *server) {
wl_signal_add(&root->output_layout->events.change, wl_signal_add(&root->output_layout->events.change,
&server->output_layout_change); &server->output_layout_change);
server->xdg_output_manager_v1 =
wlr_xdg_output_manager_v1_create(server->wl_display, root->output_layout); wlr_xdg_output_manager_v1_create(server->wl_display, root->output_layout);
server->idle_notifier_v1 = wlr_idle_notifier_v1_create(server->wl_display); server->idle_notifier_v1 = wlr_idle_notifier_v1_create(server->wl_display);

Loading…
Cancel
Save