rpms/vte/devel vte-0.16-redraw-race.patch, NONE, 1.1 vte.spec, 1.102, 1.103

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Sat Mar 24 05:08:21 UTC 2007


Author: mclasen

Update of /cvs/dist/rpms/vte/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv4869

Modified Files:
	vte.spec 
Added Files:
	vte-0.16-redraw-race.patch 
Log Message:
fix a redraw problem


vte-0.16-redraw-race.patch:
 vte.c |   22 +++++++++++++---------
 1 files changed, 13 insertions(+), 9 deletions(-)

--- NEW FILE vte-0.16-redraw-race.patch ---
Index: src/vte.c
===================================================================
--- src/vte.c	(revision 1843)
+++ src/vte.c	(revision 1844)
@@ -1614,19 +1614,19 @@
 }
 
 /* Queue an adjustment-changed signal to be delivered when convenient. */
-static void
+static inline void
 vte_terminal_queue_adjustment_changed(VteTerminal *terminal)
 {
 	terminal->pvt->adjustment_changed_pending = TRUE;
-	vte_terminal_start_processing (terminal);
+	add_update_timeout (terminal);
 }
-static void
+static inline void
 vte_terminal_queue_adjustment_value_changed(VteTerminal *terminal, glong v)
 {
 	if (v != terminal->pvt->screen->scroll_delta) {
 		terminal->pvt->screen->scroll_delta = v;
 		terminal->pvt->adjustment_value_changed_pending = TRUE;
-		vte_terminal_start_processing (terminal);
+		add_update_timeout (terminal);
 	}
 }
 
@@ -3670,7 +3670,7 @@
 	}
 
 	return !eof &&
-		(active_terminals ? g_list_length (active_terminals) : 1) *
+		g_list_length (active_terminals) *
 		terminal->pvt->input_bytes < terminal->pvt->max_input_bytes;
 }
 
@@ -3739,7 +3739,6 @@
 	}
 
 	if (_vte_buffer_length(terminal->pvt->outgoing) == 0) {
-		_vte_terminal_disconnect_pty_write(terminal);
 		leave_open = FALSE;
 	} else {
 		leave_open = TRUE;
@@ -10152,14 +10151,19 @@
 vte_terminal_expose(GtkWidget *widget, GdkEventExpose *event)
 {
 	VteTerminal *terminal = VTE_TERMINAL (widget);
+	/* Beware the out of order events -
+	 *   do not even think about skipping exposes! */
 	_vte_debug_print (VTE_DEBUG_WORK, "+");
-	if (terminal->pvt->visibility_state == GDK_VISIBILITY_FULLY_OBSCURED) {
-		return FALSE;
-	}
 	_vte_debug_print (VTE_DEBUG_EVENTS, "Expose (%d,%d)x(%d,%d)\n",
 			event->area.x, event->area.y,
 			event->area.width, event->area.height);
 	if (terminal->pvt->active != NULL && !in_update_timeout) {
+		/* fix up a race condition where we schedule a delayed update
+		 * after an 'immediate' invalidate all */
+		if (terminal->pvt->invalidated_all &&
+				terminal->pvt->update_regions == NULL) {
+			terminal->pvt->invalidated_all = FALSE;
+		}
 		/* if we expect to redraw the widget soon,
 		 * just add this event to the list */
 		if (!terminal->pvt->invalidated_all) {


Index: vte.spec
===================================================================
RCS file: /cvs/dist/rpms/vte/devel/vte.spec,v
retrieving revision 1.102
retrieving revision 1.103
diff -u -r1.102 -r1.103
--- vte.spec	13 Mar 2007 01:29:09 -0000	1.102
+++ vte.spec	24 Mar 2007 05:08:18 -0000	1.103
@@ -1,11 +1,12 @@
 Name: vte
 Version: 0.16.0
-Release: 1%{?dist}
+Release: 2%{?dist}
 Summary: A terminal emulator
 License: LGPL
 Group: User Interface/X
 BuildRoot:  %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) 
 Source: ftp://ftp.gnome.org/pub/GNOME/sources/vte/0.15/%{name}-%{version}.tar.bz2
+Patch0: vte-0.16-redraw-race.patch
 BuildRequires: gtk2-devel, pygtk2-devel, python-devel, ncurses-devel
 BuildRequires: gettext
 BuildRequires: libXt-devel
@@ -29,6 +30,7 @@
 
 %prep
 %setup -q
+%patch0 -p1 -b .redraw-race
 
 %build
 PYTHON=%{_bindir}/python`%{__python} -c "import sys ; print sys.version[:3]"`
@@ -101,6 +103,9 @@
 %{_libdir}/pkgconfig/*
 
 %changelog
+* Sat Mar 24 2007 Matthias Clasen <mclasen at redhat.com> 0.16.0-2
+- Add a patch to fix redraw problems
+
 * Mon Mar 12 2007 Behdad Esfahbod <besfahbo at redhat.com> 0.16.0-1
 - Update to 0.16.0
 




More information about the fedora-cvs-commits mailing list