git.lucas.co / cce-compositor
Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git

commit55d05a1f2de0c44b4c29a3f1a622dee656a1dc6c
parent9e9502e4aa
authorLucas Galante <[email protected]>
date2026-07-03 12:17
Synchronize adjust mode state using /tmp/cce-status-adjust-mode lockfile

 src/server/run_server.rs     | 1 +
 src/server/window_manager.rs | 6 ++++++
 2 files changed, 7 insertions(+)

diff --git a/src/server/run_server.rs b/src/server/run_server.rs
index e2a7992..24fe0c0 100644
--- a/src/server/run_server.rs
+++ b/src/server/run_server.rs
@@ -206,6 +206,7 @@ pub fn run_server() {
     }
     impl Drop for ServerGuard {
         fn drop(&mut self) {
+            let _ = std::fs::remove_file("/tmp/cce-status-adjust-mode");
             if let Some(pid) = self.init_pid {
                 log::info!("sending SIGTERM to child process group {}", pid);
                 let _ = nix::sys::signal::kill(
diff --git a/src/server/window_manager.rs b/src/server/window_manager.rs
index 0cd8bae..6b00963 100644
--- a/src/server/window_manager.rs
+++ b/src/server/window_manager.rs
@@ -197,6 +197,7 @@ impl WindowManager {
         self.last_status_update = std::cell::RefCell::new(None);
         self.status_hide_mode = false;
         self.adjust_position_mode = false;
+        let _ = std::fs::remove_file("/tmp/cce-status-adjust-mode");
 
         ffi::wl_list_init(&mut self.sent.outputs);
         ffi::wl_list_init(&mut self.sent.seats);
@@ -2655,6 +2656,11 @@ fn get_closest_tag(x: f64, y: f64) -> i32 {
                     !self.adjust_position_mode
                 };
                 self.adjust_position_mode = enable;
+                if enable {
+                    let _ = std::fs::File::create("/tmp/cce-status-adjust-mode");
+                } else {
+                    let _ = std::fs::remove_file("/tmp/cce-status-adjust-mode");
+                }
                 self.dirty_windowing();
                 return format!("ok {}\n", enable);
             }