diff -r -C5 vte-0.16.14/src/vte.c vte-0.16.14-r1/src/vte.c *** vte-0.16.14/src/vte.c 2008-06-13 10:06:26.000000000 -0700 --- vte-0.16.14-r1/src/vte.c 2008-06-13 10:28:34.000000000 -0700 *************** *** 10315,10326 **** break; default: return FALSE; } ! if (terminal->pvt->screen == &terminal->pvt->alternate_screen || ! terminal->pvt->normal_screen.scrolling_restricted) { char *normal; gssize normal_length; const gchar *special; gint i, cnt = v; --- 10315,10327 ---- break; default: return FALSE; } ! if (terminal->pvt->alternate_screen_scroll && ! (terminal->pvt->screen == &terminal->pvt->alternate_screen || ! terminal->pvt->normal_screen.scrolling_restricted)) { char *normal; gssize normal_length; const gchar *special; gint i, cnt = v; *************** *** 10962,10971 **** --- 10963,10988 ---- { g_return_if_fail(VTE_IS_TERMINAL(terminal)); terminal->pvt->scroll_on_keystroke = scroll; } + /** + * vte_terminal_set_alternate_screen_scroll: + * @terminal: a #VteTerminal + * @scroll: %TRUE if the terminal should send keystrokes for scrolling when using alternate screen + * + * Controls whether or not the terminal will send keystrokes for scrolling + * when using alternate screen or scrolling is restricted. + * + */ + void + vte_terminal_set_alternate_screen_scroll(VteTerminal *terminal, gboolean scroll) + { + g_return_if_fail(VTE_IS_TERMINAL(terminal)); + terminal->pvt->alternate_screen_scroll = scroll; + } + static void vte_terminal_real_copy_clipboard(VteTerminal *terminal) { _vte_debug_print(VTE_DEBUG_SELECTION, "Copying to CLIPBOARD.\n"); if (terminal->pvt->selection != NULL) { diff -r -C5 vte-0.16.14/src/vte.h vte-0.16.14-r1/src/vte.h *** vte-0.16.14/src/vte.h 2008-06-13 10:06:26.000000000 -0700 --- vte-0.16.14-r1/src/vte.h 2008-06-13 10:26:43.000000000 -0700 *************** *** 241,250 **** --- 241,252 ---- gboolean vte_terminal_get_visible_bell(VteTerminal *terminal); void vte_terminal_set_scroll_background(VteTerminal *terminal, gboolean scroll); void vte_terminal_set_scroll_on_output(VteTerminal *terminal, gboolean scroll); void vte_terminal_set_scroll_on_keystroke(VteTerminal *terminal, gboolean scroll); + void vte_terminal_set_alternate_screen_scroll(VteTerminal *terminal, + gboolean scroll); /* Set the color scheme. */ void vte_terminal_set_color_dim(VteTerminal *terminal, const GdkColor *dim); void vte_terminal_set_color_bold(VteTerminal *terminal, diff -r -C5 vte-0.16.14/src/vte-private.h vte-0.16.14-r1/src/vte-private.h *** vte-0.16.14/src/vte-private.h 2008-06-13 10:06:26.000000000 -0700 --- vte-0.16.14-r1/src/vte-private.h 2008-06-13 10:27:48.000000000 -0700 *************** *** 287,296 **** --- 287,297 ---- /* Scrolling options. */ gboolean scroll_background; gboolean scroll_on_output; gboolean scroll_on_keystroke; long scrollback_lines; + gboolean alternate_screen_scroll; /* Cursor blinking. */ gboolean cursor_blink_state; gboolean cursor_blinks; guint cursor_blink_tag;