diff --git a/terminal.c b/terminal.c index eb5d9074..1e0a9fe4 100644 --- a/terminal.c +++ b/terminal.c @@ -1373,12 +1373,12 @@ void term_out(Terminal *term) * Perform an actual beep if we're not overloaded. */ if (!cfg.bellovl || !term->beep_overloaded) { + beep(term->frontend, cfg.beep); if (cfg.beep == BELL_VISUAL) { term->in_vbell = TRUE; term->vbell_startpoint = ticks; term_update(term); - } else - beep(term->frontend, cfg.beep); + } } term->disptop = 0; } diff --git a/unix/pterm.c b/unix/pterm.c index 947e4411..4113e510 100644 --- a/unix/pterm.c +++ b/unix/pterm.c @@ -1332,9 +1332,16 @@ void sys_cursor(void *frontend, int x, int y) */ } +/* + * This is still called when mode==BELL_VISUAL, even though the + * visual bell is handled entirely within terminal.c, because we + * may want to perform additional actions on any kind of bell (for + * example, taskbar flashing in Windows). + */ void beep(void *frontend, int mode) { - gdk_beep(); + if (mode != BELL_VISUAL) + gdk_beep(); } int CharWidth(Context ctx, int uc)