[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:13:27 +0000 (UTC)
commit 0cd8aaa8d85ddd4c1853445fafaf8425a92f2791
Author: Christian Persch <chpe gnome org>
Date: Thu Jan 14 17:05:37 2016 +0100
widget: Move some methods to VteTerminalPrivate
src/vteinternal.hh | 2 +
src/vteseq.cc | 96 ++++++++++++++++++++++++++-------------------------
2 files changed, 51 insertions(+), 47 deletions(-)
---
diff --git a/src/vteinternal.hh b/src/vteinternal.hh
index 8c32ad9..ffbd95a 100644
--- a/src/vteinternal.hh
+++ b/src/vteinternal.hh
@@ -1158,6 +1158,8 @@ public:
inline void seq_erase_in_line(long param);
inline void seq_insert_lines(vte::grid::row_t param);
inline void seq_delete_lines(vte::grid::row_t param);
+ inline void seq_device_status_report(long param);
+ inline void seq_dec_device_status_report(long param);
};
#define m_invalidated_all invalidated_all
diff --git a/src/vteseq.cc b/src/vteseq.cc
index 494636b..1af8ed6 100644
--- a/src/vteseq.cc
+++ b/src/vteseq.cc
@@ -2806,103 +2806,105 @@ VteTerminalPrivate::seq_delete_lines(vte::grid::row_t param)
static void
vte_sequence_handler_device_status_report (VteTerminal *terminal, GValueArray *params)
{
- GValue *value;
- VteScreen *screen;
- long param, rowval, origin, rowmax;
- char buf[128];
-
- screen = terminal->pvt->screen;
-
if ((params != NULL) && (params->n_values > 0)) {
- value = g_value_array_get_nth(params, 0);
+ GValue* value = g_value_array_get_nth(params, 0);
if (G_VALUE_HOLDS_LONG(value)) {
- param = g_value_get_long(value);
- switch (param) {
+ auto param = g_value_get_long(value);
+ terminal->pvt->seq_device_status_report(param);
+ }
+ }
+}
+
+void
+VteTerminalPrivate::seq_device_status_report(long param)
+{
+ switch (param) {
case 5:
/* Send a thumbs-up sequence. */
- vte_terminal_feed_child(terminal, _VTE_CAP_CSI "0n", -1);
+ feed_child(_VTE_CAP_CSI "0n", -1);
break;
case 6:
/* Send the cursor position. */
- if (terminal->pvt->origin_mode &&
- terminal->pvt->scrolling_restricted) {
- origin = terminal->pvt->scrolling_region.start;
- rowmax = terminal->pvt->scrolling_region.end;
+ vte::grid::row_t rowval, origin, rowmax;
+ if (m_origin_mode &&
+ m_scrolling_restricted) {
+ origin = m_scrolling_region.start;
+ rowmax = m_scrolling_region.end;
} else {
origin = 0;
- rowmax = terminal->pvt->row_count - 1;
+ rowmax = m_row_count - 1;
}
- rowval = terminal->pvt->cursor.row - screen->insert_delta - origin;
+ // FIXMEchpe this looks wrong. shouldn't this first clamp to origin,rowmax
and *then* subtract origin?
+ rowval = m_cursor.row - m_screen->insert_delta - origin;
rowval = CLAMP(rowval, 0, rowmax);
- g_snprintf(buf, sizeof(buf),
+ char buf[128];
+ g_snprintf(buf, sizeof(buf),
_VTE_CAP_CSI "%ld;%ldR",
rowval + 1,
- CLAMP(terminal->pvt->cursor.col + 1,
- 1, terminal->pvt->column_count));
- vte_terminal_feed_child(terminal, buf, -1);
+ CLAMP(m_cursor.col + 1, 1, m_column_count));
+ feed_child(buf, -1);
break;
default:
break;
- }
- }
- }
+ }
}
/* DEC-style device status reports. */
static void
vte_sequence_handler_dec_device_status_report (VteTerminal *terminal, GValueArray *params)
{
- GValue *value;
- VteScreen *screen;
- long param, rowval, origin, rowmax;
- char buf[128];
-
- screen = terminal->pvt->screen;
-
if ((params != NULL) && (params->n_values > 0)) {
- value = g_value_array_get_nth(params, 0);
+ GValue* value = g_value_array_get_nth(params, 0);
if (G_VALUE_HOLDS_LONG(value)) {
- param = g_value_get_long(value);
+ auto param = g_value_get_long(value);
+ terminal->pvt->seq_dec_device_status_report(param);
+ }
+ }
+}
+
+void
+VteTerminalPrivate::seq_dec_device_status_report(long param)
+{
switch (param) {
case 6:
/* Send the cursor position. */
- if (terminal->pvt->origin_mode &&
- terminal->pvt->scrolling_restricted) {
- origin = terminal->pvt->scrolling_region.start;
- rowmax = terminal->pvt->scrolling_region.end;
+ vte::grid::row_t rowval, origin, rowmax;
+ if (m_origin_mode &&
+ m_scrolling_restricted) {
+ origin = m_scrolling_region.start;
+ rowmax = m_scrolling_region.end;
} else {
origin = 0;
- rowmax = terminal->pvt->row_count - 1;
+ rowmax = m_row_count - 1;
}
- rowval = terminal->pvt->cursor.row - screen->insert_delta - origin;
+ // FIXMEchpe this looks wrong. shouldn't this first clamp to origin,rowmax
and *then* subtract origin?
+ rowval = m_cursor.row - m_screen->insert_delta - origin;
rowval = CLAMP(rowval, 0, rowmax);
+ char buf[128];
g_snprintf(buf, sizeof(buf),
_VTE_CAP_CSI "?%ld;%ldR",
rowval + 1,
- CLAMP(terminal->pvt->cursor.col + 1,
- 1, terminal->pvt->column_count));
- vte_terminal_feed_child(terminal, buf, -1);
+ CLAMP(m_cursor.col + 1, 1, m_column_count));
+ feed_child(buf, -1);
break;
case 15:
/* Send printer status -- 10 = ready,
* 11 = not ready. We don't print. */
- vte_terminal_feed_child(terminal, _VTE_CAP_CSI "?11n", -1);
+ feed_child(_VTE_CAP_CSI "?11n", -1);
break;
case 25:
/* Send UDK status -- 20 = locked,
* 21 = not locked. I don't even know what
* that means, but punt anyway. */
- vte_terminal_feed_child(terminal, _VTE_CAP_CSI "?20n", -1);
+ feed_child(_VTE_CAP_CSI "?20n", -1);
break;
case 26:
/* Send keyboard status. 50 = no locator. */
- vte_terminal_feed_child(terminal, _VTE_CAP_CSI "?50n", -1);
+ feed_child(_VTE_CAP_CSI "?50n", -1);
break;
default:
break;
}
- }
- }
}
/* Restore a certain terminal attribute. */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]