diff options
Diffstat (limited to 'display.c')
-rw-r--r-- | display.c | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -224,6 +224,25 @@ void runes_display_kill_line_forward(RunesTerm *t) t, t->cr, t->bgcolor, t->col, t->row, t->cols - t->col, 1); } +void runes_display_delete_characters(RunesTerm *t, int count) +{ + cairo_pattern_t *pattern; + cairo_matrix_t matrix; + + cairo_save(t->cr); + cairo_push_group(t->cr); + pattern = cairo_pattern_create_for_surface(cairo_get_target(t->cr)); + cairo_matrix_init_translate(&matrix, count * t->fontx, 0.0); + cairo_pattern_set_matrix(pattern, &matrix); + runes_display_paint_rectangle( + t, t->cr, pattern, t->col, t->row, t->cols - t->col - count, 1); + cairo_pop_group_to_source(t->cr); + cairo_paint(t->cr); + runes_display_paint_rectangle( + t, t->cr, t->colors[0], t->cols - count, t->row, count, 1); + cairo_restore(t->cr); +} + void runes_display_reset_text_attributes(RunesTerm *t) { runes_display_reset_fg_color(t); |