termite/expose_select_text.patch

173 lines
5.6 KiB
Diff

diff -aur vte-0.32.2-old/src/vte.c vte-0.32.2/src/vte.c
--- vte-0.32.2-old/src/vte.c 2012-07-13 21:09:04.003969877 -0400
+++ vte-0.32.2/src/vte.c 2012-08-27 00:38:20.036602880 -0400
@@ -129,7 +129,6 @@
gpointer data,
GArray *attributes,
gboolean include_trailing_spaces);
-static void _vte_terminal_disconnect_pty_read(VteTerminal *terminal);
static void _vte_terminal_disconnect_pty_write(VteTerminal *terminal);
static void vte_terminal_stop_processing (VteTerminal *terminal);
@@ -3508,8 +3507,8 @@
_vte_debug_print (VTE_DEBUG_IO, "removed poll of vte_terminal_io_read\n");
terminal->pvt->pty_input_source = 0;
}
-static void
-_vte_terminal_connect_pty_read(VteTerminal *terminal)
+void
+vte_terminal_connect_pty_read(VteTerminal *terminal)
{
if (terminal->pvt->pty_channel == NULL) {
return;
@@ -3560,8 +3559,8 @@
}
}
-static void
-_vte_terminal_disconnect_pty_read(VteTerminal *terminal)
+void
+vte_terminal_disconnect_pty_read(VteTerminal *terminal)
{
if (terminal->pvt->pty_input_source != 0) {
_vte_debug_print (VTE_DEBUG_IO, "disconnecting poll of vte_terminal_io_read\n");
@@ -6676,7 +6675,7 @@
terminal->pvt->selection_start.row);
/* Temporarily stop caring about input from the child. */
- _vte_terminal_disconnect_pty_read(terminal);
+ vte_terminal_disconnect_pty_read(terminal);
}
static gboolean
@@ -6693,7 +6692,7 @@
terminal->pvt->selecting = FALSE;
/* Reconnect to input from the child if we paused it. */
- _vte_terminal_connect_pty_read(terminal);
+ vte_terminal_connect_pty_read(terminal);
return TRUE;
}
@@ -8994,7 +8993,7 @@
#endif
kill(terminal->pvt->pty_pid, SIGHUP);
}
- _vte_terminal_disconnect_pty_read(terminal);
+ vte_terminal_disconnect_pty_read(terminal);
_vte_terminal_disconnect_pty_write(terminal);
if (terminal->pvt->pty_channel != NULL) {
g_io_channel_unref (terminal->pvt->pty_channel);
@@ -13641,6 +13640,12 @@
g_object_notify(G_OBJECT(terminal), "cursor-blink-mode");
}
+void
+vte_terminal_set_cursor_visible(VteTerminal *terminal, gboolean visible) {
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ terminal->pvt->cursor_visible = visible;
+}
+
/**
* vte_terminal_get_cursor_blink_mode:
* @terminal: a #VteTerminal
@@ -14384,7 +14389,7 @@
g_object_freeze_notify(object);
if (pvt->pty != NULL) {
- _vte_terminal_disconnect_pty_read(terminal);
+ vte_terminal_disconnect_pty_read(terminal);
_vte_terminal_disconnect_pty_write(terminal);
if (terminal->pvt->pty_channel != NULL) {
@@ -14440,7 +14445,7 @@
_vte_terminal_setup_utf8 (terminal);
/* Open channels to listen for input on. */
- _vte_terminal_connect_pty_read (terminal);
+ vte_terminal_connect_pty_read (terminal);
g_object_notify(object, "pty");
g_object_notify(object, "pty-object");
@@ -14567,6 +14572,51 @@
}
}
+/**
+ * vte_terminal_get_selection_block_mode:
+ * @terminal: a #VteTerminal
+ *
+ * Checks whether or not block selection is enabled.
+ *
+ * Returns: %TRUE if block selection is enabled, %FALSE if not
+ */
+gboolean
+vte_terminal_get_selection_block_mode(VteTerminal *terminal) {
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), FALSE);
+ return terminal->pvt->selection_block_mode;
+}
+
+/**
+ * vte_terminal_set_selection_block_mode:
+ * @terminal: a #VteTerminal
+ * @block_mode: whether block selection is enabled
+ *
+ * Sets whether or not block selection is enabled.
+ */
+void
+vte_terminal_set_selection_block_mode(VteTerminal *terminal, gboolean block_mode) {
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ terminal->pvt->selection_block_mode = block_mode;
+}
+
+/**
+ * vte_terminal_select_text:
+ * @terminal: a #VteTerminal
+ * @start_col: the starting column for the selection
+ * @start_row: the starting row for the selection
+ * @end_col: the end column for the selection
+ * @end_row: the end row for the selection
+ *
+ * Sets the current selection region.
+ */
+void
+vte_terminal_select_text(VteTerminal *terminal,
+ long start_col, long start_row,
+ long end_col, long end_row) {
+ _vte_terminal_select_text(terminal, start_col, start_row, end_col, end_row, 0, 0);
+}
+
+
void
_vte_terminal_select_text(VteTerminal *terminal,
long start_col, long start_row,
diff -aur vte-0.32.2-old/src/vte.h vte-0.32.2/src/vte.h
--- vte-0.32.2-old/src/vte.h 2012-07-13 21:09:04.003969877 -0400
+++ vte-0.32.2/src/vte.h 2012-08-27 00:35:43.754405161 -0400
@@ -296,6 +296,15 @@
/* simple manipulation of selection */
void vte_terminal_select_all(VteTerminal *terminal);
void vte_terminal_select_none(VteTerminal *terminal);
+gboolean vte_terminal_get_selection_block_mode(VteTerminal *terminal);
+void vte_terminal_set_selection_block_mode(VteTerminal *terminal, gboolean block_mode);
+void vte_terminal_select_text(VteTerminal *terminal,
+ long start_col, long start_row,
+ long end_col, long end_row);
+
+/* pause and unpause output */
+void vte_terminal_disconnect_pty_read(VteTerminal *vte);
+void vte_terminal_connect_pty_read(VteTerminal *vte);
/* Set the terminal's size. */
void vte_terminal_set_size(VteTerminal *terminal,
@@ -364,6 +373,9 @@
gboolean transparent);
void vte_terminal_set_opacity(VteTerminal *terminal, guint16 opacity);
+/* Set whether the cursor is visible. */
+void vte_terminal_set_cursor_visible(VteTerminal *terminal, gboolean visible);
+
/* Set whether or not the cursor blinks. */
void vte_terminal_set_cursor_blink_mode(VteTerminal *terminal,
VteTerminalCursorBlinkMode mode);