[vte] widget: Move some methods to VteTerminalPrivate
- From: Christian Persch <chpe src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vte] widget: Move some methods to VteTerminalPrivate
- Date: Thu, 14 Jan 2016 16:12:16 +0000 (UTC)
commit 4dc6ceebfbb082e9ff969d648e46cade8b408d5c
Author: Christian Persch <chpe gnome org>
Date: Thu Jan 14 17:05:35 2016 +0100
widget: Move some methods to VteTerminalPrivate
src/vteinternal.hh | 7 +++++--
src/vteseq.cc | 49 ++++++++++++++++++++++++++++++-------------------
2 files changed, 35 insertions(+), 21 deletions(-)
---
diff --git a/src/vteinternal.hh b/src/vteinternal.hh
index e663b9f..5463399 100644
--- a/src/vteinternal.hh
+++ b/src/vteinternal.hh
@@ -1127,8 +1127,11 @@ public:
inline void seq_cb();
inline void seq_cd();
inline void seq_ce();
- void set_cursor_column(vte::grid::column_t col);
- void set_cursor_row(vte::grid::row_t row);
+ inline void set_cursor_column(vte::grid::column_t col);
+ inline void set_cursor_row(vte::grid::row_t row);
+ inline void reset_scrolling_region();
+ inline void set_scrolling_region(vte::grid::row_t start /* relative */,
+ vte::grid::row_t end /* relative */);
inline void set_keypad_mode(VteKeymode mode);
};
diff --git a/src/vteseq.cc b/src/vteseq.cc
index 5c964de..36b2754 100644
--- a/src/vteseq.cc
+++ b/src/vteseq.cc
@@ -1251,19 +1251,23 @@ vte_sequence_handler_carriage_return (VteTerminal *terminal, GValueArray *params
terminal->pvt->cursor.col = 0;
}
+void
+VteTerminalPrivate::reset_scrolling_region()
+{
+ m_scrolling_restricted = FALSE;
+ seq_home_cursor();
+}
+
/* Restrict scrolling and updates to a subset of the visible lines. */
static void
vte_sequence_handler_set_scrolling_region (VteTerminal *terminal, GValueArray *params)
{
- long start=-1, end=-1, rows;
+ long start=-1, end=-1;
GValue *value;
- VteScreen *screen;
/* We require two parameters. Anything less is a reset. */
- screen = terminal->pvt->screen;
if ((params == NULL) || (params->n_values < 2)) {
- terminal->pvt->scrolling_restricted = FALSE;
- terminal->pvt->seq_home_cursor();
+ terminal->pvt->reset_scrolling_region();
return;
}
/* Extract the two values. */
@@ -1275,37 +1279,44 @@ vte_sequence_handler_set_scrolling_region (VteTerminal *terminal, GValueArray *p
if (G_VALUE_HOLDS_LONG(value)) {
end = g_value_get_long(value) - 1;
}
- rows = terminal->pvt->row_count;
+
+ terminal->pvt->set_scrolling_region(start, end);
+}
+
+void
+VteTerminalPrivate::set_scrolling_region(vte::grid::row_t start /* relative */,
+ vte::grid::row_t end /* relative */)
+{
/* A (1-based) value of 0 means default. */
if (start == -1) {
start = 0;
}
if (end == -1) {
- end = rows - 1;
+ end = m_row_count - 1;
}
/* Bail out on garbage, require at least 2 rows, as per xterm. */
- if (start < 0 || start >= rows - 1 || end < start + 1) {
+ if (start < 0 || start >= m_row_count - 1 || end < start + 1) {
return;
}
- if (end >= rows) {
- end = rows - 1;
+ if (end >= m_row_count) {
+ end = m_row_count - 1;
}
/* Set the right values. */
- terminal->pvt->scrolling_region.start = start;
- terminal->pvt->scrolling_region.end = end;
- terminal->pvt->scrolling_restricted = TRUE;
- if (terminal->pvt->scrolling_region.start == 0 &&
- terminal->pvt->scrolling_region.end == rows - 1) {
+ m_scrolling_region.start = start;
+ m_scrolling_region.end = end;
+ m_scrolling_restricted = TRUE;
+ if (m_scrolling_region.start == 0 &&
+ m_scrolling_region.end == m_row_count - 1) {
/* Special case -- run wild, run free. */
- terminal->pvt->scrolling_restricted = FALSE;
+ m_scrolling_restricted = FALSE;
} else {
/* Maybe extend the ring -- bug 710483 */
- while (_vte_ring_next(screen->row_data) < screen->insert_delta + rows)
- _vte_ring_insert(screen->row_data, _vte_ring_next(screen->row_data));
+ while (_vte_ring_next(screen->row_data) < m_screen->insert_delta + m_row_count)
+ _vte_ring_insert(m_screen->row_data, _vte_ring_next(m_screen->row_data));
}
- terminal->pvt->seq_home_cursor();
+ seq_home_cursor();
}
/* Move the cursor to the beginning of the Nth next line, no scrolling. */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]