aboutsummaryrefslogtreecommitdiffstats
path: root/src/display.c
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2016-05-08 21:24:25 -0400
committerJesse Luehrs <doy@tozt.net>2016-05-08 21:24:25 -0400
commitd0dc43f157de69ca2b3cb483da010762eedf37b4 (patch)
treedb0b2d916d23240e0ee9d0660361c09f7b94432a /src/display.c
parent493bd84ccaac973c7e86e90bfcccb3e37955cd52 (diff)
downloadrunes-d0dc43f157de69ca2b3cb483da010762eedf37b4.tar.gz
runes-d0dc43f157de69ca2b3cb483da010762eedf37b4.zip
simplify
Diffstat (limited to 'src/display.c')
-rw-r--r--src/display.c32
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;