Skip to content

fix: send output_enter in wlr-foreign-toplevel protocol#89

Merged
nongio merged 3 commits intomainfrom
fix/wlr-foreign-toplevel-output-enter
Apr 8, 2026
Merged

fix: send output_enter in wlr-foreign-toplevel protocol#89
nongio merged 3 commits intomainfrom
fix/wlr-foreign-toplevel-output-enter

Conversation

@nongio
Copy link
Copy Markdown
Owner

@nongio nongio commented Apr 8, 2026

Summary

  • Waybar's wlr/taskbar module filters toplevels by output — without output_enter events, no windows are displayed
  • Send output_enter when a toplevel is first mapped (resolves the correct wl_output per-client)
  • Send output_enter for existing toplevels when a new manager binds (late-joining Waybar)
  • Add send_output_enter / send_output_leave to both WlrForeignToplevelHandle and ForeignToplevelHandles

fixes #88

Test plan

  • Run Otto, launch Waybar with wlr/taskbar module, open windows — they should appear in the taskbar
  • Start Waybar after windows are already open — existing windows should appear
  • Multi-output: verify windows show on the correct output's taskbar

nongio added 3 commits April 8, 2026 20:25
Taskbars like Waybar filter toplevels by output. Without output_enter
events, they never display any windows. Send output_enter when a
toplevel is mapped and when a late-joining manager binds.
Taskbars like Waybar filter toplevels by output. Without output_enter
events, they never display any windows.

- Send output_enter in the same batch as initial properties (before done)
- Store per-toplevel output so late-joining managers get the correct one
- Reuse target_output instead of recomputing the output lookup
@nongio nongio merged commit f575593 into main Apr 8, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Waybar without taskbar

1 participant