From f445b28ce574a9529068b096c4be2224198876fb Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 14 Apr 2014 00:23:28 -0400 Subject: support a visual bell --- display.c | 5 +++++ display.h | 1 + parser.c | 3 +-- window-xlib.c | 10 ++++++++++ window-xlib.h | 1 + 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/display.c b/display.c index f8416cc..0084348 100644 --- a/display.c +++ b/display.c @@ -312,6 +312,11 @@ void runes_display_hide_cursor(RunesTerm *t) t->show_cursor = 0; } +void runes_display_visual_bell(RunesTerm *t) +{ + runes_window_backend_visual_bell(t); +} + static cairo_scaled_font_t *runes_display_make_font(RunesTerm *t) { cairo_font_face_t *font_face; diff --git a/display.h b/display.h index 11a26a0..ca117d4 100644 --- a/display.h +++ b/display.h @@ -26,5 +26,6 @@ void runes_display_set_bg_color(RunesTerm *t, cairo_pattern_t *color); void runes_display_reset_bg_color(RunesTerm *t); void runes_display_show_cursor(RunesTerm *t); void runes_display_hide_cursor(RunesTerm *t); +void runes_display_visual_bell(RunesTerm *t); #endif diff --git a/parser.c b/parser.c index d1be71e..7edf6dc 100644 --- a/parser.c +++ b/parser.c @@ -2125,8 +2125,7 @@ static void runes_parser_handle_text(RunesTerm *t, char *text, size_t len) static void runes_parser_handle_bel(RunesTerm *t) { - /* XXX */ - UNUSED(t); + runes_display_visual_bell(t); } static void runes_parser_handle_bs(RunesTerm *t) diff --git a/window-xlib.c b/window-xlib.c index 4338065..3f19168 100644 --- a/window-xlib.c +++ b/window-xlib.c @@ -197,6 +197,16 @@ void runes_window_backend_set_window_title( (unsigned char *)name, len); } +void runes_window_backend_visual_bell(RunesTerm *t) +{ + cairo_pattern_t *white; + + white = cairo_pattern_create_rgb(1.0, 1.0, 1.0); + cairo_set_source(t->backend_cr, white); + cairo_paint(t->backend_cr); + runes_window_backend_flush(t); +} + void runes_window_backend_request_close(RunesTerm *t) { XEvent e; diff --git a/window-xlib.h b/window-xlib.h index edcd24b..222a68c 100644 --- a/window-xlib.h +++ b/window-xlib.h @@ -37,6 +37,7 @@ void runes_window_backend_get_size(RunesTerm *t, int *xpixel, int *ypixel); void runes_window_backend_set_icon_name(RunesTerm *t, char *name, size_t len); void runes_window_backend_set_window_title( RunesTerm *t, char *name, size_t len); +void runes_window_backend_visual_bell(RunesTerm *t); void runes_window_backend_request_close(RunesTerm *t); void runes_window_backend_cleanup(RunesTerm *t); -- cgit v1.2.3-54-g00ecf