[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:11:10 +0000 (UTC)
commit 98da36037b6401b423a7f3bcc3c44c9ce20f14d5
Author: Christian Persch <chpe gnome org>
Date: Thu Jan 14 17:05:34 2016 +0100
widget: Move some methods to VteTerminalPrivate
src/vteinternal.hh | 3 +++
src/vteseq.cc | 34 ++++++++++++++++++++++++----------
2 files changed, 27 insertions(+), 10 deletions(-)
---
diff --git a/src/vteinternal.hh b/src/vteinternal.hh
index 650f96a..ed20864 100644
--- a/src/vteinternal.hh
+++ b/src/vteinternal.hh
@@ -1107,6 +1107,9 @@ public:
inline void seq_clear_current_line();
inline void seq_clear_above_current();
inline void seq_scroll_text(vte::grid::row_t scroll_amount);
+ inline void seq_switch_screen(VteScreen *new_screen);
+ inline void seq_normal_screen();
+ inline void seq_alternate_screen();
};
#define m_invalidated_all invalidated_all
diff --git a/src/vteseq.cc b/src/vteseq.cc
index 8608a80..403193c 100644
--- a/src/vteseq.cc
+++ b/src/vteseq.cc
@@ -366,26 +366,40 @@ vte_sequence_handler_save_cursor (VteTerminal *terminal, GValueArray *params)
static void
vte_sequence_handler_normal_screen (VteTerminal *terminal, GValueArray *params)
{
+ terminal->pvt->seq_normal_screen();
+}
+
+void
+VteTerminalPrivate::seq_normal_screen()
+{
+ seq_switch_screen(&m_normal_screen);
+}
+
+void
+VteTerminalPrivate::seq_switch_screen(VteScreen *new_screen)
+{
+ /* if (new_screen == m_screen) return; ? */
+
/* cursor.row includes insert_delta, adjust accordingly */
- terminal->pvt->cursor.row -= terminal->pvt->screen->insert_delta;
- terminal->pvt->screen = &terminal->pvt->normal_screen;
- terminal->pvt->cursor.row += terminal->pvt->screen->insert_delta;
+ m_cursor.row -= m_screen->insert_delta;
+ m_screen = new_screen;
+ m_cursor.row += m_screen->insert_delta;
/* Make sure the ring is large enough */
- terminal->pvt->ensure_row();
+ ensure_row();
}
/* Switch to alternate screen. */
static void
vte_sequence_handler_alternate_screen (VteTerminal *terminal, GValueArray *params)
{
- /* cursor.row includes insert_delta, adjust accordingly */
- terminal->pvt->cursor.row -= terminal->pvt->screen->insert_delta;
- terminal->pvt->screen = &terminal->pvt->alternate_screen;
- terminal->pvt->cursor.row += terminal->pvt->screen->insert_delta;
+ terminal->pvt->seq_alternate_screen();
+}
- /* Make sure the ring is large enough */
- terminal->pvt->ensure_row();
+void
+VteTerminalPrivate::seq_alternate_screen()
+{
+ seq_switch_screen(&m_alternate_screen);
}
/* Switch to normal screen and restore cursor (in this order). */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]