diff --git a/bridge/src/lib.rs b/bridge/src/lib.rs index fd226cd..f4bd50a 100644 --- a/bridge/src/lib.rs +++ b/bridge/src/lib.rs @@ -320,8 +320,11 @@ pub extern "C" fn sdxr_start(app_id: *const std::os::raw::c_char) -> i32 { let accent_color = AccentColor::new(dbus_connection.clone()); let context = Context { dbus_connection, accent_color }; - let mut state = BridgeState::default(); - let mut projector = Projector::create(&state, &context, client.get_root().clone().as_spatial_ref(), "/".into()); + // Use the shared_state Arc instead of creating a new BridgeState + let mut projector = { + let state_guard = shared_state.lock().unwrap(); + Projector::create(&*state_guard, &context, client.get_root().clone().as_spatial_ref(), "/".into()) + }; println!("[bridge] Persistent event loop running"); let event_loop_fut = client.sync_event_loop(|client, flow| {