diff --git a/0001-Revert-widget-Limit-select-all-to-the-writable-regio.patch b/0001-Revert-widget-Limit-select-all-to-the-writable-regio.patch deleted file mode 100644 index 40d84d6..0000000 --- a/0001-Revert-widget-Limit-select-all-to-the-writable-regio.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 713732012fa06c26ce320cce732fe5bb56936b6c Mon Sep 17 00:00:00 2001 -From: Kalev Lember -Date: Tue, 16 Feb 2021 16:30:44 +0100 -Subject: [PATCH] Revert "widget: Limit select-all to the writable region not - including the scrollback" - -... as decided by Fedora Workstation WG. - -https://pagure.io/fedora-workstation/issue/216 - -This reverts commit 73713ec0644e232fb740170e399282be778d97f9. ---- - src/vte.cc | 9 +++------ - 1 file changed, 3 insertions(+), 6 deletions(-) - -diff --git a/src/vte.cc b/src/vte.cc -index 5a631d96..88f053ef 100644 ---- a/src/vte.cc -+++ b/src/vte.cc -@@ -6719,10 +6719,7 @@ Terminal::maybe_end_selection() - /* - * Terminal::select_all: - * -- * 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!) -+ * Selects all text within the terminal (including the scrollback buffer). - */ - void - Terminal::select_all() -@@ -6731,8 +6728,8 @@ Terminal::select_all() - - m_selecting_had_delta = TRUE; - -- m_selection_resolved.set({m_screen->insert_delta, 0}, -- {_vte_ring_next(m_screen->row_data), 0}); -+ m_selection_resolved.set ({ _vte_ring_delta (m_screen->row_data), 0 }, -+ { _vte_ring_next (m_screen->row_data), 0 }); - - _vte_debug_print(VTE_DEBUG_SELECTION, "Selecting *all* text.\n"); - --- -2.29.2 - diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index e86ce01..4e0e5fe 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,7 +1,7 @@ -From 8d4a539a20142a3944e12f029ded76a27749296c Mon Sep 17 00:00:00 2001 +From d0292b797130694621e6af96728c7aa126b40bb9 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 -Subject: [PATCH 01/10] Add sequences and signals for desktop notification +Subject: [PATCH 01/11] Add sequences and signals for desktop notification Add sequences OSC 777 ; notify ; SUMMARY ; BODY BEL @@ -18,13 +18,13 @@ https://phab.enlightenment.org/T1765 https://bugzilla.gnome.org/show_bug.cgi?id=711059 --- src/marshal.list | 1 + - src/vte.cc | 9 +++++++++ + src/vte.cc | 8 ++++++++ src/vte/vteterminal.h | 4 +++- src/vtegtk.cc | 21 +++++++++++++++++++++ src/vtegtk.hh | 1 + src/vteinternal.hh | 8 ++++++++ src/vteseq.cc | 32 +++++++++++++++++++++++++++++++- - 7 files changed, 74 insertions(+), 2 deletions(-) + 7 files changed, 73 insertions(+), 2 deletions(-) diff --git a/src/marshal.list b/src/marshal.list index 241128c3ccfe..4412cf3d5f5c 100644 @@ -36,30 +36,29 @@ index 241128c3ccfe..4412cf3d5f5c 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index 2614e5b4d20f..ac54d8791ba2 100644 +index 4ea466bd9360..033abcfe83cb 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10143,6 +10143,15 @@ Terminal::emit_pending_signals() +@@ -10100,6 +10100,14 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); -+ if (m_notification_received) { ++ if (m_pending_changes & vte::to_integral(PendingChanges::NOTIFICATION)) { + _vte_debug_print (VTE_DEBUG_SIGNALS, + "Emitting `notification-received'.\n"); + g_signal_emit(freezer.get(), signals[SIGNAL_NOTIFICATION_RECEIVED], 0, + m_notification_summary.c_str(), + m_notification_body.c_str()); -+ m_notification_received = false; + } + - if (m_window_title_changed) { + if (m_pending_changes & vte::to_integral(PendingChanges::TITLE)) { if (m_window_title != m_window_title_pending) { m_window_title.swap(m_window_title_pending); diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index d5e96535a867..71c4c66cc4ee 100644 +index e705ece69ad6..668a7dbeae96 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -104,8 +104,10 @@ struct _VteTerminalClass { +@@ -102,8 +102,10 @@ struct _VteTerminalClass { void (*bell)(VteTerminal* terminal); @@ -72,10 +71,10 @@ index d5e96535a867..71c4c66cc4ee 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 41de14ba1019..09a18439277f 100644 +index 0a26f976649b..8c31a2895886 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -934,6 +934,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -983,6 +983,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->child_exited = NULL; klass->encoding_changed = NULL; klass->char_size_changed = NULL; @@ -83,7 +82,7 @@ index 41de14ba1019..09a18439277f 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -1015,6 +1016,26 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1064,6 +1065,26 @@ vte_terminal_class_init(VteTerminalClass *klass) G_OBJECT_CLASS_TYPE(klass), g_cclosure_marshal_VOID__INTv); @@ -111,7 +110,7 @@ index 41de14ba1019..09a18439277f 100644 * VteTerminal::window-title-changed: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index cb207e57f928..b44dfd13a054 100644 +index 1cb8cb49967b..389b86d2e557 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -56,6 +56,7 @@ enum { @@ -123,22 +122,29 @@ index cb207e57f928..b44dfd13a054 100644 LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 333f858c164e..7608eecc38d9 100644 +index 7a257afed861..38aaf421ec30 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -917,6 +917,11 @@ public: +@@ -621,6 +621,10 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; + /* desktop notification */ -+ bool m_notification_received{false}; + std::string m_notification_summary; + std::string m_notification_body; + std::string m_window_title{}; std::string m_current_directory_uri{}; std::string m_current_file_uri{}; -@@ -1634,6 +1639,9 @@ public: +@@ -634,6 +638,7 @@ public: + TITLE = 1u << 0, + CWD = 1u << 1, + CWF = 1u << 2, ++ NOTIFICATION = 1u << 3, + }; + unsigned m_pending_changes{0}; + +@@ -1358,6 +1363,9 @@ public: int osc) noexcept; /* OSC handlers */ @@ -149,7 +155,7 @@ index 333f858c164e..7608eecc38d9 100644 vte::parser::StringTokeniser::const_iterator& token, vte::parser::StringTokeniser::const_iterator const& endtoken, diff --git a/src/vteseq.cc b/src/vteseq.cc -index ba9a2df6b9c4..c765b0bfb1f4 100644 +index bde2fa7ba0ab..7ab65b6d204a 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc @@ -1377,6 +1377,33 @@ Terminal::delete_lines(vte::grid::row_t param) @@ -172,7 +178,7 @@ index ba9a2df6b9c4..c765b0bfb1f4 100644 + + m_notification_summary = *token; + m_notification_body.clear(); -+ m_notification_received = true; ++ m_pending_changes |= vte::to_integral(PendingChanges::NOTIFICATION); + ++token; + + if (token == endtoken) @@ -186,7 +192,7 @@ index ba9a2df6b9c4..c765b0bfb1f4 100644 bool Terminal::get_osc_color_index(int osc, int value, -@@ -6475,6 +6502,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6519,6 +6546,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) reset_color(VTE_HIGHLIGHT_FG, VTE_COLOR_SOURCE_ESCAPE); break; @@ -197,7 +203,7 @@ index ba9a2df6b9c4..c765b0bfb1f4 100644 case VTE_OSC_XTERM_SET_ICON_TITLE: case VTE_OSC_XTERM_SET_XPROPERTY: case VTE_OSC_XTERM_SET_COLOR_MOUSE_CURSOR_FG: -@@ -6515,7 +6546,6 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6559,7 +6590,6 @@ Terminal::OSC(vte::parser::Sequence const& seq) case VTE_OSC_URXVT_SET_FONT_BOLD_ITALIC: case VTE_OSC_URXVT_VIEW_UP: case VTE_OSC_URXVT_VIEW_DOWN: @@ -206,13 +212,13 @@ index ba9a2df6b9c4..c765b0bfb1f4 100644 default: break; -- -2.29.2 +2.30.2 -From e75a6e2b9b4a1789ab7c2c1572e13c38dc73daf5 Mon Sep 17 00:00:00 2001 +From 14ae7496ee64ed6404547eb9407286e61beab2e9 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 -Subject: [PATCH 02/10] vte.sh: Emit OSC 777 from PROMPT_COMMAND +Subject: [PATCH 02/11] vte.sh: Emit OSC 777 from PROMPT_COMMAND For some reason, the three consecutive backslashes break the parsing. As Christian Persch suggested, replacing the double quotes with @@ -224,7 +230,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711059 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/vte.sh.in b/src/vte.sh.in -index a12e254b6cba..f7c4fdeff30b 100644 +index 3ac99d7ec04f..2c6f668142c3 100644 --- a/src/vte.sh.in +++ b/src/vte.sh.in @@ -27,10 +27,12 @@ __vte_osc7 () { @@ -242,13 +248,13 @@ index a12e254b6cba..f7c4fdeff30b 100644 } -- -2.29.2 +2.30.2 -From d726c0779babba159dc01a1dd20c0a6678dbd4dc Mon Sep 17 00:00:00 2001 +From b819404f9d677e82f350ce4943e60af142bec07b Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 -Subject: [PATCH 03/10] Test the notification-received signal +Subject: [PATCH 03/11] Test the notification-received signal --- bindings/vala/app.vala | 7 +++++++ @@ -256,7 +262,7 @@ Subject: [PATCH 03/10] Test the notification-received signal 2 files changed, 17 insertions(+) diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala -index fc26c2b0dfc3..634b8ddeeb91 100644 +index 8ab27e5aaf9a..025f971b2eb0 100644 --- a/bindings/vala/app.vala +++ b/bindings/vala/app.vala @@ -309,6 +309,8 @@ class Window : Gtk.ApplicationWindow @@ -281,10 +287,10 @@ index fc26c2b0dfc3..634b8ddeeb91 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 6453ef8516f9..65521e1f4177 100644 +index 37d51c6b8963..73810251a4d0 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1862,6 +1862,14 @@ window_window_title_changed_cb(VteTerminal* terminal, +@@ -1877,6 +1877,14 @@ window_window_title_changed_cb(VteTerminal* terminal, vte_terminal_get_window_title(window->terminal)); } @@ -299,7 +305,7 @@ index 6453ef8516f9..65521e1f4177 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2097,6 +2105,8 @@ vteapp_window_constructed(GObject *object) +@@ -2115,6 +2123,8 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); @@ -309,13 +315,13 @@ index 6453ef8516f9..65521e1f4177 100644 if (options.no_double_buffer) { G_GNUC_BEGIN_IGNORE_DEPRECATIONS; -- -2.29.2 +2.30.2 -From f3ec33fc7a644aa9a8d640af16e8ef87a7db5db7 Mon Sep 17 00:00:00 2001 +From 3c7a8584beffd867165fed0dfc06728913527aa0 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 -Subject: [PATCH 04/10] Add a property to configure the scroll speed +Subject: [PATCH 04/11] Add a property to configure the scroll speed By default, it is set to zero which gives the current behaviour of moving the buffer by a function of the number of visible rows. @@ -331,10 +337,10 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1103380 6 files changed, 71 insertions(+), 1 deletion(-) diff --git a/doc/reference/vte-sections.txt b/doc/reference/vte-sections.txt -index c222e7fdff0b..6da5eff30715 100644 +index c69181da7c78..dba88c156fe8 100644 --- a/doc/reference/vte-sections.txt +++ b/doc/reference/vte-sections.txt -@@ -52,6 +52,7 @@ vte_terminal_get_cursor_blink_mode +@@ -54,6 +54,7 @@ vte_terminal_get_cursor_blink_mode vte_terminal_set_cursor_blink_mode vte_terminal_get_text_blink_mode vte_terminal_set_text_blink_mode @@ -343,18 +349,18 @@ index c222e7fdff0b..6da5eff30715 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index ac54d8791ba2..68fc4bf8f448 100644 +index 033abcfe83cb..02fe5cbf2df7 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9342,6 +9342,7 @@ vte_cairo_get_clip_region (cairo_t *cr) +@@ -9293,6 +9293,7 @@ vte_cairo_get_clip_region (cairo_t *cr) bool - Terminal::widget_mouse_scroll(MouseEvent const& event) + Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) { + gdouble scroll_speed; gdouble v; gint cnt, i; int button; -@@ -9398,7 +9399,13 @@ Terminal::widget_mouse_scroll(MouseEvent const& event) +@@ -9327,7 +9328,13 @@ Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) return true; } @@ -369,7 +375,7 @@ index ac54d8791ba2..68fc4bf8f448 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -9701,6 +9708,16 @@ Terminal::decscusr_cursor_shape() const noexcept +@@ -9641,6 +9648,16 @@ Terminal::decscusr_cursor_shape() const noexcept } } @@ -387,10 +393,10 @@ index ac54d8791ba2..68fc4bf8f448 100644 Terminal::set_scrollback_lines(long lines) { diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 71c4c66cc4ee..203c77e08c57 100644 +index 668a7dbeae96..ea4fba199a26 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -306,6 +306,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, +@@ -310,6 +310,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, _VTE_PUBLIC VteCursorShape vte_terminal_get_cursor_shape(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); @@ -402,10 +408,10 @@ index 71c4c66cc4ee..203c77e08c57 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 09a18439277f..934e0ab2bd37 100644 +index 8c31a2895886..c5c8eb2fdc8d 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -712,6 +712,9 @@ try +@@ -758,6 +758,9 @@ try case PROP_REWRAP_ON_RESIZE: g_value_set_boolean (value, vte_terminal_get_rewrap_on_resize (terminal)); break; @@ -415,7 +421,7 @@ index 09a18439277f..934e0ab2bd37 100644 case PROP_SCROLLBACK_LINES: g_value_set_uint (value, vte_terminal_get_scrollback_lines(terminal)); break; -@@ -827,6 +830,9 @@ try +@@ -876,6 +879,9 @@ try case PROP_REWRAP_ON_RESIZE: vte_terminal_set_rewrap_on_resize (terminal, g_value_get_boolean (value)); break; @@ -425,7 +431,7 @@ index 09a18439277f..934e0ab2bd37 100644 case PROP_SCROLLBACK_LINES: vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); break; -@@ -1917,6 +1923,21 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1966,6 +1972,21 @@ vte_terminal_class_init(VteTerminalClass *klass) TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -447,7 +453,7 @@ index 09a18439277f..934e0ab2bd37 100644 /** * VteTerminal:scrollback-lines: * -@@ -5323,6 +5344,30 @@ catch (...) +@@ -5367,6 +5388,30 @@ catch (...) return -1; } @@ -479,10 +485,10 @@ index 09a18439277f..934e0ab2bd37 100644 * vte_terminal_set_scrollback_lines: * @terminal: a #VteTerminal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index b44dfd13a054..30b917786b5b 100644 +index 389b86d2e557..24063c3060da 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh -@@ -89,6 +89,7 @@ enum { +@@ -90,6 +90,7 @@ enum { PROP_MOUSE_POINTER_AUTOHIDE, PROP_PTY, PROP_REWRAP_ON_RESIZE, @@ -491,33 +497,33 @@ index b44dfd13a054..30b917786b5b 100644 PROP_SCROLL_ON_KEYSTROKE, PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 7608eecc38d9..79ea9e7f0da0 100644 +index 38aaf421ec30..fd1a8b9008cf 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -696,6 +696,7 @@ public: - /* Scrolling options. */ +@@ -399,6 +399,7 @@ public: + bool m_fallback_scrolling{true}; bool m_scroll_on_output{false}; bool m_scroll_on_keystroke{true}; + guint m_scroll_speed; vte::grid::row_t m_scrollback_lines{0}; /* Restricted scrolling */ -@@ -1512,6 +1513,7 @@ public: +@@ -1232,6 +1233,7 @@ public: bool set_input_enabled(bool enabled); bool set_mouse_autohide(bool autohide); bool set_rewrap_on_resize(bool rewrap); + bool set_scroll_speed(unsigned int scroll_speed); bool set_scrollback_lines(long lines); - bool set_scroll_on_keystroke(bool scroll); - bool set_scroll_on_output(bool scroll); + bool set_fallback_scrolling(bool set); + auto fallback_scrolling() const noexcept { return m_fallback_scrolling; } -- -2.29.2 +2.30.2 -From 9538e23477d7e99909961f7ea5868f9c19c043e1 Mon Sep 17 00:00:00 2001 +From fb3ed87e86488a7b9f224f4bc5d7e1ea76686318 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 -Subject: [PATCH 05/10] Test the scroll-speed property +Subject: [PATCH 05/11] Test the scroll-speed property https://bugzilla.redhat.com/show_bug.cgi?id=1103380 --- @@ -526,7 +532,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1103380 2 files changed, 8 insertions(+) diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala -index 634b8ddeeb91..c984b868246d 100644 +index 025f971b2eb0..51b5d6410503 100644 --- a/bindings/vala/app.vala +++ b/bindings/vala/app.vala @@ -335,6 +335,7 @@ class Window : Gtk.ApplicationWindow @@ -555,10 +561,10 @@ index 634b8ddeeb91..c984b868246d 100644 "Specify the number of scrollback-lines", null }, { "transparent", 'T', 0, OptionArg.INT, ref transparency_percent, diff --git a/src/app/app.cc b/src/app/app.cc -index 65521e1f4177..28e934d9d9c0 100644 +index 73810251a4d0..90421730a66a 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -108,6 +108,7 @@ public: +@@ -116,6 +116,7 @@ public: int verbosity{0}; double cell_height_scale{1.0}; double cell_width_scale{1.0}; @@ -566,7 +572,7 @@ index 65521e1f4177..28e934d9d9c0 100644 VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM}; VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK}; VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS}; -@@ -580,6 +581,8 @@ public: +@@ -590,6 +591,8 @@ public: "Reverse foreground/background colors", nullptr }, { "require-systemd-scope", 0, 0, G_OPTION_ARG_NONE, &require_systemd_scope, "Require use of a systemd user scope", nullptr }, @@ -575,7 +581,7 @@ index 65521e1f4177..28e934d9d9c0 100644 { "scrollback-lines", 'n', 0, G_OPTION_ARG_INT, &scrollback_lines, "Specify the number of scrollback-lines (-1 for infinite)", nullptr }, { "transparent", 'T', 0, G_OPTION_ARG_INT, &transparency_percent, -@@ -2138,6 +2141,7 @@ vteapp_window_constructed(GObject *object) +@@ -2157,6 +2160,7 @@ vteapp_window_constructed(GObject *object) vte_terminal_set_rewrap_on_resize(window->terminal, !options.no_rewrap); vte_terminal_set_scroll_on_output(window->terminal, false); vte_terminal_set_scroll_on_keystroke(window->terminal, true); @@ -584,13 +590,13 @@ index 65521e1f4177..28e934d9d9c0 100644 vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); -- -2.29.2 +2.30.2 -From 8e616fea1e377e03d5f3cbac0786df5e76da896d Mon Sep 17 00:00:00 2001 +From 0ea61474bc6f47c15d9856fef43ea9c5a5810ae4 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 -Subject: [PATCH 06/10] Support preexec notifications from an interactive shell +Subject: [PATCH 06/11] Support preexec notifications from an interactive shell Add sequences OSC 777 ; preexec BEL @@ -606,35 +612,34 @@ https://phab.enlightenment.org/T1765 https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 --- - src/vte.cc | 7 +++++++ + src/vte.cc | 6 ++++++ src/vte.sh.in | 2 +- src/vte/vteterminal.h | 3 ++- src/vtegtk.cc | 18 ++++++++++++++++++ src/vtegtk.hh | 1 + - src/vteinternal.hh | 2 ++ + src/vteinternal.hh | 1 + src/vteseq.cc | 4 ++++ - 7 files changed, 35 insertions(+), 2 deletions(-) + 7 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 68fc4bf8f448..09068deebdf2 100644 +index 02fe5cbf2df7..38a64d17a0bf 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10169,6 +10169,13 @@ Terminal::emit_pending_signals() - m_notification_received = false; +@@ -10125,6 +10125,12 @@ Terminal::emit_pending_signals() + m_notification_body.c_str()); } -+ if (m_shell_preexec) { ++ if (m_pending_changes & vte::to_integral(PendingChanges::SHELL_PREEXEC)) { + _vte_debug_print (VTE_DEBUG_SIGNALS, + "Emitting `shell-preexec'.\n"); + g_signal_emit(freezer.get(), signals[SIGNAL_SHELL_PREEXEC], 0); -+ m_shell_preexec = FALSE; + } + - if (m_window_title_changed) { + if (m_pending_changes & vte::to_integral(PendingChanges::TITLE)) { if (m_window_title != m_window_title_pending) { m_window_title.swap(m_window_title_pending); diff --git a/src/vte.sh.in b/src/vte.sh.in -index f7c4fdeff30b..ec094db032c7 100644 +index 2c6f668142c3..fc33a63f1f84 100644 --- a/src/vte.sh.in +++ b/src/vte.sh.in @@ -38,7 +38,7 @@ __vte_prompt_command() { @@ -647,10 +652,10 @@ index f7c4fdeff30b..ec094db032c7 100644 ;; esac diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 203c77e08c57..5668ac7d71df 100644 +index ea4fba199a26..1fb8b061c9e3 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -105,9 +105,10 @@ struct _VteTerminalClass { +@@ -103,9 +103,10 @@ struct _VteTerminalClass { void (*bell)(VteTerminal* terminal); void (*notification_received)(VteTerminal* terminal, const gchar *summary, const gchar *body); @@ -663,10 +668,10 @@ index 203c77e08c57..5668ac7d71df 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 934e0ab2bd37..0bba24ee534f 100644 +index c5c8eb2fdc8d..e2a6462f2b61 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -941,6 +941,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -990,6 +990,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->encoding_changed = NULL; klass->char_size_changed = NULL; klass->notification_received = NULL; @@ -674,7 +679,7 @@ index 934e0ab2bd37..0bba24ee534f 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -1042,6 +1043,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1091,6 +1092,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -699,7 +704,7 @@ index 934e0ab2bd37..0bba24ee534f 100644 * VteTerminal::window-title-changed: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 30b917786b5b..d3ad1435ae53 100644 +index 24063c3060da..e90e183e7c2d 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -52,6 +52,7 @@ enum { @@ -711,20 +716,19 @@ index 30b917786b5b..d3ad1435ae53 100644 SIGNAL_TEXT_INSERTED, SIGNAL_TEXT_MODIFIED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 79ea9e7f0da0..009500a3ffc6 100644 +index fd1a8b9008cf..bb98f8bc0903 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -923,6 +923,8 @@ public: - std::string m_notification_summary; - std::string m_notification_body; +@@ -640,6 +640,7 @@ public: + CWD = 1u << 1, + CWF = 1u << 2, + NOTIFICATION = 1u << 3, ++ SHELL_PREEXEC = 1u << 4, + }; + unsigned m_pending_changes{0}; -+ gboolean m_shell_preexec; -+ - std::string m_window_title{}; - std::string m_current_directory_uri{}; - std::string m_current_file_uri{}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index c765b0bfb1f4..ad5935063bd9 100644 +index 7ab65b6d204a..51ca37bdc748 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc @@ -1402,6 +1402,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, @@ -733,19 +737,19 @@ index c765b0bfb1f4..ad5935063bd9 100644 } + + if (*token == "preexec") { -+ m_shell_preexec = TRUE; ++ m_pending_changes |= vte::to_integral(PendingChanges::SHELL_PREEXEC); + } } bool -- -2.29.2 +2.30.2 -From c7c410786da41bf9bbcdf8ca1be21dcf0d89637d Mon Sep 17 00:00:00 2001 +From f3075b837fb363be213067c1eaa37d41ff178b4b Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 20 Apr 2018 18:21:53 +0200 -Subject: [PATCH 07/10] Test the shell-preexec signal +Subject: [PATCH 07/11] Test the shell-preexec signal https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 @@ -755,7 +759,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 2 files changed, 13 insertions(+) diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala -index c984b868246d..83af686be106 100644 +index 51b5d6410503..3975b9886d77 100644 --- a/bindings/vala/app.vala +++ b/bindings/vala/app.vala @@ -310,6 +310,7 @@ class Window : Gtk.ApplicationWindow @@ -779,10 +783,10 @@ index c984b868246d..83af686be106 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 28e934d9d9c0..c9f7b5637d16 100644 +index 90421730a66a..3caec42e5877 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1873,6 +1873,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1888,6 +1888,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -795,7 +799,7 @@ index 28e934d9d9c0..c9f7b5637d16 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2109,6 +2115,7 @@ vteapp_window_constructed(GObject *object) +@@ -2127,6 +2133,7 @@ vteapp_window_constructed(GObject *object) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); g_signal_connect(window->terminal, "notification-received", G_CALLBACK(notification_received_cb), NULL); @@ -804,13 +808,13 @@ index 28e934d9d9c0..c9f7b5637d16 100644 /* Settings */ if (options.no_double_buffer) { -- -2.29.2 +2.30.2 -From 034f0a8ae047af6d6a2ee9c443b6686a4eff3018 Mon Sep 17 00:00:00 2001 +From 6feda43e7aa751638f0543f0cf68ee002fe17bac Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:20:30 +0200 -Subject: [PATCH 08/10] Support precmd notifications from an interactive shell +Subject: [PATCH 08/11] Support precmd notifications from an interactive shell Add sequences OSC 777 ; precmd BEL @@ -826,35 +830,34 @@ https://phab.enlightenment.org/T1765 https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 --- - src/vte.cc | 7 +++++++ + src/vte.cc | 6 ++++++ src/vte.sh.in | 2 +- src/vte/vteterminal.h | 3 ++- src/vtegtk.cc | 18 ++++++++++++++++++ src/vtegtk.hh | 1 + src/vteinternal.hh | 1 + src/vteseq.cc | 4 +++- - 7 files changed, 33 insertions(+), 3 deletions(-) + 7 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 09068deebdf2..6d3d3c5a2854 100644 +index 38a64d17a0bf..6b3e1336ca15 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10176,6 +10176,13 @@ Terminal::emit_pending_signals() - m_shell_preexec = FALSE; +@@ -10131,6 +10131,12 @@ Terminal::emit_pending_signals() + g_signal_emit(freezer.get(), signals[SIGNAL_SHELL_PREEXEC], 0); } -+ if (m_shell_precmd) { ++ if (m_pending_changes & vte::to_integral(PendingChanges::SHELL_PRECMD)) { + _vte_debug_print (VTE_DEBUG_SIGNALS, + "Emitting `shell-precmd'.\n"); + g_signal_emit(freezer.get(), signals[SIGNAL_SHELL_PRECMD], 0); -+ m_shell_precmd = FALSE; + } + - if (m_window_title_changed) { + if (m_pending_changes & vte::to_integral(PendingChanges::TITLE)) { if (m_window_title != m_window_title_pending) { m_window_title.swap(m_window_title_pending); diff --git a/src/vte.sh.in b/src/vte.sh.in -index ec094db032c7..18bb266e8d87 100644 +index fc33a63f1f84..359afbc4645c 100644 --- a/src/vte.sh.in +++ b/src/vte.sh.in @@ -32,7 +32,7 @@ __vte_prompt_command() { @@ -867,10 +870,10 @@ index ec094db032c7..18bb266e8d87 100644 } diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 5668ac7d71df..cbd2a77f9f29 100644 +index 1fb8b061c9e3..0b77566ac2f8 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -105,10 +105,11 @@ struct _VteTerminalClass { +@@ -103,10 +103,11 @@ struct _VteTerminalClass { void (*bell)(VteTerminal* terminal); void (*notification_received)(VteTerminal* terminal, const gchar *summary, const gchar *body); @@ -884,10 +887,10 @@ index 5668ac7d71df..cbd2a77f9f29 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 0bba24ee534f..4e0bc3a68464 100644 +index e2a6462f2b61..4b71437d117c 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -941,6 +941,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -990,6 +990,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->encoding_changed = NULL; klass->char_size_changed = NULL; klass->notification_received = NULL; @@ -895,7 +898,7 @@ index 0bba24ee534f..4e0bc3a68464 100644 klass->shell_preexec = NULL; klass->window_title_changed = NULL; klass->icon_title_changed = NULL; -@@ -1043,6 +1044,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1092,6 +1093,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -920,7 +923,7 @@ index 0bba24ee534f..4e0bc3a68464 100644 * VteTerminal::shell-preexec: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index d3ad1435ae53..85c2a38d61ec 100644 +index e90e183e7c2d..93a6dde3e19a 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -52,6 +52,7 @@ enum { @@ -932,19 +935,19 @@ index d3ad1435ae53..85c2a38d61ec 100644 SIGNAL_TEXT_DELETED, SIGNAL_TEXT_INSERTED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 009500a3ffc6..18ffeaf3a270 100644 +index bb98f8bc0903..25253c0af95b 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -923,6 +923,7 @@ public: - std::string m_notification_summary; - std::string m_notification_body; +@@ -641,6 +641,7 @@ public: + CWF = 1u << 2, + NOTIFICATION = 1u << 3, + SHELL_PREEXEC = 1u << 4, ++ SHELL_PRECMD = 1u << 5, + }; + unsigned m_pending_changes{0}; -+ gboolean m_shell_precmd; - gboolean m_shell_preexec; - - std::string m_window_title{}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index ad5935063bd9..4b66681d713c 100644 +index 51ca37bdc748..10b494bddb47 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc @@ -1403,7 +1403,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, @@ -953,19 +956,19 @@ index ad5935063bd9..4b66681d713c 100644 - if (*token == "preexec") { + if (*token == "precmd") { -+ m_shell_precmd = TRUE; ++ m_pending_changes |= vte::to_integral(PendingChanges::SHELL_PRECMD); + } else if (*token == "preexec") { - m_shell_preexec = TRUE; + m_pending_changes |= vte::to_integral(PendingChanges::SHELL_PREEXEC); } } -- -2.29.2 +2.30.2 -From 6083ed32c023a7a24f4b4856147a0970d59f9a35 Mon Sep 17 00:00:00 2001 +From 484aa4cc8def14f5b920d4e898e577ef9e402765 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:30:48 +0200 -Subject: [PATCH 09/10] Test the shell-precmd signal +Subject: [PATCH 09/11] Test the shell-precmd signal https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 @@ -975,7 +978,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 2 files changed, 13 insertions(+) diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala -index 83af686be106..300384f5c74b 100644 +index 3975b9886d77..ff5fb5df052e 100644 --- a/bindings/vala/app.vala +++ b/bindings/vala/app.vala @@ -310,6 +310,7 @@ class Window : Gtk.ApplicationWindow @@ -999,10 +1002,10 @@ index 83af686be106..300384f5c74b 100644 { print("[shell] executing command\n"); diff --git a/src/app/app.cc b/src/app/app.cc -index c9f7b5637d16..b679bc0bff50 100644 +index 3caec42e5877..0ae59d2526cb 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1873,6 +1873,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1888,6 +1888,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -1015,7 +1018,7 @@ index c9f7b5637d16..b679bc0bff50 100644 static void shell_preexec_cb(VteTerminal *terminal) { -@@ -2115,6 +2121,7 @@ vteapp_window_constructed(GObject *object) +@@ -2133,6 +2139,7 @@ vteapp_window_constructed(GObject *object) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); g_signal_connect(window->terminal, "notification-received", G_CALLBACK(notification_received_cb), NULL); @@ -1024,13 +1027,13 @@ index c9f7b5637d16..b679bc0bff50 100644 /* Settings */ -- -2.29.2 +2.30.2 -From b0a81273d4ff929afa4e37750273980e70017c77 Mon Sep 17 00:00:00 2001 +From a9691aa071a9f15c637c249d5d7119092a7cd043 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 10 Jun 2019 20:30:18 +0200 -Subject: [PATCH 10/10] Support tracking the active container inside the +Subject: [PATCH 10/11] Support tracking the active container inside the terminal Add sequences @@ -1060,39 +1063,38 @@ agreed upon across multiple different terminal emulators [1]. [1] https://gitlab.freedesktop.org/terminal-wg/specifications/issues/17 --- - src/vte.cc | 9 +++++ + src/vte.cc | 8 ++++ src/vte/vteterminal.h | 4 ++ src/vtegtk.cc | 77 ++++++++++++++++++++++++++++++++++++++ src/vtegtk.hh | 2 + src/vteinternal.hh | 16 ++++++++ src/vteseq.cc | 86 +++++++++++++++++++++++++++++++++++++++++++ - 6 files changed, 194 insertions(+) + 6 files changed, 193 insertions(+) diff --git a/src/vte.cc b/src/vte.cc -index 6d3d3c5a2854..74db14f593dd 100644 +index 6b3e1336ca15..abd6b449ae48 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10197,6 +10197,15 @@ Terminal::emit_pending_signals() - m_window_title_changed = false; +@@ -10150,6 +10150,14 @@ Terminal::emit_pending_signals() + m_window_title_pending.clear(); } -+ if (m_containers_changed) { ++ if (m_pending_changes & vte::to_integral(PendingChanges::CONTAINERS)) { + _vte_debug_print(VTE_DEBUG_SIGNALS, + "Notifying `current-container-name' and `current-container-runtime'.\n"); + + g_object_notify_by_pspec(freezer.get(), pspecs[PROP_CURRENT_CONTAINER_NAME]); + g_object_notify_by_pspec(freezer.get(), pspecs[PROP_CURRENT_CONTAINER_RUNTIME]); -+ m_containers_changed = false; + } + - if (m_current_directory_uri_changed) { + if (m_pending_changes & vte::to_integral(PendingChanges::CWD)) { if (m_current_directory_uri != m_current_directory_uri_pending) { m_current_directory_uri.swap(m_current_directory_uri_pending); diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index cbd2a77f9f29..15aa421a0c68 100644 +index 0b77566ac2f8..540fd25a6866 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -484,6 +484,10 @@ glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VT +@@ -488,6 +488,10 @@ glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VT _VTE_PUBLIC const char *vte_terminal_get_window_title(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); _VTE_PUBLIC @@ -1104,10 +1106,10 @@ index cbd2a77f9f29..15aa421a0c68 100644 _VTE_PUBLIC const char *vte_terminal_get_current_file_uri(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 4e0bc3a68464..2e6859798c42 100644 +index 4b71437d117c..1446f3c7cc59 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -664,6 +664,12 @@ try +@@ -707,6 +707,12 @@ try case PROP_CURSOR_BLINK_MODE: g_value_set_enum (value, vte_terminal_get_cursor_blink_mode (terminal)); break; @@ -1120,7 +1122,7 @@ index 4e0bc3a68464..2e6859798c42 100644 case PROP_CURRENT_DIRECTORY_URI: g_value_set_string (value, vte_terminal_get_current_directory_uri (terminal)); break; -@@ -2036,6 +2042,27 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -2099,6 +2105,27 @@ vte_terminal_class_init(VteTerminalClass *klass) NULL, (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -1148,7 +1150,7 @@ index 4e0bc3a68464..2e6859798c42 100644 /** * VteTerminal:current-directory-uri: * -@@ -4530,6 +4557,56 @@ catch (...) +@@ -4574,6 +4601,56 @@ catch (...) return -1; } @@ -1206,7 +1208,7 @@ index 4e0bc3a68464..2e6859798c42 100644 * vte_terminal_get_current_directory_uri: * @terminal: a #VteTerminal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 85c2a38d61ec..a258902a3092 100644 +index 93a6dde3e19a..651961436225 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -76,6 +76,8 @@ enum { @@ -1219,10 +1221,10 @@ index 85c2a38d61ec..a258902a3092 100644 PROP_CURRENT_FILE_URI, PROP_DELETE_BINDING, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 18ffeaf3a270..f6b98f670ad5 100644 +index 25253c0af95b..570c70b0c9e7 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -56,6 +56,7 @@ +@@ -59,6 +59,7 @@ #include #include #include @@ -1230,7 +1232,7 @@ index 18ffeaf3a270..f6b98f670ad5 100644 #include #include #include -@@ -94,6 +95,18 @@ typedef enum _VteCharacterReplacement { +@@ -97,6 +98,18 @@ typedef enum _VteCharacterReplacement { VTE_CHARACTER_REPLACEMENT_LINE_DRAWING } VteCharacterReplacement; @@ -1249,21 +1251,28 @@ index 18ffeaf3a270..f6b98f670ad5 100644 typedef struct _VtePaletteColor { struct { vte::color::rgb color; -@@ -918,6 +931,9 @@ public: +@@ -622,6 +635,8 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; -+ bool m_containers_changed{false}; + std::stack m_containers; + /* desktop notification */ - bool m_notification_received{false}; std::string m_notification_summary; + std::string m_notification_body; +@@ -642,6 +657,7 @@ public: + NOTIFICATION = 1u << 3, + SHELL_PREEXEC = 1u << 4, + SHELL_PRECMD = 1u << 5, ++ CONTAINERS = 1u << 6, + }; + unsigned m_pending_changes{0}; + diff --git a/src/vteseq.cc b/src/vteseq.cc -index 4b66681d713c..4240896b95e8 100644 +index 10b494bddb47..2a2ba4b47441 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -20,10 +20,14 @@ +@@ -19,10 +19,14 @@ #include "config.h" @@ -1305,7 +1314,7 @@ index 4b66681d713c..4240896b95e8 100644 + if (token == endtoken) { + if (!m_containers.empty()) { + m_containers.pop(); -+ m_containers_changed = true; ++ m_pending_changes |= vte::to_integral(PendingChanges::CONTAINERS); + } + + return; @@ -1320,7 +1329,7 @@ index 4b66681d713c..4240896b95e8 100644 + if (uid_token == uid_str) { + if (!m_containers.empty()) { + m_containers.pop(); -+ m_containers_changed = true; ++ m_pending_changes |= vte::to_integral(PendingChanges::CONTAINERS); + } + + return; @@ -1342,7 +1351,7 @@ index 4b66681d713c..4240896b95e8 100644 + + if (token == endtoken) { + m_containers.emplace(name, runtime); -+ m_containers_changed = true; ++ m_pending_changes |= vte::to_integral(PendingChanges::CONTAINERS); + return; + } + @@ -1354,7 +1363,7 @@ index 4b66681d713c..4240896b95e8 100644 + + if (uid_token == uid_str) { + m_containers.emplace(name, runtime); -+ m_containers_changed = true; ++ m_pending_changes |= vte::to_integral(PendingChanges::CONTAINERS); + return; + } + @@ -1368,5 +1377,51 @@ index 4b66681d713c..4240896b95e8 100644 ++token; -- -2.29.2 +2.30.2 + + +From 9917160afbb918979fa78e4fe1575db350d94386 Mon Sep 17 00:00:00 2001 +From: Kalev Lember +Date: Tue, 16 Feb 2021 16:30:44 +0100 +Subject: [PATCH 11/11] Revert "widget: Limit select-all to the writable region + not including the scrollback" + +... as decided by Fedora Workstation WG. + +https://pagure.io/fedora-workstation/issue/216 + +This reverts commit 73713ec0644e232fb740170e399282be778d97f9. +--- + src/vte.cc | 9 +++------ + 1 file changed, 3 insertions(+), 6 deletions(-) + +diff --git a/src/vte.cc b/src/vte.cc +index abd6b449ae48..99ad5973c363 100644 +--- a/src/vte.cc ++++ b/src/vte.cc +@@ -6595,10 +6595,7 @@ Terminal::maybe_end_selection() + /* + * Terminal::select_all: + * +- * 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!) ++ * Selects all text within the terminal (including the scrollback buffer). + */ + void + Terminal::select_all() +@@ -6607,8 +6604,8 @@ Terminal::select_all() + + m_selecting_had_delta = TRUE; + +- m_selection_resolved.set({m_screen->insert_delta, 0}, +- {_vte_ring_next(m_screen->row_data), 0}); ++ m_selection_resolved.set ({ _vte_ring_delta (m_screen->row_data), 0 }, ++ { _vte_ring_next (m_screen->row_data), 0 }); + + _vte_debug_print(VTE_DEBUG_SELECTION, "Selecting *all* text.\n"); + +-- +2.30.2 diff --git a/vte291-gcc11.patch b/vte291-gcc11.patch deleted file mode 100644 index 971b56c..0000000 --- a/vte291-gcc11.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/vtetypebuiltins.cc.template b/src/vtetypebuiltins.cc.template -index dade41d..4c8b5c4 100644 ---- a/src/vtetypebuiltins.cc.template -+++ b/src/vtetypebuiltins.cc.template -@@ -11,7 +11,7 @@ - GType - @enum_name@_get_type (void) - { -- static volatile gsize g_define_type_id__volatile = 0; -+ static gsize g_define_type_id__volatile = 0; - - if (g_once_init_enter (&g_define_type_id__volatile)) { - static const G@Type@Value values[] = { diff --git a/vte291.spec b/vte291.spec index 9a0216e..97c1e3b 100644 --- a/vte291.spec +++ b/vte291.spec @@ -10,21 +10,18 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.62.3 -Release: 3%{?dist} +Version: 0.64.1 +Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://download.gnome.org/sources/vte/0.62/vte-%{version}.tar.xz - -# https://pagure.io/fedora-workstation/issue/216 -Patch0: 0001-Revert-widget-Limit-select-all-to-the-writable-regio.patch +Source0: https://download.gnome.org/sources/vte/0.64/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 +# https://pagure.io/fedora-workstation/issue/216 Patch100: vte291-cntnr-precmd-preexec-scroll.patch -Patch101: %{name}-gcc11.patch BuildRequires: gcc-c++ BuildRequires: gettext @@ -86,9 +83,7 @@ emulator library. %prep %setup -q -n vte-%{version} -%patch0 -p1 -b .revert-select-all %patch100 -p1 -b .cntnr-precmd-preexec-scroll -%patch101 -p1 -b .gcc11 %if 0%{?flatpak} # Install user units where systemd macros expect them sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build @@ -115,6 +110,7 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_libdir}/libvte-%{apiver}.so %{_libdir}/pkgconfig/vte-%{apiver}.pc %{_datadir}/gir-1.0/ +%{_datadir}/glade/ %doc %{_datadir}/gtk-doc/ %{_datadir}/vala/ @@ -124,6 +120,10 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Thu May 06 2021 Debarshi Ray - 0.64.1-1 +- Update to 0.64.1 +Resolves: #1957970 + * Fri Apr 16 2021 Mohan Boddu - 0.62.3-3 - Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937