aboutsummaryrefslogtreecommitdiff
path: root/rootston/desktop.c
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2019-03-08 16:14:30 +0100
committerDrew DeVault <sir@cmpwn.com>2019-04-11 09:19:57 -0600
commit54d6ba78c33b15480c75025f15893f006a2ca5d1 (patch)
tree8e69f31aadad5165647f33d90abac4e12798041e /rootston/desktop.c
parente873c652bfc6847153d5e43dcab00a66bd0ceb4d (diff)
rootston: add output-management-v1 support
Diffstat (limited to 'rootston/desktop.c')
-rw-r--r--rootston/desktop.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/rootston/desktop.c b/rootston/desktop.c
index b0530ea1..35962cbb 100644
--- a/rootston/desktop.c
+++ b/rootston/desktop.c
@@ -294,6 +294,26 @@ static void handle_pointer_constraint(struct wl_listener *listener,
}
}
+static void handle_output_manager_apply(struct wl_listener *listener,
+ void *data) {
+ struct roots_desktop *desktop =
+ wl_container_of(listener, desktop, output_manager_apply);
+ struct wlr_output_configuration_v1 *config = data;
+ (void)config;
+ wlr_log(WLR_DEBUG, "APPLY"); // TODO
+}
+
+static void handle_output_manager_test(struct wl_listener *listener,
+ void *data) {
+ struct roots_desktop *desktop =
+ wl_container_of(listener, desktop, output_manager_test);
+ struct wlr_output_configuration_v1 *config = data;
+
+ // TODO: implement test-only mode
+ wlr_output_configuration_v1_send_succeeded(config);
+ wlr_output_configuration_v1_destroy(config);
+}
+
struct roots_desktop *desktop_create(struct roots_server *server,
struct roots_config *config) {
wlr_log(WLR_DEBUG, "Initializing roots desktop");
@@ -457,6 +477,15 @@ struct roots_desktop *desktop_create(struct roots_server *server,
desktop->pointer_gestures =
wlr_pointer_gestures_v1_create(server->wl_display);
+ desktop->output_manager_v1 =
+ wlr_output_manager_v1_create(server->wl_display);
+ desktop->output_manager_apply.notify = handle_output_manager_apply;
+ wl_signal_add(&desktop->output_manager_v1->events.apply,
+ &desktop->output_manager_apply);
+ desktop->output_manager_test.notify = handle_output_manager_test;
+ wl_signal_add(&desktop->output_manager_v1->events.test,
+ &desktop->output_manager_test);
+
wlr_primary_selection_v1_device_manager_create(server->wl_display);
wlr_data_control_manager_v1_create(server->wl_display);