[vte/vte-0-62] widget: Limit select-all to the writable region not including the scrollback



commit 73713ec0644e232fb740170e399282be778d97f9
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
    (cherry picked from commit caf8a6a7a17a3f70fa5fc611c71ffb27a5cfee75)

 src/vte.cc | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
---
diff --git a/src/vte.cc b/src/vte.cc
index 840dcc56..f6d0a664 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -6719,7 +6719,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()
@@ -6728,8 +6731,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]