[vte] Add VteVisualPosition
- From: Behdad Esfahbod <behdad src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vte] Add VteVisualPosition
- Date: Mon, 3 May 2010 08:29:02 +0000 (UTC)
commit 95c30fc52edd2d5de68267fdf3847b9e639d218d
Author: Behdad Esfahbod <behdad behdad org>
Date: Sun May 2 03:35:21 2010 -0400
Add VteVisualPosition
src/vte-private.h | 16 ++++------
src/vte.c | 80 ++++++++++++++++++++++++++--------------------------
src/vteseq.c | 2 +-
3 files changed, 48 insertions(+), 50 deletions(-)
---
diff --git a/src/vte-private.h b/src/vte-private.h
index e89493c..6502536 100644
--- a/src/vte-private.h
+++ b/src/vte-private.h
@@ -143,6 +143,10 @@ typedef struct _VteWordCharRange {
gunichar start, end;
} VteWordCharRange;
+typedef struct _VteVisualPosition {
+ long row, col;
+} VteVisualPosition;
+
/* Terminal private data. */
struct _VteTerminalPrivate {
/* Emulation setup data. */
@@ -205,9 +209,7 @@ struct _VteTerminalPrivate {
* screen, which seems to be a DEC-specific feature. */
struct _VteScreen {
VteRing row_data[1]; /* buffer contents */
- struct vte_cursor_position {
- long row, col;
- } cursor_current, cursor_saved;
+ VteVisualPosition cursor_current, cursor_saved;
/* the current and saved positions of
the [insertion] cursor -- current is
absolute, saved is relative to the
@@ -256,9 +258,7 @@ struct _VteTerminalPrivate {
struct selection_event_coords {
long x, y;
} selection_origin, selection_last;
- struct selection_cell_coords {
- long row, col;
- } selection_start, selection_end;
+ VteVisualPosition selection_start, selection_end;
/* Miscellaneous options. */
VteTerminalEraseBinding backspace_binding, delete_binding;
@@ -312,9 +312,7 @@ struct _VteTerminalPrivate {
GArray *match_regexes;
char *match;
int match_tag;
- struct {
- long row, column;
- } match_start, match_end;
+ VteVisualPosition match_start, match_end;
gboolean show_match;
/* Search data. */
diff --git a/src/vte.c b/src/vte.c
index fa53085..17752e5 100644
--- a/src/vte.c
+++ b/src/vte.c
@@ -1913,18 +1913,18 @@ rowcol_inside_match (VteTerminal *terminal, glong row, glong col)
{
if (terminal->pvt->match_start.row == terminal->pvt->match_end.row) {
return row == terminal->pvt->match_start.row &&
- col >= terminal->pvt->match_start.column &&
- col <= terminal->pvt->match_end.column;
+ col >= terminal->pvt->match_start.col &&
+ col <= terminal->pvt->match_end.col;
} else {
if (row < terminal->pvt->match_start.row ||
row > terminal->pvt->match_end.row) {
return FALSE;
}
if (row == terminal->pvt->match_start.row) {
- return col >= terminal->pvt->match_start.column;
+ return col >= terminal->pvt->match_start.col;
}
if (row == terminal->pvt->match_end.row) {
- return col <= terminal->pvt->match_end.column;
+ return col <= terminal->pvt->match_end.col;
}
return TRUE;
}
@@ -3795,7 +3795,7 @@ static void
vte_terminal_process_incoming(VteTerminal *terminal)
{
VteScreen *screen;
- struct vte_cursor_position cursor;
+ VteVisualPosition cursor;
gboolean cursor_visible;
GdkPoint bbox_topleft, bbox_bottomright;
gunichar *wbuf, c;
@@ -5449,7 +5449,7 @@ vte_cell_is_between(glong col, glong row,
static gboolean
vte_cell_is_selected(VteTerminal *terminal, glong col, glong row, gpointer data)
{
- struct selection_cell_coords ss, se;
+ VteVisualPosition ss, se;
/* If there's nothing selected, it's an easy question to answer. */
if (!terminal->pvt->has_selection) {
@@ -5672,13 +5672,13 @@ vte_terminal_match_hilite_clear(VteTerminal *terminal)
{
long srow, scolumn, erow, ecolumn;
srow = terminal->pvt->match_start.row;
- scolumn = terminal->pvt->match_start.column;
+ scolumn = terminal->pvt->match_start.col;
erow = terminal->pvt->match_end.row;
- ecolumn = terminal->pvt->match_end.column;
+ ecolumn = terminal->pvt->match_end.col;
terminal->pvt->match_start.row = -1;
- terminal->pvt->match_start.column = -1;
+ terminal->pvt->match_start.col = -1;
terminal->pvt->match_end.row = -2;
- terminal->pvt->match_end.column = -2;
+ terminal->pvt->match_end.col = -2;
if (terminal->pvt->match_tag != -1) {
_vte_debug_print(VTE_DEBUG_EVENTS,
"Clearing hilite (%ld,%ld) to (%ld,%ld).\n",
@@ -5703,18 +5703,18 @@ cursor_inside_match (VteTerminal *terminal, long x, long y)
glong row = y / height + terminal->pvt->screen->scroll_delta;
if (terminal->pvt->match_start.row == terminal->pvt->match_end.row) {
return row == terminal->pvt->match_start.row &&
- col >= terminal->pvt->match_start.column &&
- col <= terminal->pvt->match_end.column;
+ col >= terminal->pvt->match_start.col &&
+ col <= terminal->pvt->match_end.col;
} else {
if (row < terminal->pvt->match_start.row ||
row > terminal->pvt->match_end.row) {
return FALSE;
}
if (row == terminal->pvt->match_start.row) {
- return col >= terminal->pvt->match_start.column;
+ return col >= terminal->pvt->match_start.col;
}
if (row == terminal->pvt->match_end.row) {
- return col <= terminal->pvt->match_end.column;
+ return col <= terminal->pvt->match_end.col;
}
return TRUE;
}
@@ -5726,8 +5726,8 @@ vte_terminal_match_hilite_show(VteTerminal *terminal, long x, long y)
if(terminal->pvt->match != NULL && !terminal->pvt->show_match){
if (cursor_inside_match (terminal, x, y)) {
_vte_invalidate_region (terminal,
- terminal->pvt->match_start.column,
- terminal->pvt->match_end.column,
+ terminal->pvt->match_start.col,
+ terminal->pvt->match_end.col,
terminal->pvt->match_start.row,
terminal->pvt->match_end.row,
FALSE);
@@ -5740,8 +5740,8 @@ vte_terminal_match_hilite_hide(VteTerminal *terminal)
{
if(terminal->pvt->match != NULL && terminal->pvt->show_match){
_vte_invalidate_region (terminal,
- terminal->pvt->match_start.column,
- terminal->pvt->match_end.column,
+ terminal->pvt->match_start.col,
+ terminal->pvt->match_end.col,
terminal->pvt->match_start.row,
terminal->pvt->match_end.row,
FALSE);
@@ -5781,8 +5781,8 @@ vte_terminal_match_hilite_update(VteTerminal *terminal, long x, long y)
if (terminal->pvt->show_match) {
/* Repaint what used to be hilited, if anything. */
_vte_invalidate_region(terminal,
- terminal->pvt->match_start.column,
- terminal->pvt->match_end.column,
+ terminal->pvt->match_start.col,
+ terminal->pvt->match_end.col,
terminal->pvt->match_start.row,
terminal->pvt->match_end.row,
FALSE);
@@ -5795,7 +5795,7 @@ vte_terminal_match_hilite_update(VteTerminal *terminal, long x, long y)
struct _VteCharAttributes,
start);
terminal->pvt->match_start.row = attr->row;
- terminal->pvt->match_start.column = attr->column;
+ terminal->pvt->match_start.col = attr->column;
attr = NULL;
if ((guint) end < terminal->pvt->match_attributes->len) {
@@ -5803,14 +5803,14 @@ vte_terminal_match_hilite_update(VteTerminal *terminal, long x, long y)
struct _VteCharAttributes,
end);
terminal->pvt->match_end.row = attr->row;
- terminal->pvt->match_end.column = attr->column;
+ terminal->pvt->match_end.col = attr->column;
}
}
if (attr == NULL) { /* i.e. if either endpoint is not found */
terminal->pvt->match_start.row = -1;
- terminal->pvt->match_start.column = -1;
+ terminal->pvt->match_start.col = -1;
terminal->pvt->match_end.row = -2;
- terminal->pvt->match_end.column = -2;
+ terminal->pvt->match_end.col = -2;
g_assert (match == NULL);
}
@@ -5821,25 +5821,25 @@ vte_terminal_match_hilite_update(VteTerminal *terminal, long x, long y)
if (match == NULL) {
_vte_debug_print(VTE_DEBUG_EVENTS,
"No matches. [(%ld,%ld) to (%ld,%ld)]\n",
- terminal->pvt->match_start.column,
+ terminal->pvt->match_start.col,
terminal->pvt->match_start.row,
- terminal->pvt->match_end.column,
+ terminal->pvt->match_end.col,
terminal->pvt->match_end.row);
terminal->pvt->show_match = FALSE;
} else {
terminal->pvt->show_match = TRUE;
/* Repaint the newly-hilited area. */
_vte_invalidate_region(terminal,
- terminal->pvt->match_start.column,
- terminal->pvt->match_end.column,
+ terminal->pvt->match_start.col,
+ terminal->pvt->match_end.col,
terminal->pvt->match_start.row,
terminal->pvt->match_end.row,
FALSE);
_vte_debug_print(VTE_DEBUG_EVENTS,
"Matched (%ld,%ld) to (%ld,%ld).\n",
- terminal->pvt->match_start.column,
+ terminal->pvt->match_start.col,
terminal->pvt->match_start.row,
- terminal->pvt->match_end.column,
+ terminal->pvt->match_end.col,
terminal->pvt->match_end.row);
}
}
@@ -6389,7 +6389,7 @@ vte_terminal_extend_selection_expand (VteTerminal *terminal)
VteScreen *screen;
const VteRowData *rowdata;
const VteCell *cell;
- struct selection_cell_coords *sc, *ec;
+ VteVisualPosition *sc, *ec;
if (terminal->pvt->selection_block_mode)
return;
@@ -6592,7 +6592,7 @@ vte_terminal_extend_selection(VteTerminal *terminal, long x, long y,
int width, height;
long delta, residual;
struct selection_event_coords *origin, *last, *start, *end;
- struct selection_cell_coords old_start, old_end, *sc, *ec, *so, *eo;
+ VteVisualPosition old_start, old_end, *sc, *ec, *so, *eo;
gboolean invalidate_selected = FALSE;
gboolean had_selection;
@@ -10219,9 +10219,9 @@ vte_terminal_draw_rows(VteTerminal *terminal,
bold = cell->attr.bold;
if (terminal->pvt->show_match) {
hilite = vte_cell_is_between(i, row,
- terminal->pvt->match_start.column,
+ terminal->pvt->match_start.col,
terminal->pvt->match_start.row,
- terminal->pvt->match_end.column,
+ terminal->pvt->match_end.col,
terminal->pvt->match_end.row,
TRUE);
} else {
@@ -10324,9 +10324,9 @@ vte_terminal_draw_rows(VteTerminal *terminal,
nhilite = FALSE;
if (terminal->pvt->show_match) {
nhilite = vte_cell_is_between(j, row,
- terminal->pvt->match_start.column,
+ terminal->pvt->match_start.col,
terminal->pvt->match_start.row,
- terminal->pvt->match_end.column,
+ terminal->pvt->match_end.col,
terminal->pvt->match_end.row,
TRUE);
}
@@ -10626,9 +10626,9 @@ vte_terminal_paint_cursor(VteTerminal *terminal)
gboolean hilite = FALSE;
if (cell && terminal->pvt->show_match) {
hilite = vte_cell_is_between(col, row,
- terminal->pvt->match_start.column,
+ terminal->pvt->match_start.col,
terminal->pvt->match_start.row,
- terminal->pvt->match_end.column,
+ terminal->pvt->match_end.col,
terminal->pvt->match_end.row,
TRUE);
}
@@ -13935,7 +13935,7 @@ _vte_terminal_get_selection(VteTerminal *terminal)
void
_vte_terminal_get_start_selection(VteTerminal *terminal, long *col, long *row)
{
- struct selection_cell_coords ss;
+ VteVisualPosition ss;
g_return_if_fail(VTE_IS_TERMINAL(terminal));
@@ -13953,7 +13953,7 @@ _vte_terminal_get_start_selection(VteTerminal *terminal, long *col, long *row)
void
_vte_terminal_get_end_selection(VteTerminal *terminal, long *col, long *row)
{
- struct selection_cell_coords se;
+ VteVisualPosition se;
g_return_if_fail(VTE_IS_TERMINAL(terminal));
diff --git a/src/vteseq.c b/src/vteseq.c
index 0accae5..6c7323d 100644
--- a/src/vteseq.c
+++ b/src/vteseq.c
@@ -1559,7 +1559,7 @@ vte_sequence_handler_horizontal_and_vertical_position (VteTerminal *terminal, GV
static void
vte_sequence_handler_ic (VteTerminal *terminal, GValueArray *params)
{
- struct vte_cursor_position save;
+ VteVisualPosition save;
VteScreen *screen;
screen = terminal->pvt->screen;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]