From 2525088deaf977bf815ccbd5501bce74894ec0c8 Mon Sep 17 00:00:00 2001 From: Mars Ultor Date: Mon, 22 Dec 2025 00:23:02 -0600 Subject: [PATCH] past commti did not compile, mb --- src/main.cpp | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/main.cpp b/src/main.cpp index 858efc1..46dc79e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -167,7 +167,48 @@ int main (int argc, char *argv[]) { } spdlog::info("Found {} output(s)", application_state->outputs.size()); + + spdlog::info("Found {} output(s)", application_state->outputs.size()); + +// Request lock session + spdlog::info("Requesting session lock..."); + application_state->session_lock = ext_session_lock_manager_v1_lock(application_state->lock_manager); + ext_session_lock_v1_add_listener(application_state->session_lock, &lock_listener, application_state.get()); + +// Create lock surface for each output + for (auto& output : application_state->outputs) { + // Create Wayland surface + output->wl_out_surface= wl_compositor_create_surface(application_state->compostier); + // Get lock surface for this output + output->lock_surface = ext_session_lock_v1_get_lock_surface( + application_state->session_lock, + output->wl_out_surface, + output->output + ); + + // Add listener for configure events + ext_session_lock_surface_v1_add_listener( + output->lock_surface, + &lock_surface_listener, + output.get() + ); + + // Commit to trigger configure + wl_surface_commit(output->wl_out_surface); + + spdlog::debug("Created lock surface for output {}", output->registry_id); + } + + // Flush and wait for configure/locked events + wl_display_flush(application_state->display); + wl_display_roundtrip(application_state->display); + + if (!application_state->locked) { + throw std::runtime_error("Failed to acquire lock"); + } + + spdlog::info("✅ Lock acquired successfully!"); return 0; }