Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git
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);
}