diff options
| author | Ken D'Ambrosio <ken.dambrosio@constantcontact.com> | 2026-07-11 23:03:10 -0400 |
|---|---|---|
| committer | Ken D'Ambrosio <ken.dambrosio@constantcontact.com> | 2026-07-11 23:03:10 -0400 |
| commit | 56856c7490d44beab065fdc2510cae33b973ccbc (patch) | |
| tree | 4b37b4c1991d08ba01f52a0f8dc7dbe2177df99b /bin/esheep | |
| parent | 6f5864ae666f80641c22cebe274802648b12d7f4 (diff) | |
Fix taskbar detection and off-screen floor landing; add periodic bathmaster
The taskbar (run, run_begin, jump, walk_task2, and everything gated on
only="taskbar") was completely unreachable: WayfireWindows never
populated self._taskbar, it was hardcoded to None. Detect it for real
by unioning any wide, thin desktop-environment layer-shell surface
(waybar, a top/bottom panel) anchored to top or bottom.
That surfaced two more bugs once sheep actually started landing on it:
- The taskbar floor was placed at the panel's top edge unconditionally,
which is correct for a bottom-anchored bar but puts the sheep above
y=0 (off-screen) for a top-anchored one like this desktop's waybar.
Now it stands on whichever edge faces the screen interior.
- Toplevel windows were used as landing floors regardless of whether
their reported y was actually on the visible screen. This
compositor's wide-viewport layout returns raw/absolute geometry for
windows on other workspaces, so a window can have x within screen
bounds while y sits off the top entirely — landing there also put
sheep above y=0, invisible. Windows are now only used as floors when
their top edge is within [0, screenH].
Also added a periodic timer (mirroring the existing eat/hop timers) to
trigger the batha→bathb→bathc→bathd bath sequence on an idle sheep
every 90-180s. It was only ever reachable via a ~3% spawn-time roll,
so in practice it was almost never seen.
Diffstat (limited to 'bin/esheep')
0 files changed, 0 insertions, 0 deletions
