aboutsummaryrefslogtreecommitdiffstats
path: root/src/display.c
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-04-22 01:03:18 -0400
committerJesse Luehrs <doy@tozt.net>2014-04-22 01:03:18 -0400
commit811c7ebac662d1acc8b1b614c76b74c6043a48a0 (patch)
tree33ae57b01cacbdac7841408b2ba363925016d449 /src/display.c
parent9fe56a6eca5f27e18c4be2ed4ac42e07d050e098 (diff)
downloadrunes-811c7ebac662d1acc8b1b614c76b74c6043a48a0.tar.gz
runes-811c7ebac662d1acc8b1b614c76b74c6043a48a0.zip
implement ICH
Diffstat (limited to 'src/display.c')
-rw-r--r--src/display.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/display.c b/src/display.c
index f0f3f7f..cd99045 100644
--- a/src/display.c
+++ b/src/display.c
@@ -228,6 +228,27 @@ void runes_display_kill_line_backward(RunesTerm *t)
t, t->cr, t->bgdefault, 0, t->row, t->col, 1);
}
+void runes_display_insert_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 + count, t->row, t->cols - t->col - count, 1);
+ cairo_pattern_destroy(pattern);
+ cairo_pop_group_to_source(t->cr);
+ cairo_paint(t->cr);
+ runes_display_paint_rectangle(
+ t, t->cr, t->bgdefault, t->col, t->row, count, 1);
+ cairo_restore(t->cr);
+}
+
void runes_display_delete_lines(RunesTerm *t, int count)
{
cairo_pattern_t *pattern;