diff options
author | Jesse Luehrs <doy@tozt.net> | 2016-05-08 21:24:25 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2016-05-08 21:24:25 -0400 |
commit | d0dc43f157de69ca2b3cb483da010762eedf37b4 (patch) | |
tree | db0b2d916d23240e0ee9d0660361c09f7b94432a /src/display.c | |
parent | 493bd84ccaac973c7e86e90bfcccb3e37955cd52 (diff) | |
download | runes-d0dc43f157de69ca2b3cb483da010762eedf37b4.tar.gz runes-d0dc43f157de69ca2b3cb483da010762eedf37b4.zip |
simplify
Diffstat (limited to 'src/display.c')
-rw-r--r-- | src/display.c | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/src/display.c b/src/display.c index 4e6b510..8b21089 100644 --- a/src/display.c +++ b/src/display.c @@ -52,29 +52,27 @@ void runes_display_draw_screen(RunesTerm *t) RunesDisplay *display = t->display; int r, rows; - if (!t->scr->dirty && !display->dirty) { - runes_display_repaint_screen(t); - return; - } - - if (t->scr->dirty) { - display->has_selection = 0; - } + if (t->scr->dirty || display->dirty) { + if (t->scr->dirty) { + display->has_selection = 0; + } - cairo_push_group(display->cr); + cairo_push_group(display->cr); - /* XXX quite inefficient */ - rows = t->scr->grid->max.row; - for (r = 0; r < rows; ++r) { - int c = 0, cols = t->scr->grid->max.col; + /* XXX quite inefficient */ + rows = t->scr->grid->max.row; + for (r = 0; r < rows; ++r) { + int c = 0, cols = t->scr->grid->max.col; - while (c < cols) { - c += runes_display_draw_cell(t, r, c); + while (c < cols) { + c += runes_display_draw_cell(t, r, c); + } } + + cairo_pattern_destroy(display->buffer); + display->buffer = cairo_pop_group(display->cr); } - cairo_pattern_destroy(display->buffer); - display->buffer = cairo_pop_group(display->cr); runes_display_repaint_screen(t); t->scr->dirty = 0; |