]> git.mdlowis.com Git - proto/labwc.git/commitdiff
src/output.c: expose output configuration test to clients
authorConsolatis <35009135+Consolatis@users.noreply.github.com>
Mon, 22 Jan 2024 14:22:26 +0000 (15:22 +0100)
committerJohan Malm <johanmalm@users.noreply.github.com>
Tue, 23 Jan 2024 20:14:24 +0000 (20:14 +0000)
include/labwc.h
src/output.c

index 62b32cd1ac32c4e30eecfbb9bb8a7d985986c7c3..78b8b3b624daba8eea53dbe536e104cab877d4cd 100644 (file)
@@ -292,6 +292,7 @@ struct server {
 
        struct wl_listener output_layout_change;
        struct wlr_output_manager_v1 *output_manager;
+       struct wl_listener output_manager_test;
        struct wl_listener output_manager_apply;
        /*
         * While an output layout change is in process, this counter is
index 650a338edf7bcfa8f0ace35e50c81c2bd1228f26..2805b285aa9d1a12ee93134c6c215561bc984fd1 100644 (file)
@@ -549,6 +549,20 @@ custom_mode_failed:
        return false;
 }
 
+static void
+handle_output_manager_test(struct wl_listener *listener, void *data)
+{
+       struct server *server = wl_container_of(listener, server, output_manager_test);
+       struct wlr_output_configuration_v1 *config = data;
+
+       if (verify_output_config_v1(config)) {
+               wlr_output_configuration_v1_send_succeeded(config);
+       } else {
+               wlr_output_configuration_v1_send_failed(config);
+       }
+       wlr_output_configuration_v1_destroy(config);
+}
+
 static void
 handle_output_manager_apply(struct wl_listener *listener, void *data)
 {
@@ -667,6 +681,10 @@ output_manager_init(struct server *server)
        wl_signal_add(&server->output_manager->events.apply,
                &server->output_manager_apply);
 
+       server->output_manager_test.notify = handle_output_manager_test;
+       wl_signal_add(&server->output_manager->events.test,
+               &server->output_manager_test);
+
        server->gamma_control_set_gamma.notify = handle_gamma_control_set_gamma;
        wl_signal_add(&server->gamma_control_manager_v1->events.set_gamma,
                &server->gamma_control_set_gamma);