chiark / gitweb /
clock: auto-swap active player
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 20 Mar 2021 19:25:35 +0000 (19:25 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 20 Mar 2021 21:52:49 +0000 (21:52 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/clock.rs

index ce9a065f37772c78368264f71871d8fbb126631d..6c6539ea4b4069d4faf1d575a68c7447c1e05118 100644 (file)
@@ -673,7 +673,14 @@ impl PieceTrait for Clock {
     let state: &mut State = gpc.xdata_mut_exp()?;
     let was_running = state.implies_running(was_held);
 
-    // xxx auto-change active player
+    if_chain! {
+      if was_held == None;
+      if let Some(Current { user }) = state.current;
+      if now_held == Some(state.users[user].player);
+      then {
+        state.current = Some(Current { user: ! user });
+      }
+    }
 
     state.do_start_or_stop(piece, was_running, now_held, ig)?;
     unprepared_update(piece)