niri/window title updates can suppress tooltips across Waybar
Describe the bug
With niri/window enabled, updates to the focused window title can make tooltips throughout Waybar stop appearing. For example, this happens while a terminal title contains a frequently updated spinner.
The tooltips sometimes return after suspending and waking the computer, or when my CAVA module starts updating after music begins. A later niri/window title update makes them stop again.
I previously contributed #5212 (d32e7fa8), which caches ALabel tooltip markup and serves it through query-tooltip so content updates do not restart GTK's shared tooltip delay. However, niri/window currently bypasses that path:
if (tooltipEnabled()) label_.set_tooltip_markup(sanitizedTitle);The equivalent Sway window module uses setTooltipMarkup() instead.
To reproduce
Use a minimal bar containing niri/window and a static tooltip target:
{
"modules-left": ["niri/window", "custom/control"],
"niri/window": {
"format": "{title}",
"tooltip": true
},
"custom/control": {
"exec": "printf 'Control'",
"interval": "once",
"format": "{}",
"tooltip": true,
"tooltip-format": "Static control tooltip"
}
}In the focused terminal, change its title repeatedly:
while :; do
printf '\033]0;%s\007' "$(date +%s%N)"
sleep 0.2
doneThen hover over Control without moving the pointer. Its tooltip stops appearing. A static isolated module does show its tooltip with the same Waybar binary when niri/window is not producing these updates.
Expected behaviour
Window title updates from niri/window should not prevent this or other modules' tooltips from appearing. niri/window should use the cached ALabel::setTooltipMarkup() path.
Environment
- Waybar version:
Waybar v0.15.0-970-gff0abe49(built from source; branch contains unrelated tray changes) - Compositor: Niri 26.04
- Distribution: Debian
Debug output
No relevant warning is printed when the tooltip stops appearing.
Additional context
The direct set_tooltip_markup() call is still present in current src/modules/niri/window.cpp. The behavior returning after suspend/wake or CAVA activity suggests those events force GTK to query the pointer target again; they only recover the tooltip temporarily.
Source: Alexays/Waybar