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-30 00:53:52.874582449 -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"); @@ -3708,8 +3707,8 @@ return NULL; } -static char * -_vte_terminal_get_user_shell_with_fallback (void) +char * +vte_terminal_get_user_shell_with_fallback (void) { char *command; const gchar *env; @@ -3744,7 +3743,7 @@ char **argv2; char *shell = NULL; - argv2 = __vte_pty_get_argv(command ? command : (shell = _vte_terminal_get_user_shell_with_fallback ()), + argv2 = __vte_pty_get_argv(command ? command : (shell = vte_terminal_get_user_shell_with_fallback ()), argv, flags); g_free(shell); @@ -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-30 00:54:19.738281795 -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); @@ -484,6 +496,7 @@ VtePty *vte_terminal_get_pty_object(VteTerminal *terminal); char *vte_get_user_shell (void); +char *vte_terminal_get_user_shell_with_fallback(void); /* Accessors for bindings. */ #if !GTK_CHECK_VERSION (2, 91, 2)