refresh_idle_timer armed for the full timeout measured from now, which is right only for notify_cursor_activity — it stamps activity immediately before arming. The other callers deliberately do not stamp, so with idle_timeout: Some(10) a user typing continuously never saw the cursor hide: every key press and release pushed the deadline out by a fresh ten seconds. That inverts the feature and regresses the shipped cursor_hide_timeout behaviour. resolve's RearmAfter cannot recover it — it only corrects a timer that fires too early. So the delay is now shortest_timeout minus the time already elapsed, extracted as CursorHideConfig::arm_delay and table tested; the arithmetic handed to Timer::from_duration was the one part of this path with no coverage. A zero delay is fine: the timer fires on the next loop iteration and resolve decides. Also rename fullscreen_focused to fullscreen_on_active_output, which is what seat.active_output() actually reports, and log an arming failure rather than silently disabling cursor hiding. Drafted with Claude (Anthropic); reviewed and tested by the committer. |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.toml | ||