vte r2309 - in trunk: . src



Author: behdad
Date: Tue Dec  2 18:36:33 2008
New Revision: 2309
URL: http://svn.gnome.org/viewvc/vte?rev=2309&view=rev

Log:
2008-12-02  Behdad Esfahbod  <behdad gnome org>

        Bug 559818 â redundant selection-changed signal on deselection

        * src/vte.c (vte_terminal_start_selection),
        (vte_terminal_extend_selection): Fix all redundant selection-changed 
        signals.  Including those on double-click.



Modified:
   trunk/ChangeLog
   trunk/src/vte.c

Modified: trunk/src/vte.c
==============================================================================
--- trunk/src/vte.c	(original)
+++ trunk/src/vte.c	Tue Dec  2 18:36:33 2008
@@ -6251,7 +6251,6 @@
 			"Selection started at (%ld,%ld).\n",
 			terminal->pvt->selection_start.col,
 			terminal->pvt->selection_start.row);
-	vte_terminal_emit_selection_changed(terminal);
 
 	/* Temporarily stop caring about input from the child. */
 	_vte_terminal_disconnect_pty_read(terminal);
@@ -6491,7 +6490,7 @@
 	int width, height;
 	long delta, residual;
 	struct selection_event_coords *origin, *last, *start, *end;
-	struct selection_cell_coords old_start, old_end, *sc, *ec;
+	struct selection_cell_coords old_start, old_end, *sc, *ec, *so, *eo;
 	gboolean invalidate_selected = FALSE;
 	gboolean had_selection;
 
@@ -6501,6 +6500,8 @@
 	screen = terminal->pvt->screen;
 	old_start = terminal->pvt->selection_start;
 	old_end = terminal->pvt->selection_end;
+	so = &old_start;
+	eo = &old_end;
 
 	/* Convert the event coordinates to cell coordinates. */
 	delta = screen->scroll_delta;
@@ -6620,14 +6621,15 @@
 
 	vte_terminal_extend_selection_expand (terminal);
 
+	if (!invalidate_selected &&
+	    0 == memcmp (sc, so, sizeof (*sc)) &&
+	    0 == memcmp (ec, eo, sizeof (*ec)))
+		/* No change */
+		return;
 
 	/* Invalidate */
 
 	if (had_selection) {
-		struct selection_cell_coords *so, *eo;
-
-		so = &old_start;
-		eo = &old_end;
 
 		if (terminal->pvt->selection_block_mode) {
 			/* Update the selection area diff in block mode. */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]