[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: Wed, 18 Nov 2015 20:17:50 +0000 (UTC)
commit 5cbae82e5bcdbb9ac6cfbc978486566919d90b33
Author: Christian Persch <chpe gnome org>
Date: Wed Nov 18 21:15:39 2015 +0100
widget: Move some methods to VteTerminalPrivate
src/vte.cc | 124 +++++++++++++++++++++++++---------------------------
src/vteinternal.hh | 20 ++++++++
2 files changed, 80 insertions(+), 64 deletions(-)
---
diff --git a/src/vte.cc b/src/vte.cc
index 6591372..d05f096 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -6290,13 +6290,12 @@ _vte_terminal_size_to_grid_size(VteTerminal *terminal,
return TRUE;
}
-static void
-vte_terminal_feed_mouse_event(VteTerminal *terminal,
- int button,
- gboolean is_drag,
- gboolean is_release,
- long col,
- long row)
+void
+VteTerminalPrivate::feed_mouse_event(int button,
+ bool is_drag,
+ bool is_release,
+ vte::grid::column_t col,
+ vte::grid::row_t row)
{
unsigned char cb = 0;
long cx, cy;
@@ -6327,18 +6326,18 @@ vte_terminal_feed_mouse_event(VteTerminal *terminal,
/* With the exception of the 1006 mode, button release is also encoded here. */
/* Note that if multiple extensions are enabled, the 1006 is used, so it's okay to check for only
that. */
- if (is_release && !terminal->pvt->mouse_xterm_extension) {
+ if (is_release && !m_mouse_xterm_extension) {
cb = 3;
}
/* Encode the modifiers. */
- if (terminal->pvt->modifiers & GDK_SHIFT_MASK) {
+ if (m_modifiers & GDK_SHIFT_MASK) {
cb |= 4;
}
- if (terminal->pvt->modifiers & VTE_META_MASK) {
+ if (m_modifiers & VTE_META_MASK) {
cb |= 8;
}
- if (terminal->pvt->modifiers & GDK_CONTROL_MASK) {
+ if (m_modifiers & GDK_CONTROL_MASK) {
cb |= 16;
}
@@ -6352,10 +6351,10 @@ vte_terminal_feed_mouse_event(VteTerminal *terminal,
cy = row + 1;
/* Check the extensions in decreasing order of preference. Encoding the release event above assumes
that 1006 comes first. */
- if (terminal->pvt->mouse_xterm_extension) {
+ if (m_mouse_xterm_extension) {
/* xterm's extended mode (1006) */
len = g_snprintf(buf, sizeof(buf), _VTE_CAP_CSI "<%d;%ld;%ld%c", cb, cx, cy, is_release ? 'm'
: 'M');
- } else if (terminal->pvt->mouse_urxvt_extension) {
+ } else if (m_mouse_urxvt_extension) {
/* urxvt's extended mode (1015) */
len = g_snprintf(buf, sizeof(buf), _VTE_CAP_CSI "%d;%ld;%ldM", 32 + cb, cx, cy);
} else if (cx <= 231 && cy <= 231) {
@@ -6364,25 +6363,23 @@ vte_terminal_feed_mouse_event(VteTerminal *terminal,
}
/* Send event direct to the child, this is binary not text data */
- vte_terminal_feed_child_binary(terminal, (guint8*) buf, len);
+ vte_terminal_feed_child_binary(m_terminal, (guint8*) buf, len);
}
-static void
-vte_terminal_send_mouse_button_internal(VteTerminal *terminal,
- int button,
- gboolean is_release,
- long x,
- long y)
+void
+VteTerminalPrivate::send_mouse_button_internal(int button,
+ bool is_release,
+ long x,
+ long y)
{
long col, row;
- if (!terminal->pvt->mouse_pixels_to_grid (
- x - terminal->pvt->padding.left,
- y - terminal->pvt->padding.top,
- &col, &row))
+ if (!mouse_pixels_to_grid (x - m_padding.left,
+ y - m_padding.top,
+ &col, &row))
return;
- vte_terminal_feed_mouse_event(terminal, button, FALSE /* not drag */, is_release, col, row);
+ feed_mouse_event(button, false /* not drag */, is_release, col, row);
}
void
@@ -6414,38 +6411,37 @@ vte_terminal_feed_focus_event_internal(VteTerminal *terminal,
*
* Returns: %TRUE iff the event was consumed
*/
-static gboolean
-vte_terminal_maybe_send_mouse_button(VteTerminal *terminal,
- GdkEventButton *event)
+bool
+VteTerminalPrivate::maybe_send_mouse_button(GdkEventButton *event)
{
- vte_terminal_read_modifiers (terminal, (GdkEvent*) event);
+ vte_terminal_read_modifiers (m_terminal, (GdkEvent*)event);
switch (event->type) {
case GDK_BUTTON_PRESS:
- if (terminal->pvt->mouse_tracking_mode < MOUSE_TRACKING_SEND_XY_ON_CLICK) {
- return FALSE;
+ if (m_mouse_tracking_mode < MOUSE_TRACKING_SEND_XY_ON_CLICK) {
+ return false;
}
break;
case GDK_BUTTON_RELEASE: {
- if (terminal->pvt->mouse_tracking_mode < MOUSE_TRACKING_SEND_XY_ON_BUTTON) {
- return FALSE;
+ if (m_mouse_tracking_mode < MOUSE_TRACKING_SEND_XY_ON_BUTTON) {
+ return false;
}
break;
}
default:
- return FALSE;
+ return false;
break;
}
- vte_terminal_send_mouse_button_internal(terminal,
+ send_mouse_button_internal(
event->button,
event->type == GDK_BUTTON_RELEASE,
event->x, event->y);
- return TRUE;
+ return true;
}
/*
- * vte_terminal_maybe_send_mouse_drag:
+ * VteTerminalPrivate::maybe_send_mouse_drag:
* @terminal:
* @event:
*
@@ -6454,54 +6450,54 @@ vte_terminal_maybe_send_mouse_button(VteTerminal *terminal,
*
* Returns: %TRUE iff the event was consumed
*/
-static gboolean
-vte_terminal_maybe_send_mouse_drag(VteTerminal *terminal, GdkEventMotion *event)
+bool
+VteTerminalPrivate::maybe_send_mouse_drag(GdkEventMotion *event)
{
long col, row;
int button;
- if (!terminal->pvt->mouse_pixels_to_grid (
- (long) event->x - terminal->pvt->padding.left,
- (long) event->y - terminal->pvt->padding.top,
+ if (!mouse_pixels_to_grid ((long) event->x - m_padding.left,
+ (long) event->y - m_padding.top,
&col, &row))
- return FALSE;
+ return false;
/* First determine if we even want to send notification. */
switch (event->type) {
case GDK_MOTION_NOTIFY:
- if (terminal->pvt->mouse_tracking_mode < MOUSE_TRACKING_CELL_MOTION_TRACKING)
- return FALSE;
+ if (m_mouse_tracking_mode < MOUSE_TRACKING_CELL_MOTION_TRACKING)
+ return false;
- if (terminal->pvt->mouse_tracking_mode < MOUSE_TRACKING_ALL_MOTION_TRACKING) {
+ if (m_mouse_tracking_mode < MOUSE_TRACKING_ALL_MOTION_TRACKING) {
- if (terminal->pvt->mouse_pressed_buttons == 0) {
- return FALSE;
+ if (m_mouse_pressed_buttons == 0) {
+ return false;
}
/* the xterm doc is not clear as to whether
* all-tracking also sends degenerate same-cell events */
- if (col == terminal->pvt->mouse_last_col &&
- row == terminal->pvt->mouse_last_row)
- return FALSE;
+ if (col == m_mouse_last_column &&
+ row == m_mouse_last_row)
+ return false;
}
break;
default:
- return FALSE;
+ return false;
break;
}
/* As per xterm, report the leftmost pressed button - if any. */
- if (terminal->pvt->mouse_pressed_buttons & 1)
+ if (m_mouse_pressed_buttons & 1)
button = 1;
- else if (terminal->pvt->mouse_pressed_buttons & 2)
+ else if (m_mouse_pressed_buttons & 2)
button = 2;
- else if (terminal->pvt->mouse_pressed_buttons & 4)
+ else if (m_mouse_pressed_buttons & 4)
button = 3;
else
button = 0;
- vte_terminal_feed_mouse_event(terminal, button,
- TRUE /* drag */, FALSE /* not release */,
- col, row);
- return TRUE;
+
+ feed_mouse_event(button,
+ true /* drag */, false /* not release */,
+ col, row);
+ return true;
}
/* Clear all match hilites. */
@@ -8111,7 +8107,7 @@ vte_terminal_motion_notify(GtkWidget *widget, GdkEventMotion *event)
}
if (!handled && terminal->pvt->input_enabled)
- vte_terminal_maybe_send_mouse_drag(terminal, event);
+ terminal->pvt->maybe_send_mouse_drag(event);
break;
default:
break;
@@ -8235,7 +8231,7 @@ vte_terminal_button_press(GtkWidget *widget, GdkEventButton *event)
/* If we haven't done anything yet, try sending the mouse
* event to the app. */
if (handled == FALSE) {
- handled = vte_terminal_maybe_send_mouse_button(terminal, event);
+ handled = terminal->pvt->maybe_send_mouse_button(event);
}
break;
case GDK_2BUTTON_PRESS:
@@ -8340,7 +8336,7 @@ vte_terminal_button_release(GtkWidget *widget, GdkEventButton *event)
break;
}
if (!handled && terminal->pvt->input_enabled) {
- handled = vte_terminal_maybe_send_mouse_button(terminal, event);
+ handled = terminal->pvt->maybe_send_mouse_button(event);
}
break;
default:
@@ -11088,9 +11084,9 @@ vte_terminal_scroll(GtkWidget *widget, GdkEventScroll *event)
cnt = -cnt;
for (i = 0; i < cnt; i++) {
/* Encode the parameters and send them to the app. */
- vte_terminal_send_mouse_button_internal(terminal,
+ terminal->pvt->send_mouse_button_internal(
button,
- FALSE /* not release */,
+ false /* not release */,
event->x,
event->y);
}
diff --git a/src/vteinternal.hh b/src/vteinternal.hh
index 90dcfe8..c10cb31 100644
--- a/src/vteinternal.hh
+++ b/src/vteinternal.hh
@@ -508,6 +508,19 @@ public:
vte::grid::column_t *col,
vte::grid::row_t *row);
+ void feed_mouse_event(int button,
+ bool is_drag,
+ bool is_release,
+ vte::grid::column_t col,
+ vte::grid::row_t row);
+ void send_mouse_button_internal(int button,
+ bool is_release,
+ long x,
+ long y);
+ bool maybe_send_mouse_button(GdkEventButton *event);
+ bool maybe_send_mouse_drag(GdkEventMotion *event);
+
+
};
#define m_invalidated_all invalidated_all
@@ -534,4 +547,11 @@ public:
#define m_match_contents match_contents
#define m_match_regex_mode match_regex_mode
#define m_screen screen
+#define m_mouse_tracking_mode mouse_tracking_mode
+#define m_mouse_pressed_buttons mouse_pressed_buttons
+#define m_mouse_last_column mouse_last_col
+#define m_mouse_last_row mouse_last_row
+#define m_mouse_xterm_extension mouse_xterm_extension
+#define m_mouse_urxvt_extension mouse_urxvt_extension
+#define m_modifiers modifiers
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]