[vte] widget: Limit select-all to the writable region not including the scrollback
- From: Christian Persch <chpe src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vte] widget: Limit select-all to the writable region not including the scrollback
- Date: Sat, 26 Dec 2020 13:01:19 +0000 (UTC)
commit caf8a6a7a17a3f70fa5fc611c71ffb27a5cfee75
Author: Christian Persch <chpe src gnome org>
Date: Sat Dec 26 14:01:10 2020 +0100
widget: Limit select-all to the writable region not including the scrollback
Including the scrollback in select-all makes it too easy to select so much
data that putting it on the clipboard either hangs the process for a long time
or causes a crash (gnome-terminal#288).
Fixes: https://gitlab.gnome.org/GNOME/gnome-terminal/-/issues/288
src/vte.cc | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
---
diff --git a/src/vte.cc b/src/vte.cc
index d813e16c..c7ee93ab 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -6672,7 +6672,10 @@ Terminal::maybe_end_selection()
/*
* Terminal::select_all:
*
- * Selects all text within the terminal (including the scrollback buffer).
+ * Selects all text within the terminal. Note that we only select the writable
+ * region, *not* the scrollback buffer, due to this potentially selecting so
+ * much data that putting it on the clipboard either hangs the process for a long
+ * time or even crash it directly. (FIXME!)
*/
void
Terminal::select_all()
@@ -6681,8 +6684,8 @@ Terminal::select_all()
m_selecting_had_delta = TRUE;
- m_selection_resolved.set ({ _vte_ring_delta (m_screen->row_data), 0 },
- { _vte_ring_next (m_screen->row_data), 0 });
+ m_selection_resolved.set({m_screen->insert_delta, 0},
+ {_vte_ring_next(m_screen->row_data), 0});
_vte_debug_print(VTE_DEBUG_SELECTION, "Selecting *all* text.\n");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]