r33465 - in /desktop/experimental/vte3/debian: changelog patches/03_scroll_region_updates.patch patches/series

mpitt at users.alioth.debian.org mpitt at users.alioth.debian.org
Wed Mar 21 09:44:27 UTC 2012


Author: mpitt
Date: Wed Mar 21 09:44:27 2012
New Revision: 33465

URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=33465
Log:
Add 03_scroll_region_updates.patch: Fix glitches with interspersing writes
to the bottom line with scrolls of the upper region. Patch taken from
Ubuntu package. (GNOME #542087, LP: #246701)

Added:
    desktop/experimental/vte3/debian/patches/03_scroll_region_updates.patch
Modified:
    desktop/experimental/vte3/debian/changelog
    desktop/experimental/vte3/debian/patches/series

Modified: desktop/experimental/vte3/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/vte3/debian/changelog?rev=33465&op=diff
==============================================================================
--- desktop/experimental/vte3/debian/changelog [utf-8] (original)
+++ desktop/experimental/vte3/debian/changelog [utf-8] Wed Mar 21 09:44:27 2012
@@ -4,6 +4,9 @@
   * debian/control.in: Bump glib build dependency as per configure.ac.
   * Drop 03_glade-catalog-library-name.patch, fixed upstream.
   * 25_optional-ncurses.patch: Unfuzz.
+  * Add 03_scroll_region_updates.patch: Fix glitches with interspersing writes
+    to the bottom line with scrolls of the upper region. Patch taken from
+    Ubuntu package. (GNOME #542087, LP: #246701)
 
  -- Martin Pitt <mpitt at debian.org>  Wed, 21 Mar 2012 10:24:18 +0100
 

Added: desktop/experimental/vte3/debian/patches/03_scroll_region_updates.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/vte3/debian/patches/03_scroll_region_updates.patch?rev=33465&op=file
==============================================================================
--- desktop/experimental/vte3/debian/patches/03_scroll_region_updates.patch (added)
+++ desktop/experimental/vte3/debian/patches/03_scroll_region_updates.patch [utf-8] Wed Mar 21 09:44:27 2012
@@ -1,0 +1,71 @@
+Description: Fix glitches with interspersing writes to the bottom line with scrolls of the upper region.
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=542087
+Bug-Ubuntu: https://launchpad.net/bugs/246701
+
+Index: vte3-exp/src/vte.c
+===================================================================
+--- vte3-exp.orig/src/vte.c	2012-03-21 10:44:08.880471453 +0100
++++ vte3-exp/src/vte.c	2012-03-21 10:44:10.668471539 +0100
+@@ -4066,6 +4066,7 @@
+ 	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;
+ 
+@@ -4085,6 +4086,10 @@
+ 	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));
+@@ -4183,6 +4188,8 @@
+ 		 * 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,
+@@ -4193,12 +4200,20 @@
+ 			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);
+@@ -4218,6 +4233,8 @@
+ 				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

Modified: desktop/experimental/vte3/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/experimental/vte3/debian/patches/series?rev=33465&op=diff
==============================================================================
--- desktop/experimental/vte3/debian/patches/series [utf-8] (original)
+++ desktop/experimental/vte3/debian/patches/series [utf-8] Wed Mar 21 09:44:27 2012
@@ -1,4 +1,5 @@
 01_scroll_notebook.patch
 02_meta.patch
+03_scroll_region_updates.patch
 25_optional-ncurses.patch
 60_termcap-home-end.patch




More information about the pkg-gnome-commits mailing list