From af8dd428a3e2d5c24ea2141a3c2bcd8a0398e736 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sun, 18 May 2014 21:31:35 -0400 Subject: draw the selected region as inverse --- src/display.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/display.c') diff --git a/src/display.c b/src/display.c index d5556d6..8c9d909 100644 --- a/src/display.c +++ b/src/display.c @@ -190,9 +190,14 @@ static void runes_display_recalculate_font_metrics(RunesTerm *t) static int runes_display_draw_cell(RunesTerm *t, int row, int col) { RunesDisplay *display = &t->display; - struct runes_cell *cell = &t->scr.grid->rows[row + t->scr.grid->row_top - display->row_visible_offset].cells[col]; + struct runes_loc loc = { + row + t->scr.grid->row_top - display->row_visible_offset, col }; + struct runes_cell *cell = &t->scr.grid->rows[loc.row].cells[loc.col]; cairo_pattern_t *bg = NULL, *fg = NULL; int bg_is_custom = 0, fg_is_custom = 0; + int selected; + + selected = runes_screen_loc_is_selected(t, loc); switch (cell->attrs.bgcolor.type) { case RUNES_COLOR_DEFAULT: @@ -232,7 +237,7 @@ static int runes_display_draw_cell(RunesTerm *t, int row, int col) break; } - if (cell->attrs.inverse) { + if (cell->attrs.inverse ^ selected) { if (cell->attrs.fgcolor.id == cell->attrs.bgcolor.id) { fg = t->config.bgdefault; bg = t->config.fgdefault; -- cgit v1.2.3-54-g00ecf