bell: optionally render margins in red when receiving BEL

Add anew config option, ‘bell=none|set-urgency’. When set to
‘set-urgency’, the margins will be painted in red (if the window did
not have keyboard focus).

This is intended as a cheap replacement for the ‘urgency’ hint, that
doesn’t (yet) exist on Wayland.

Closes #157
This commit is contained in:
Daniel Eklöf 2020-10-08 19:55:32 +02:00
parent 7e0cfd46c6
commit 7c6686221f
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
10 changed files with 95 additions and 2 deletions

View file

@ -2073,6 +2073,12 @@ term_kbd_focus_in(struct terminal *term)
return;
term->kbd_focus = true;
if (term->render.urgency) {
term->render.urgency = false;
term_damage_margins(term);
}
cursor_refresh(term);
if (term->focus_events)
@ -2363,6 +2369,17 @@ term_flash(struct terminal *term, unsigned duration_ms)
}
}
void
term_bell(struct terminal *term)
{
if (term->kbd_focus || !term->conf->bell_set_urgency)
return;
/* There's no 'urgency' hint in Wayland - we just paint the margins red */
term->render.urgency = true;
term_damage_margins(term);
}
bool
term_spawn_new(const struct terminal *term)
{