diff options
Diffstat (limited to 'x11-libs/vte/files/vte-0.28.2-repaint-after-change-scroll-region.patch')
-rw-r--r-- | x11-libs/vte/files/vte-0.28.2-repaint-after-change-scroll-region.patch | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/x11-libs/vte/files/vte-0.28.2-repaint-after-change-scroll-region.patch b/x11-libs/vte/files/vte-0.28.2-repaint-after-change-scroll-region.patch deleted file mode 100644 index 86e547103ad7..000000000000 --- a/x11-libs/vte/files/vte-0.28.2-repaint-after-change-scroll-region.patch +++ /dev/null @@ -1,86 +0,0 @@ -https://git.gnome.org/browse/vte/commit/?id=88e8e89560a62d0981ce2b18974a230d0a07dbdd - -From 88e8e89560a62d0981ce2b18974a230d0a07dbdd Mon Sep 17 00:00:00 2001 -From: Micah Cowan <micah@cowan.name> -Date: Tue, 22 Oct 2013 23:30:43 +0200 -Subject: widget: Fix invalidation region - -When the sequence handler moves the cursor into the restricted scrolling region, -the bbox needs to be reset, too. -Fixes glitches with interspersing writes to the bottom line with scrolls of the -upper region, and also fixes missing screen redraws when using mosh. - -https://bugzilla.gnome.org/show_bug.cgi?id=542087 -https://bugzilla.gnome.org/show_bug.cgi?id=686097 - -diff --git a/src/vte.c b/src/vte.c -index 9f6d7d8..a4d9d25 100644 ---- a/src/vte.c -+++ b/src/vte.c -@@ -4077,6 +4077,7 @@ vte_terminal_process_incoming(VteTerminal *terminal) - long wcount, start, delta; - gboolean leftovers, modified, bottom, again; - gboolean invalidated_text; -+ gboolean in_scroll_region; - GArray *unichars; - struct _vte_incoming_chunk *chunk, *next_chunk, *achunk = NULL; - -@@ -4096,6 +4097,10 @@ vte_terminal_process_incoming(VteTerminal *terminal) - cursor = screen->cursor_current; - cursor_visible = terminal->pvt->cursor_visible; - -+ in_scroll_region = screen->scrolling_restricted -+ && (screen->cursor_current.row >= (screen->insert_delta + screen->scrolling_region.start)) -+ && (screen->cursor_current.row <= (screen->insert_delta + screen->scrolling_region.end)); -+ - /* We should only be called when there's data to process. */ - g_assert(terminal->pvt->incoming || - (terminal->pvt->pending->len > 0)); -@@ -4194,6 +4199,8 @@ skip_chunk: - * points to the first character which isn't part of this - * sequence. */ - if ((match != NULL) && (match[0] != '\0')) { -+ gboolean new_in_scroll_region; -+ - /* Call the right sequence handler for the requested - * behavior. */ - _vte_terminal_handle_sequence(terminal, -@@ -4204,12 +4211,21 @@ skip_chunk: - start = (next - wbuf); - modified = TRUE; - -- /* if we have moved during the sequence handler, restart the bbox */ -+ new_in_scroll_region = screen->scrolling_restricted -+ && (screen->cursor_current.row >= (screen->insert_delta + screen->scrolling_region.start)) -+ && (screen->cursor_current.row <= (screen->insert_delta + screen->scrolling_region.end)); -+ -+ delta = screen->scroll_delta; /* delta may have changed from sequence. */ -+ -+ /* if we have moved greatly during the sequence handler, or moved -+ * into a scroll_region from outside it, restart the bbox. -+ */ - if (invalidated_text && -- (screen->cursor_current.col > bbox_bottomright.x + VTE_CELL_BBOX_SLACK || -- screen->cursor_current.col < bbox_topleft.x - VTE_CELL_BBOX_SLACK || -- screen->cursor_current.row > bbox_bottomright.y + VTE_CELL_BBOX_SLACK || -- screen->cursor_current.row < bbox_topleft.y - VTE_CELL_BBOX_SLACK)) { -+ ((new_in_scroll_region && !in_scroll_region) || -+ (screen->cursor_current.col > bbox_bottomright.x + VTE_CELL_BBOX_SLACK || -+ screen->cursor_current.col < bbox_topleft.x - VTE_CELL_BBOX_SLACK || -+ screen->cursor_current.row > bbox_bottomright.y + VTE_CELL_BBOX_SLACK || -+ screen->cursor_current.row < bbox_topleft.y - VTE_CELL_BBOX_SLACK))) { - /* Clip off any part of the box which isn't already on-screen. */ - bbox_topleft.x = MAX(bbox_topleft.x, 0); - bbox_topleft.y = MAX(bbox_topleft.y, delta); -@@ -4229,6 +4245,8 @@ skip_chunk: - bbox_bottomright.x = bbox_bottomright.y = -G_MAXINT; - bbox_topleft.x = bbox_topleft.y = G_MAXINT; - } -+ -+ in_scroll_region = new_in_scroll_region; - } else - /* Second, we have a NULL match, and next points to the very - * next character in the buffer. Insert the character which --- -cgit v0.10.2 - |