summaryrefslogtreecommitdiff
blob: 5cf9b91acfd6c162402711d8d413015769b4b870 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Upstream revision 2134 with useless whitespace change hunks removed:

2008-10-23  Chris Wilson

Bug 557375 – >=vte-0.16.14 breaks highlighting on activity

* src/vte.c (vte_terminal_deselect_all),
(vte_terminal_extend_selection):
After the user modifies the selection, copy it to PRIMARY and store
it on the terminal. This ensures that after a screen redraw, we
compare the contents of the selected region with the current
selection, instead of stale data.

--- trunk/src/vte.c	2008/10/23 09:15:37	2133
+++ trunk/src/vte.c	2008/10/23 09:43:21	2134
@@ -1018,10 +1018,16 @@
 {
 	if (terminal->pvt->has_selection) {
 		gint sx, sy, ex, ey;
-		terminal->pvt->has_selection = FALSE;
+
 		_vte_debug_print(VTE_DEBUG_SELECTION,
 				"Deselecting all text.\n");
+
+		terminal->pvt->has_selection = FALSE;
+		g_free (terminal->pvt->selection);
+		terminal->pvt->selection = NULL;
+
 		vte_terminal_emit_selection_changed(terminal);
+
 		sx = terminal->pvt->selection_start.x;
 		sy = terminal->pvt->selection_start.y;
 		ex = terminal->pvt->selection_end.x;
@@ -6510,6 +6514,7 @@
 			terminal->pvt->selection_start.y,
 			terminal->pvt->selection_end.x,
 			terminal->pvt->selection_end.y);
+	vte_terminal_copy_primary(terminal);
 	vte_terminal_emit_selection_changed(terminal);
 }