From acefea578ba01b952b3cd5ca2b7f0c6cab17d5fd Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 5 Oct 2017 14:47:28 +0200 Subject: [PATCH 001/164] Update to 0.50.1 - Rebase downstream patches --- .gitignore | 1 + sources | 2 +- vte291-command-notify-scroll-speed.patch | 168 ++++++++++++++++------- vte291.spec | 6 +- 4 files changed, 123 insertions(+), 54 deletions(-) diff --git a/.gitignore b/.gitignore index 57fb620..3c09c0f 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,4 @@ /vte-0.48.2.tar.xz /vte-0.48.3.tar.xz /vte-0.50.0.tar.xz +/vte-0.50.1.tar.xz diff --git a/sources b/sources index 8f702ca..011db29 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.50.0.tar.xz) = ac05622ecf92115cf6aef1ef7805b0ef19856d65d2dfc9792b149443aeee4c9bbfb871c600c9be8b0f4baac4a143e70412208d0a510cb53f13b2caf2caa33587 +SHA512 (vte-0.50.1.tar.xz) = d5e9c7990ddb6ee789d4f4f8df05c23d794791e8381266551cf6574658ee8fd6adc4c7b9ac6aadcf957887b0ba13f7f89002fd820c8d35c789bba918414bd330 diff --git a/vte291-command-notify-scroll-speed.patch b/vte291-command-notify-scroll-speed.patch index 2284893..5f8169d 100644 --- a/vte291-command-notify-scroll-speed.patch +++ b/vte291-command-notify-scroll-speed.patch @@ -1,4 +1,4 @@ -From 5d8ab67c3590c93869e38a20587da8cc3e766a7f Mon Sep 17 00:00:00 2001 +From 7e610a3fcc67f9ed642d14efa4e7b0a076ce5bab Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 1/5] Add sequences and signals for desktop notification @@ -62,10 +62,10 @@ index 1e4d0c1b6476..3385b4759713 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index 89a3771f2152..e1b83596800a 100644 +index e52f72604560..f3b86643807c 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -8533,6 +8533,9 @@ VteTerminalPrivate::~VteTerminalPrivate() +@@ -8552,6 +8552,9 @@ VteTerminalPrivate::~VteTerminalPrivate() remove_update_timeout(this); @@ -75,7 +75,7 @@ index 89a3771f2152..e1b83596800a 100644 /* discard title updates */ g_free(m_window_title); g_free(m_window_title_changed); -@@ -10615,6 +10618,15 @@ VteTerminalPrivate::emit_pending_signals() +@@ -10632,6 +10635,15 @@ VteTerminalPrivate::emit_pending_signals() emit_adjustment_changed(); @@ -108,10 +108,10 @@ index cfd5a911adbe..b3c6978f65d6 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 68a1dce766b6..49e977088a53 100644 +index 18a4b1ba16e9..4ccc4ff9c0ef 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -668,6 +668,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -679,6 +679,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->child_exited = NULL; klass->encoding_changed = NULL; klass->char_size_changed = NULL; @@ -119,11 +119,10 @@ index 68a1dce766b6..49e977088a53 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -743,6 +744,26 @@ vte_terminal_class_init(VteTerminalClass *klass) - G_TYPE_NONE, +@@ -755,6 +756,26 @@ vte_terminal_class_init(VteTerminalClass *klass) 1, G_TYPE_INT); -+ /** + /** + * VteTerminal::notification-received: + * @vteterminal: the object which received the signal + * @summary: The summary @@ -143,9 +142,10 @@ index 68a1dce766b6..49e977088a53 100644 + G_TYPE_NONE, + 2, G_TYPE_STRING, G_TYPE_STRING); + - /** ++ /** * VteTerminal::window-title-changed: * @vteterminal: the object which received the signal + * diff --git a/src/vtegtk.hh b/src/vtegtk.hh index d1ade949b8ff..07c714e66093 100644 --- a/src/vtegtk.hh @@ -159,10 +159,10 @@ index d1ade949b8ff..07c714e66093 100644 LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 677e61a7dc34..bb0cc56784f6 100644 +index 0cd686b6adc2..f7faa7a52328 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -495,6 +495,11 @@ public: +@@ -496,6 +496,11 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -175,19 +175,21 @@ index 677e61a7dc34..bb0cc56784f6 100644 char* m_window_title; char* m_window_title_changed; diff --git a/src/vteseq-n.gperf b/src/vteseq-n.gperf -index eec89aeecd74..df5a4e0103c3 100644 +index 7cd1de50f8f0..e2cb3c90c86e 100644 --- a/src/vteseq-n.gperf +++ b/src/vteseq-n.gperf -@@ -173,3 +173,4 @@ struct vteseq_n_struct { +@@ -171,5 +171,6 @@ struct vteseq_n_struct { + "set-current-file-uri", VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_current_file_uri) + "set-current-hyperlink", VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_current_hyperlink) "urxvt-777", VTE_SEQUENCE_HANDLER(vte_sequence_handler_urxvt_777) ++"send-notification", VTE_SEQUENCE_HANDLER(vte_sequence_handler_send_notification) "iterm2-133", VTE_SEQUENCE_HANDLER(vte_sequence_handler_iterm2_133) "iterm2-1337", VTE_SEQUENCE_HANDLER(vte_sequence_handler_iterm2_1337) -+"send-notification", VTE_SEQUENCE_HANDLER(vte_sequence_handler_send_notification) diff --git a/src/vteseq.cc b/src/vteseq.cc -index 1391e153efdf..368caaf4ed13 100644 +index 6876341d371f..01c8160d5124 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -2335,6 +2335,96 @@ vte_sequence_handler_return_terminal_id (VteTerminalPrivate *that, GValueArray * +@@ -2352,6 +2352,96 @@ vte_sequence_handler_return_terminal_id (VteTerminalPrivate *that, GValueArray * vte_sequence_handler_send_primary_device_attributes (that, params); } @@ -285,10 +287,10 @@ index 1391e153efdf..368caaf4ed13 100644 static void vte_sequence_handler_send_secondary_device_attributes (VteTerminalPrivate *that, GValueArray *params) -- -2.14.1 +2.9.5 -From 9cb28e964762b3b10d04648a9ffb7503c922189f Mon Sep 17 00:00:00 2001 +From fea22a41c0fcef5e055c83a6dd718ef3426979d7 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 Subject: [PATCH 2/5] vte.sh: Emit OSC 777 from PROMPT_COMMAND @@ -316,17 +318,18 @@ index 2d211caa2f17..1c0543bd9d26 100644 case "$TERM" in -- -2.14.1 +2.9.5 -From bb5d1fc59a9a12a9c24347196a691a89b2c1d2cb Mon Sep 17 00:00:00 2001 +From 3d933494eefdad354cd7cbf902287118469230a4 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 -Subject: [PATCH 3/5] vteapp: Add a test for the notification-received signal +Subject: [PATCH 3/5] Test the notification-received signal --- - bindings/vala/app.vala | 7 +++++++ - 1 file changed, 7 insertions(+) + bindings/vala/app.vala | 7 +++++++ + src/vteapp.c | 10 ++++++++++ + 2 files changed, 17 insertions(+) diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala index 8663d63c5445..4c5d9a2b3bad 100644 @@ -353,11 +356,39 @@ index 8663d63c5445..4c5d9a2b3bad 100644 } /* class Window */ class App : Gtk.Application +diff --git a/src/vteapp.c b/src/vteapp.c +index 865df644e70e..be3bab870659 100644 +--- a/src/vteapp.c ++++ b/src/vteapp.c +@@ -49,6 +49,13 @@ static const char *builtin_dingus[] = { + static gboolean use_gregex = FALSE; + + static void ++notification_received (GtkWidget *widget, const gchar *summary, const gchar *body) ++{ ++ g_assert(VTE_TERMINAL(widget)); ++ g_print("[%s]: %s\n", summary, body); ++} ++ ++static void + window_title_changed(GtkWidget *widget, gpointer win) + { + GtkWindow *window; +@@ -966,6 +973,9 @@ main(int argc, char **argv) + G_CALLBACK(icon_title_changed), window); + } + ++ g_signal_connect(widget, "notification-received", ++ G_CALLBACK(notification_received), NULL); ++ + /* Connect to the "button-press" event. */ + g_signal_connect(widget, "button-press-event", + G_CALLBACK(button_pressed), widget); -- -2.14.1 +2.9.5 -From c3ac25e0bdc2b15ef6b8ec07190d2d179ff2c9f4 Mon Sep 17 00:00:00 2001 +From 2b3284d6f7c24f5ef58eb31e96d2d6f8e208f5f8 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 Subject: [PATCH 4/5] Add a property to configure the scroll speed @@ -388,10 +419,10 @@ index 9b34536c7bf9..b67f3957b888 100644 vte_terminal_set_font vte_terminal_get_font diff --git a/src/vte.cc b/src/vte.cc -index e1b83596800a..8ed58df6ab4b 100644 +index f3b86643807c..c1b1e50896b4 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9883,6 +9883,7 @@ void +@@ -9899,6 +9899,7 @@ void VteTerminalPrivate::widget_scroll(GdkEventScroll *event) { gdouble delta_x, delta_y; @@ -399,7 +430,7 @@ index e1b83596800a..8ed58df6ab4b 100644 gdouble v; gint cnt, i; int button; -@@ -9936,7 +9937,13 @@ VteTerminalPrivate::widget_scroll(GdkEventScroll *event) +@@ -9952,7 +9953,13 @@ VteTerminalPrivate::widget_scroll(GdkEventScroll *event) return; } @@ -414,11 +445,10 @@ index e1b83596800a..8ed58df6ab4b 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -10173,6 +10180,16 @@ VteTerminalPrivate::decscusr_cursor_shape() - } +@@ -10190,6 +10197,16 @@ VteTerminalPrivate::decscusr_cursor_shape() } -+bool + bool +VteTerminalPrivate::set_scroll_speed(unsigned int scroll_speed) +{ + if (scroll_speed == m_scroll_speed) @@ -428,9 +458,10 @@ index e1b83596800a..8ed58df6ab4b 100644 + return true; +} + - bool ++bool VteTerminalPrivate::set_scrollback_lines(long lines) { + glong low, high, next; diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h index b3c6978f65d6..befde68c4bc5 100644 --- a/src/vte/vteterminal.h @@ -447,10 +478,10 @@ index b3c6978f65d6..befde68c4bc5 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 49e977088a53..025542475fad 100644 +index 4ccc4ff9c0ef..2b98eb8a34d2 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -471,6 +471,9 @@ vte_terminal_get_property (GObject *object, +@@ -481,6 +481,9 @@ vte_terminal_get_property (GObject *object, case PROP_REWRAP_ON_RESIZE: g_value_set_boolean (value, vte_terminal_get_rewrap_on_resize (terminal)); break; @@ -460,7 +491,7 @@ index 49e977088a53..025542475fad 100644 case PROP_SCROLLBACK_LINES: g_value_set_uint (value, impl->m_scrollback_lines); break; -@@ -560,6 +563,9 @@ vte_terminal_set_property (GObject *object, +@@ -570,6 +573,9 @@ vte_terminal_set_property (GObject *object, case PROP_REWRAP_ON_RESIZE: vte_terminal_set_rewrap_on_resize (terminal, g_value_get_boolean (value)); break; @@ -470,11 +501,10 @@ index 49e977088a53..025542475fad 100644 case PROP_SCROLLBACK_LINES: vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); break; -@@ -1455,6 +1461,21 @@ vte_terminal_class_init(VteTerminalClass *klass) - TRUE, +@@ -1467,6 +1473,21 @@ vte_terminal_class_init(VteTerminalClass *klass) (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); -+ /** + /** + * VteTerminal:scroll-speed: + * + * The number of lines by which the buffer is moved when @@ -489,14 +519,14 @@ index 49e977088a53..025542475fad 100644 + 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); + - /** ++ /** * VteTerminal:scrollback-lines: * -@@ -3798,6 +3819,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) - return IMPL(terminal)->m_row_count; + * The length of the scrollback buffer used by the terminal. The size of +@@ -3810,6 +3831,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) } -+/** + /** + * vte_terminal_set_scroll_speed: + * @terminal: a #VteTerminal + * @scroll_speed: move the buffer by this number of lines while scrolling @@ -520,9 +550,10 @@ index 49e977088a53..025542475fad 100644 + g_object_thaw_notify(object); +} + - /** ++/** * vte_terminal_set_scrollback_lines: * @terminal: a #VteTerminal + * @lines: the length of the history buffer diff --git a/src/vtegtk.hh b/src/vtegtk.hh index 07c714e66093..5a6c9382eeac 100644 --- a/src/vtegtk.hh @@ -536,10 +567,10 @@ index 07c714e66093..5a6c9382eeac 100644 PROP_SCROLL_ON_KEYSTROKE, PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index bb0cc56784f6..13b566839718 100644 +index f7faa7a52328..137987ac64ca 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -384,6 +384,7 @@ public: +@@ -385,6 +385,7 @@ public: gboolean m_scroll_on_output; gboolean m_scroll_on_keystroke; gboolean m_alternate_screen_scroll; @@ -547,7 +578,7 @@ index bb0cc56784f6..13b566839718 100644 vte::grid::row_t m_scrollback_lines; /* Restricted scrolling */ -@@ -1110,6 +1111,7 @@ public: +@@ -1112,6 +1113,7 @@ public: bool set_mouse_autohide(bool autohide); bool set_pty(VtePty *pty); bool set_rewrap_on_resize(bool rewrap); @@ -556,18 +587,19 @@ index bb0cc56784f6..13b566839718 100644 bool set_scroll_on_keystroke(bool scroll); bool set_scroll_on_output(bool scroll); -- -2.14.1 +2.9.5 -From c4cd4468ffbc7c470945826eca1bdc2a57ffa221 Mon Sep 17 00:00:00 2001 +From 17719b119d86e82083b42a265f6896bc68c30c48 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 -Subject: [PATCH 5/5] vteapp: Add a test for the scroll-speed property +Subject: [PATCH 5/5] Test the scroll-speed property https://bugzilla.redhat.com/show_bug.cgi?id=1103380 --- bindings/vala/app.vala | 4 ++++ - 1 file changed, 4 insertions(+) + src/vteapp.c | 7 +++++++ + 2 files changed, 11 insertions(+) diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala index 4c5d9a2b3bad..3b7310679239 100644 @@ -598,6 +630,38 @@ index 4c5d9a2b3bad..3b7310679239 100644 { "scrollback-lines", 'n', 0, OptionArg.INT, ref scrollback_lines, "Specify the number of scrollback-lines", null }, { "transparent", 'T', 0, OptionArg.INT, ref transparency_percent, +diff --git a/src/vteapp.c b/src/vteapp.c +index be3bab870659..2a0a573286e1 100644 +--- a/src/vteapp.c ++++ b/src/vteapp.c +@@ -641,6 +641,7 @@ main(int argc, char **argv) + hyperlink = TRUE; + char *geometry = NULL; + gint lines = -1; ++ gint scroll_speed = 0; + const char *message = "Launching interactive shell...\r\n"; + const char *font = NULL; + const char *command = NULL; +@@ -750,6 +751,11 @@ main(int argc, char **argv) + "Live on after the window closes", NULL + }, + { ++ "scroll-speed", 0, 0, ++ G_OPTION_ARG_INT, &scroll_speed, ++ "Specify the scroll speed", NULL ++ }, ++ { + "scrollback-lines", 'n', 0, + G_OPTION_ARG_INT, &lines, + "Specify the number of scrollback-lines", NULL +@@ -1017,6 +1023,7 @@ main(int argc, char **argv) + vte_terminal_set_cursor_blink_mode(terminal, cursor_blink_mode); + vte_terminal_set_scroll_on_output(terminal, FALSE); + vte_terminal_set_scroll_on_keystroke(terminal, TRUE); ++ vte_terminal_set_scroll_speed(terminal, (guint) scroll_speed); + vte_terminal_set_scrollback_lines(terminal, lines); + vte_terminal_set_mouse_autohide(terminal, TRUE); + -- -2.14.1 +2.9.5 diff --git a/vte291.spec b/vte291.spec index f3b378e..522c4ca 100644 --- a/vte291.spec +++ b/vte291.spec @@ -1,7 +1,7 @@ %global apiver 2.91 Name: vte291 -Version: 0.50.0 +Version: 0.50.1 Release: 1%{?dist} Summary: Terminal emulator library @@ -100,6 +100,10 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Thu Oct 05 2017 Debarshi Ray - 0.50.1-1 +- Update to 0.50.1 +- Rebase downstream patches + * Thu Sep 14 2017 Kalev Lember - 0.50.0-1 - Update to 0.50.0 - Rebase downstream patches From 7dce41935b8df88c353b88854780661a0232e699 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 1 Nov 2017 17:01:16 +0100 Subject: [PATCH 002/164] Update to 0.50.2 --- .gitignore | 1 + sources | 2 +- vte291-command-notify-scroll-speed.patch | 84 ++++++++++++------------ vte291.spec | 5 +- 4 files changed, 48 insertions(+), 44 deletions(-) diff --git a/.gitignore b/.gitignore index 3c09c0f..b7a3b92 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,4 @@ /vte-0.48.3.tar.xz /vte-0.50.0.tar.xz /vte-0.50.1.tar.xz +/vte-0.50.2.tar.xz diff --git a/sources b/sources index 011db29..2990fb7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.50.1.tar.xz) = d5e9c7990ddb6ee789d4f4f8df05c23d794791e8381266551cf6574658ee8fd6adc4c7b9ac6aadcf957887b0ba13f7f89002fd820c8d35c789bba918414bd330 +SHA512 (vte-0.50.2.tar.xz) = a1b12c74bedb167bf2a470294c566198c224c90be9b5c50366ef18d9542921f6cb2dc2329afd82f7342279c3eebd4ef5dfd753b4feb9d4e3e194cb878b48a7a2 diff --git a/vte291-command-notify-scroll-speed.patch b/vte291-command-notify-scroll-speed.patch index 5f8169d..d8901fe 100644 --- a/vte291-command-notify-scroll-speed.patch +++ b/vte291-command-notify-scroll-speed.patch @@ -1,4 +1,4 @@ -From 7e610a3fcc67f9ed642d14efa4e7b0a076ce5bab Mon Sep 17 00:00:00 2001 +From dba0e89e39aa86be61b09225cb39e0a8aeebb196 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 1/5] Add sequences and signals for desktop notification @@ -62,10 +62,10 @@ index 1e4d0c1b6476..3385b4759713 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index e52f72604560..f3b86643807c 100644 +index 6f28670c037b..8df17c4bc531 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -8552,6 +8552,9 @@ VteTerminalPrivate::~VteTerminalPrivate() +@@ -8553,6 +8553,9 @@ VteTerminalPrivate::~VteTerminalPrivate() remove_update_timeout(this); @@ -75,7 +75,7 @@ index e52f72604560..f3b86643807c 100644 /* discard title updates */ g_free(m_window_title); g_free(m_window_title_changed); -@@ -10632,6 +10635,15 @@ VteTerminalPrivate::emit_pending_signals() +@@ -10634,6 +10637,15 @@ VteTerminalPrivate::emit_pending_signals() emit_adjustment_changed(); @@ -89,8 +89,8 @@ index e52f72604560..f3b86643807c 100644 + } + if (m_window_title_changed) { + really_changed = (g_strcmp0(m_window_title, m_window_title_changed) != 0); g_free (m_window_title); - m_window_title = m_window_title_changed; diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h index cfd5a911adbe..b3c6978f65d6 100644 --- a/src/vte/vteterminal.h @@ -119,10 +119,11 @@ index 18a4b1ba16e9..4ccc4ff9c0ef 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -755,6 +756,26 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -754,6 +755,26 @@ vte_terminal_class_init(VteTerminalClass *klass) + G_TYPE_NONE, 1, G_TYPE_INT); - /** ++ /** + * VteTerminal::notification-received: + * @vteterminal: the object which received the signal + * @summary: The summary @@ -142,10 +143,9 @@ index 18a4b1ba16e9..4ccc4ff9c0ef 100644 + G_TYPE_NONE, + 2, G_TYPE_STRING, G_TYPE_STRING); + -+ /** + /** * VteTerminal::window-title-changed: * @vteterminal: the object which received the signal - * diff --git a/src/vtegtk.hh b/src/vtegtk.hh index d1ade949b8ff..07c714e66093 100644 --- a/src/vtegtk.hh @@ -186,10 +186,10 @@ index 7cd1de50f8f0..e2cb3c90c86e 100644 "iterm2-133", VTE_SEQUENCE_HANDLER(vte_sequence_handler_iterm2_133) "iterm2-1337", VTE_SEQUENCE_HANDLER(vte_sequence_handler_iterm2_1337) diff --git a/src/vteseq.cc b/src/vteseq.cc -index 6876341d371f..01c8160d5124 100644 +index 7b5b49b094f0..07154f2172c9 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -2352,6 +2352,96 @@ vte_sequence_handler_return_terminal_id (VteTerminalPrivate *that, GValueArray * +@@ -2353,6 +2353,96 @@ vte_sequence_handler_return_terminal_id (VteTerminalPrivate *that, GValueArray * vte_sequence_handler_send_primary_device_attributes (that, params); } @@ -287,10 +287,10 @@ index 6876341d371f..01c8160d5124 100644 static void vte_sequence_handler_send_secondary_device_attributes (VteTerminalPrivate *that, GValueArray *params) -- -2.9.5 +2.14.3 -From fea22a41c0fcef5e055c83a6dd718ef3426979d7 Mon Sep 17 00:00:00 2001 +From b0b2fe7a11c0375a24a78b4352c78c6d9ec581c0 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 Subject: [PATCH 2/5] vte.sh: Emit OSC 777 from PROMPT_COMMAND @@ -318,10 +318,10 @@ index 2d211caa2f17..1c0543bd9d26 100644 case "$TERM" in -- -2.9.5 +2.14.3 -From 3d933494eefdad354cd7cbf902287118469230a4 Mon Sep 17 00:00:00 2001 +From 76f035762fe6a2cebcb25d7bee4799264c5232f4 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 Subject: [PATCH 3/5] Test the notification-received signal @@ -360,20 +360,20 @@ diff --git a/src/vteapp.c b/src/vteapp.c index 865df644e70e..be3bab870659 100644 --- a/src/vteapp.c +++ b/src/vteapp.c -@@ -49,6 +49,13 @@ static const char *builtin_dingus[] = { +@@ -48,6 +48,13 @@ static const char *builtin_dingus[] = { + static gboolean use_gregex = FALSE; - static void ++static void +notification_received (GtkWidget *widget, const gchar *summary, const gchar *body) +{ + g_assert(VTE_TERMINAL(widget)); + g_print("[%s]: %s\n", summary, body); +} + -+static void + static void window_title_changed(GtkWidget *widget, gpointer win) { - GtkWindow *window; @@ -966,6 +973,9 @@ main(int argc, char **argv) G_CALLBACK(icon_title_changed), window); } @@ -385,10 +385,10 @@ index 865df644e70e..be3bab870659 100644 g_signal_connect(widget, "button-press-event", G_CALLBACK(button_pressed), widget); -- -2.9.5 +2.14.3 -From 2b3284d6f7c24f5ef58eb31e96d2d6f8e208f5f8 Mon Sep 17 00:00:00 2001 +From 89c7aca4a043ab9c47d787513b072649186a568a Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 Subject: [PATCH 4/5] Add a property to configure the scroll speed @@ -419,10 +419,10 @@ index 9b34536c7bf9..b67f3957b888 100644 vte_terminal_set_font vte_terminal_get_font diff --git a/src/vte.cc b/src/vte.cc -index f3b86643807c..c1b1e50896b4 100644 +index 8df17c4bc531..ef3afc427cb9 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9899,6 +9899,7 @@ void +@@ -9900,6 +9900,7 @@ void VteTerminalPrivate::widget_scroll(GdkEventScroll *event) { gdouble delta_x, delta_y; @@ -430,7 +430,7 @@ index f3b86643807c..c1b1e50896b4 100644 gdouble v; gint cnt, i; int button; -@@ -9952,7 +9953,13 @@ VteTerminalPrivate::widget_scroll(GdkEventScroll *event) +@@ -9953,7 +9954,13 @@ VteTerminalPrivate::widget_scroll(GdkEventScroll *event) return; } @@ -446,9 +446,10 @@ index f3b86643807c..c1b1e50896b4 100644 "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); @@ -10190,6 +10197,16 @@ VteTerminalPrivate::decscusr_cursor_shape() + } } - bool ++bool +VteTerminalPrivate::set_scroll_speed(unsigned int scroll_speed) +{ + if (scroll_speed == m_scroll_speed) @@ -458,10 +459,9 @@ index f3b86643807c..c1b1e50896b4 100644 + return true; +} + -+bool + bool VteTerminalPrivate::set_scrollback_lines(long lines) { - glong low, high, next; diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h index b3c6978f65d6..befde68c4bc5 100644 --- a/src/vte/vteterminal.h @@ -501,10 +501,11 @@ index 4ccc4ff9c0ef..2b98eb8a34d2 100644 case PROP_SCROLLBACK_LINES: vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); break; -@@ -1467,6 +1473,21 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1466,6 +1472,21 @@ vte_terminal_class_init(VteTerminalClass *klass) + TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); - /** ++ /** + * VteTerminal:scroll-speed: + * + * The number of lines by which the buffer is moved when @@ -519,14 +520,14 @@ index 4ccc4ff9c0ef..2b98eb8a34d2 100644 + 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); + -+ /** + /** * VteTerminal:scrollback-lines: * - * The length of the scrollback buffer used by the terminal. The size of -@@ -3810,6 +3831,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) +@@ -3809,6 +3830,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) + return IMPL(terminal)->m_row_count; } - /** ++/** + * vte_terminal_set_scroll_speed: + * @terminal: a #VteTerminal + * @scroll_speed: move the buffer by this number of lines while scrolling @@ -550,10 +551,9 @@ index 4ccc4ff9c0ef..2b98eb8a34d2 100644 + g_object_thaw_notify(object); +} + -+/** + /** * vte_terminal_set_scrollback_lines: * @terminal: a #VteTerminal - * @lines: the length of the history buffer diff --git a/src/vtegtk.hh b/src/vtegtk.hh index 07c714e66093..5a6c9382eeac 100644 --- a/src/vtegtk.hh @@ -587,10 +587,10 @@ index f7faa7a52328..137987ac64ca 100644 bool set_scroll_on_keystroke(bool scroll); bool set_scroll_on_output(bool scroll); -- -2.9.5 +2.14.3 -From 17719b119d86e82083b42a265f6896bc68c30c48 Mon Sep 17 00:00:00 2001 +From eb3c5639a5a4405ad8fa7868dbb1b3ad60dd7fe8 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 Subject: [PATCH 5/5] Test the scroll-speed property @@ -642,18 +642,18 @@ index be3bab870659..2a0a573286e1 100644 const char *message = "Launching interactive shell...\r\n"; const char *font = NULL; const char *command = NULL; -@@ -750,6 +751,11 @@ main(int argc, char **argv) +@@ -749,6 +750,11 @@ main(int argc, char **argv) + G_OPTION_ARG_NONE, &keep, "Live on after the window closes", NULL }, - { ++ { + "scroll-speed", 0, 0, + G_OPTION_ARG_INT, &scroll_speed, + "Specify the scroll speed", NULL + }, -+ { + { "scrollback-lines", 'n', 0, G_OPTION_ARG_INT, &lines, - "Specify the number of scrollback-lines", NULL @@ -1017,6 +1023,7 @@ main(int argc, char **argv) vte_terminal_set_cursor_blink_mode(terminal, cursor_blink_mode); vte_terminal_set_scroll_on_output(terminal, FALSE); @@ -663,5 +663,5 @@ index be3bab870659..2a0a573286e1 100644 vte_terminal_set_mouse_autohide(terminal, TRUE); -- -2.9.5 +2.14.3 diff --git a/vte291.spec b/vte291.spec index 522c4ca..c9286f2 100644 --- a/vte291.spec +++ b/vte291.spec @@ -1,7 +1,7 @@ %global apiver 2.91 Name: vte291 -Version: 0.50.1 +Version: 0.50.2 Release: 1%{?dist} Summary: Terminal emulator library @@ -100,6 +100,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Wed Nov 01 2017 Debarshi Ray - 0.50.2-1 +- Update to 0.50.2 + * Thu Oct 05 2017 Debarshi Ray - 0.50.1-1 - Update to 0.50.1 - Rebase downstream patches From ab873a55136959b34c86a3758105e3c2df971260 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Thu, 2 Nov 2017 15:17:50 +0100 Subject: [PATCH 003/164] Rebuild ... to be able to merge two updates in Bodhi together. --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index c9286f2..dcba6ae 100644 --- a/vte291.spec +++ b/vte291.spec @@ -2,7 +2,7 @@ Name: vte291 Version: 0.50.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -100,6 +100,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Thu Nov 02 2017 Kalev Lember - 0.50.2-2 +- Rebuild + * Wed Nov 01 2017 Debarshi Ray - 0.50.2-1 - Update to 0.50.2 From a85b0d4528e7db90871004a4410217d90c7561a6 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Thu, 8 Feb 2018 13:33:03 +0100 Subject: [PATCH 004/164] Switch to %ldconfig_scriptlets Signed-off-by: Igor Gnatenko --- vte291.spec | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/vte291.spec b/vte291.spec index dcba6ae..c6cd47d 100644 --- a/vte291.spec +++ b/vte291.spec @@ -2,7 +2,7 @@ Name: vte291 Version: 0.50.2 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -77,9 +77,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %find_lang vte-%{apiver} -%post -p /sbin/ldconfig - -%postun -p /sbin/ldconfig +%ldconfig_scriptlets %files -f vte-%{apiver}.lang %license COPYING @@ -100,6 +98,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Thu Feb 08 2018 Igor Gnatenko - 0.50.2-3 +- Switch to %%ldconfig_scriptlets + * Thu Nov 02 2017 Kalev Lember - 0.50.2-2 - Rebuild From 959a8644ba9151b39b5195f6c501544a9d39f493 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 28 Mar 2018 13:48:05 +0200 Subject: [PATCH 005/164] Update to 0.51.3 - Rebase downstream patches --- .gitignore | 1 + sources | 2 +- vte291-command-notify-scroll-speed.patch | 290 +++++++++++------------ vte291.spec | 10 +- 4 files changed, 154 insertions(+), 149 deletions(-) diff --git a/.gitignore b/.gitignore index b7a3b92..69f1b70 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,4 @@ /vte-0.50.0.tar.xz /vte-0.50.1.tar.xz /vte-0.50.2.tar.xz +/vte-0.51.3.tar.xz diff --git a/sources b/sources index 2990fb7..13e03b4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.50.2.tar.xz) = a1b12c74bedb167bf2a470294c566198c224c90be9b5c50366ef18d9542921f6cb2dc2329afd82f7342279c3eebd4ef5dfd753b4feb9d4e3e194cb878b48a7a2 +SHA512 (vte-0.51.3.tar.xz) = a49e15b5ebe35999a8c51859cf3d8065db4cfde42c62676c133be4b0267bd65f35e64ae9296c717ac7aed25fa83d9948693ae65819cddfba1e5448ce8efec170 diff --git a/vte291-command-notify-scroll-speed.patch b/vte291-command-notify-scroll-speed.patch index d8901fe..9cd18df 100644 --- a/vte291-command-notify-scroll-speed.patch +++ b/vte291-command-notify-scroll-speed.patch @@ -1,4 +1,4 @@ -From dba0e89e39aa86be61b09225cb39e0a8aeebb196 Mon Sep 17 00:00:00 2001 +From afb1b0cef6eb46b9880f0f951aa4f65e0f3a1d60 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 1/5] Add sequences and signals for desktop notification @@ -17,39 +17,39 @@ https://phab.enlightenment.org/T1765 https://bugzilla.gnome.org/show_bug.cgi?id=711059 --- - src/caps.cc | 4 +++ + src/caps-list.hh | 4 +++ src/marshal.list | 1 + src/vte.cc | 12 +++++++ src/vte/vteterminal.h | 4 ++- src/vtegtk.cc | 21 ++++++++++++ src/vtegtk.hh | 1 + src/vteinternal.hh | 5 +++ - src/vteseq-n.gperf | 1 + - src/vteseq.cc | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++ - 9 files changed, 138 insertions(+), 1 deletion(-) + src/vteseq-list.hh | 1 + + src/vteseq.cc | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++ + 9 files changed, 140 insertions(+), 1 deletion(-) -diff --git a/src/caps.cc b/src/caps.cc -index 1f9cd1ed19e3..7262aeb2b8e0 100644 ---- a/src/caps.cc -+++ b/src/caps.cc -@@ -257,6 +257,8 @@ const char _vte_xterm_capability_strings[] = - ENTRY(OSC "119" BEL, "reset-highlight-foreground-color") - ENTRY(OSC "133;%s" BEL, "iterm2-133") - ENTRY(OSC "777;%s" BEL, "urxvt-777") -+ ENTRY(OSC "777;%s;%s;%s" BEL, "send-notification") -+ ENTRY(OSC "777;%s;%s" BEL, "send-notification") - ENTRY(OSC "1337;%s" BEL, "iterm2-1337") +diff --git a/src/caps-list.hh b/src/caps-list.hh +index cc75191638c6..0336a9dee525 100644 +--- a/src/caps-list.hh ++++ b/src/caps-list.hh +@@ -248,6 +248,8 @@ static const vte_matcher_entry_t entries[] = { + ENTRY(OSC "119" BEL, reset_highlight_foreground_color), + ENTRY(OSC "133;%s" BEL, iterm2_133), + ENTRY(OSC "777;%s" BEL, urxvt_777), ++ ENTRY(OSC "777;%s;%s;%s" BEL, send_notification), ++ ENTRY(OSC "777;%s;%s" BEL, send_notification), + ENTRY(OSC "1337;%s" BEL, iterm2_1337), - COMMENT(/* Set text parameters, ST-terminated versions. */) -@@ -296,6 +298,8 @@ const char _vte_xterm_capability_strings[] = - ENTRY(OSC "119" ST, "reset-highlight-foreground-color") - ENTRY(OSC "133;%s" ST, "iterm2-133") - ENTRY(OSC "777;%s" ST, "urxvt-777") -+ ENTRY(OSC "777;%s;%s;%s" ST, "send-notification") -+ ENTRY(OSC "777;%s;%s" ST, "send-notification") - ENTRY(OSC "1337;%s" ST, "iterm2-1337") + /* Set text parameters, ST_terminated versions. */ +@@ -287,6 +289,8 @@ static const vte_matcher_entry_t entries[] = { + ENTRY(OSC "119" ST, reset_highlight_foreground_color), + ENTRY(OSC "133;%s" ST, iterm2_133), + ENTRY(OSC "777;%s" ST, urxvt_777), ++ ENTRY(OSC "777;%s;%s;%s" ST, send_notification), ++ ENTRY(OSC "777;%s;%s" ST, send_notification), + ENTRY(OSC "1337;%s" ST, iterm2_1337), - COMMENT(/* These may be bogus, I can't find docs for them anywhere (#104154). */) + /* These may be bogus, I can't find docs for them anywhere (#104154). */ diff --git a/src/marshal.list b/src/marshal.list index 1e4d0c1b6476..3385b4759713 100644 --- a/src/marshal.list @@ -62,10 +62,10 @@ index 1e4d0c1b6476..3385b4759713 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index 6f28670c037b..8df17c4bc531 100644 +index 276895442de9..b9bcdf1d60a9 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -8553,6 +8553,9 @@ VteTerminalPrivate::~VteTerminalPrivate() +@@ -8706,6 +8706,9 @@ VteTerminalPrivate::~VteTerminalPrivate() remove_update_timeout(this); @@ -75,7 +75,7 @@ index 6f28670c037b..8df17c4bc531 100644 /* discard title updates */ g_free(m_window_title); g_free(m_window_title_changed); -@@ -10634,6 +10637,15 @@ VteTerminalPrivate::emit_pending_signals() +@@ -10966,6 +10969,15 @@ VteTerminalPrivate::emit_pending_signals() emit_adjustment_changed(); @@ -92,7 +92,7 @@ index 6f28670c037b..8df17c4bc531 100644 really_changed = (g_strcmp0(m_window_title, m_window_title_changed) != 0); g_free (m_window_title); diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index cfd5a911adbe..b3c6978f65d6 100644 +index b96999f3c144..6bb3ac658454 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -104,8 +104,10 @@ struct _VteTerminalClass { @@ -108,10 +108,10 @@ index cfd5a911adbe..b3c6978f65d6 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 18a4b1ba16e9..4ccc4ff9c0ef 100644 +index 83fdfc8ae113..eecb9c35e437 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -679,6 +679,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -703,6 +703,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->child_exited = NULL; klass->encoding_changed = NULL; klass->char_size_changed = NULL; @@ -119,7 +119,7 @@ index 18a4b1ba16e9..4ccc4ff9c0ef 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -754,6 +755,26 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -778,6 +779,26 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 1, G_TYPE_INT); @@ -147,7 +147,7 @@ index 18a4b1ba16e9..4ccc4ff9c0ef 100644 * VteTerminal::window-title-changed: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index d1ade949b8ff..07c714e66093 100644 +index c49754ef38ee..126d29326f11 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -56,6 +56,7 @@ enum { @@ -159,10 +159,10 @@ index d1ade949b8ff..07c714e66093 100644 LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 0cd686b6adc2..f7faa7a52328 100644 +index 5d8731e00464..cdb6bcb0b230 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -496,6 +496,11 @@ public: +@@ -635,6 +635,11 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -174,27 +174,28 @@ index 0cd686b6adc2..f7faa7a52328 100644 /* window name changes */ char* m_window_title; char* m_window_title_changed; -diff --git a/src/vteseq-n.gperf b/src/vteseq-n.gperf -index 7cd1de50f8f0..e2cb3c90c86e 100644 ---- a/src/vteseq-n.gperf -+++ b/src/vteseq-n.gperf -@@ -171,5 +171,6 @@ struct vteseq_n_struct { - "set-current-file-uri", VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_current_file_uri) - "set-current-hyperlink", VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_current_hyperlink) - "urxvt-777", VTE_SEQUENCE_HANDLER(vte_sequence_handler_urxvt_777) -+"send-notification", VTE_SEQUENCE_HANDLER(vte_sequence_handler_send_notification) - "iterm2-133", VTE_SEQUENCE_HANDLER(vte_sequence_handler_iterm2_133) - "iterm2-1337", VTE_SEQUENCE_HANDLER(vte_sequence_handler_iterm2_1337) +diff --git a/src/vteseq-list.hh b/src/vteseq-list.hh +index 1dda44862fb2..3781e7ac36b6 100644 +--- a/src/vteseq-list.hh ++++ b/src/vteseq-list.hh +@@ -120,6 +120,7 @@ SEQUENCE_HANDLER(select_character_protection) + SEQUENCE_HANDLER(select_locator_events) + SEQUENCE_HANDLER(selective_erase_in_display) + SEQUENCE_HANDLER(selective_erase_in_line) ++SEQUENCE_HANDLER(send_notification) + SEQUENCE_HANDLER(send_primary_device_attributes) + SEQUENCE_HANDLER(send_secondary_device_attributes) + SEQUENCE_HANDLER(send_tertiary_device_attributes) diff --git a/src/vteseq.cc b/src/vteseq.cc -index 7b5b49b094f0..07154f2172c9 100644 +index ba180146e78c..7ec6d9dd46ec 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -2353,6 +2353,96 @@ vte_sequence_handler_return_terminal_id (VteTerminalPrivate *that, GValueArray * - vte_sequence_handler_send_primary_device_attributes (that, params); +@@ -2092,6 +2092,98 @@ VteTerminalPrivate::seq_return_terminal_id(vte::parser::Params const& params) + seq_send_primary_device_attributes(params); } -+static void -+vte_sequence_handler_send_notification (VteTerminalPrivate *that, GValueArray *params) ++void ++VteTerminalPrivate::seq_send_notification (vte::parser::Params const& params) +{ + GValue *value; + const char *end; @@ -202,10 +203,10 @@ index 7b5b49b094f0..07154f2172c9 100644 + char *str = NULL; + char *p, *validated; + -+ g_clear_pointer (&that->m_notification_summary, g_free); -+ g_clear_pointer (&that->m_notification_body, g_free); ++ g_clear_pointer (&m_notification_summary, g_free); ++ g_clear_pointer (&m_notification_body, g_free); + -+ value = g_value_array_get_nth (params, 0); ++ value = params.value_at_unchecked (0); + if (value == NULL) { + goto out; + } @@ -213,7 +214,7 @@ index 7b5b49b094f0..07154f2172c9 100644 + if (G_VALUE_HOLDS_STRING (value)) { + option = g_value_dup_string (value); + } else if (G_VALUE_HOLDS_POINTER (value)) { -+ option = that->ucs4_to_utf8 ((const guchar *)g_value_get_pointer (value)); ++ option = params.ucs4_to_utf8 ((gunichar const*)g_value_get_pointer (value)); + } else { + goto out; + } @@ -222,7 +223,7 @@ index 7b5b49b094f0..07154f2172c9 100644 + goto out; + } + -+ value = g_value_array_get_nth (params, 1); ++ value = params.value_at_unchecked (1); + if (value == NULL) { + goto out; + } @@ -230,7 +231,7 @@ index 7b5b49b094f0..07154f2172c9 100644 + if (G_VALUE_HOLDS_STRING (value)) { + str = g_value_dup_string (value); + } else if (G_VALUE_HOLDS_POINTER (value)) { -+ str = that->ucs4_to_utf8 ((const guchar *)g_value_get_pointer (value)); ++ str = params.ucs4_to_utf8 ((gunichar const*)g_value_get_pointer (value)); + } else { + goto out; + } @@ -245,15 +246,16 @@ index 7b5b49b094f0..07154f2172c9 100644 + } + } + -+ that->m_notification_summary = validated; ++ m_notification_summary = validated; ++ validated = NULL; + g_free (str); + -+ that->m_notification_received = TRUE; -+ if (params->n_values == 2) { ++ m_notification_received = TRUE; ++ if (params.size () == 2) { + goto out; + } + -+ value = g_value_array_get_nth (params, 2); ++ value = params.value_at_unchecked (2); + if (value == NULL) { + goto out; + } @@ -261,7 +263,7 @@ index 7b5b49b094f0..07154f2172c9 100644 + if (G_VALUE_HOLDS_STRING (value)) { + str = g_value_dup_string (value); + } else if (G_VALUE_HOLDS_POINTER (value)) { -+ str = that->ucs4_to_utf8 ((const guchar *)g_value_get_pointer (value)); ++ str = params.ucs4_to_utf8 ((gunichar const*)g_value_get_pointer (value)); + } else { + goto out; + } @@ -276,7 +278,8 @@ index 7b5b49b094f0..07154f2172c9 100644 + } + } + -+ that->m_notification_body = validated; ++ m_notification_body = validated; ++ validated = NULL; + g_free (str); + + out: @@ -284,13 +287,13 @@ index 7b5b49b094f0..07154f2172c9 100644 +} + /* Send secondary device attributes. */ - static void - vte_sequence_handler_send_secondary_device_attributes (VteTerminalPrivate *that, GValueArray *params) + void + VteTerminalPrivate::seq_send_secondary_device_attributes(vte::parser::Params const& params) -- 2.14.3 -From b0b2fe7a11c0375a24a78b4352c78c6d9ec581c0 Mon Sep 17 00:00:00 2001 +From f4de5d4c0884a534d35b7d9352b31e6ae5e63421 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 Subject: [PATCH 2/5] vte.sh: Emit OSC 777 from PROMPT_COMMAND @@ -321,14 +324,14 @@ index 2d211caa2f17..1c0543bd9d26 100644 2.14.3 -From 76f035762fe6a2cebcb25d7bee4799264c5232f4 Mon Sep 17 00:00:00 2001 +From 2895d52cba9294c7afda45b8c2b248021afbff32 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 Subject: [PATCH 3/5] Test the notification-received signal --- bindings/vala/app.vala | 7 +++++++ - src/vteapp.c | 10 ++++++++++ + src/app/app.cc | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala @@ -356,39 +359,39 @@ index 8663d63c5445..4c5d9a2b3bad 100644 } /* class Window */ class App : Gtk.Application -diff --git a/src/vteapp.c b/src/vteapp.c -index 865df644e70e..be3bab870659 100644 ---- a/src/vteapp.c -+++ b/src/vteapp.c -@@ -48,6 +48,13 @@ static const char *builtin_dingus[] = { - - static gboolean use_gregex = FALSE; +diff --git a/src/app/app.cc b/src/app/app.cc +index d63adb6b8ee8..fd80760a93c1 100644 +--- a/src/app/app.cc ++++ b/src/app/app.cc +@@ -1609,6 +1609,14 @@ window_window_title_changed_cb(VteTerminal* terminal, + vte_terminal_get_window_title(window->terminal)); + } +static void -+notification_received (GtkWidget *widget, const gchar *summary, const gchar *body) ++notification_received_cb(VteTerminal *terminal, ++ const gchar *summary, ++ const gchar *body) +{ -+ g_assert(VTE_TERMINAL(widget)); -+ g_print("[%s]: %s\n", summary, body); ++ g_print("[%s]: %s\n", summary, body); +} + static void - window_title_changed(GtkWidget *widget, gpointer win) - { -@@ -966,6 +973,9 @@ main(int argc, char **argv) - G_CALLBACK(icon_title_changed), window); - } + window_lower_window_cb(VteTerminal* terminal, + VteappWindow* window) +@@ -1836,6 +1844,8 @@ vteapp_window_constructed(GObject *object) + if (options.object_notifications) + g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); -+ g_signal_connect(widget, "notification-received", -+ G_CALLBACK(notification_received), NULL); ++ g_signal_connect(window->terminal, "notification-received", G_CALLBACK(notification_received_cb), NULL); + - /* Connect to the "button-press" event. */ - g_signal_connect(widget, "button-press-event", - G_CALLBACK(button_pressed), widget); + /* Settings */ + if (options.no_double_buffer) + gtk_widget_set_double_buffered(GTK_WIDGET(window->terminal), false); -- 2.14.3 -From 89c7aca4a043ab9c47d787513b072649186a568a Mon Sep 17 00:00:00 2001 +From f06116cfdcf3e5050e7ffb9de8c379fa6ef91bbe Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 Subject: [PATCH 4/5] Add a property to configure the scroll speed @@ -407,22 +410,22 @@ 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 9b34536c7bf9..b67f3957b888 100644 +index a63fa34362c4..eaec54599ab5 100644 --- a/doc/reference/vte-sections.txt +++ b/doc/reference/vte-sections.txt -@@ -44,6 +44,7 @@ vte_terminal_set_cursor_shape - vte_terminal_get_cursor_shape - vte_terminal_get_cursor_blink_mode +@@ -55,6 +55,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 +vte_terminal_set_scroll_speed vte_terminal_set_scrollback_lines + vte_terminal_get_scrollback_lines vte_terminal_set_font - vte_terminal_get_font diff --git a/src/vte.cc b/src/vte.cc -index 8df17c4bc531..ef3afc427cb9 100644 +index b9bcdf1d60a9..18e0dccfbcbb 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9900,6 +9900,7 @@ void +@@ -10210,6 +10210,7 @@ void VteTerminalPrivate::widget_scroll(GdkEventScroll *event) { gdouble delta_x, delta_y; @@ -430,7 +433,7 @@ index 8df17c4bc531..ef3afc427cb9 100644 gdouble v; gint cnt, i; int button; -@@ -9953,7 +9954,13 @@ VteTerminalPrivate::widget_scroll(GdkEventScroll *event) +@@ -10263,7 +10264,13 @@ VteTerminalPrivate::widget_scroll(GdkEventScroll *event) return; } @@ -445,7 +448,7 @@ index 8df17c4bc531..ef3afc427cb9 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -10190,6 +10197,16 @@ VteTerminalPrivate::decscusr_cursor_shape() +@@ -10524,6 +10531,16 @@ VteTerminalPrivate::decscusr_cursor_shape() } } @@ -463,10 +466,10 @@ index 8df17c4bc531..ef3afc427cb9 100644 VteTerminalPrivate::set_scrollback_lines(long lines) { diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index b3c6978f65d6..befde68c4bc5 100644 +index 6bb3ac658454..a6ee47ab3d97 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -275,6 +275,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, +@@ -296,6 +296,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, _VTE_PUBLIC VteCursorShape vte_terminal_get_cursor_shape(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); @@ -478,10 +481,10 @@ index b3c6978f65d6..befde68c4bc5 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 4ccc4ff9c0ef..2b98eb8a34d2 100644 +index eecb9c35e437..89653c5ee4bc 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -481,6 +481,9 @@ vte_terminal_get_property (GObject *object, +@@ -490,6 +490,9 @@ vte_terminal_get_property (GObject *object, case PROP_REWRAP_ON_RESIZE: g_value_set_boolean (value, vte_terminal_get_rewrap_on_resize (terminal)); break; @@ -489,9 +492,9 @@ index 4ccc4ff9c0ef..2b98eb8a34d2 100644 + g_value_set_uint (value, impl->m_scroll_speed); + break; case PROP_SCROLLBACK_LINES: - g_value_set_uint (value, impl->m_scrollback_lines); + g_value_set_uint (value, vte_terminal_get_scrollback_lines(terminal)); break; -@@ -570,6 +573,9 @@ vte_terminal_set_property (GObject *object, +@@ -591,6 +594,9 @@ vte_terminal_set_property (GObject *object, case PROP_REWRAP_ON_RESIZE: vte_terminal_set_rewrap_on_resize (terminal, g_value_get_boolean (value)); break; @@ -501,7 +504,7 @@ index 4ccc4ff9c0ef..2b98eb8a34d2 100644 case PROP_SCROLLBACK_LINES: vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); break; -@@ -1466,6 +1472,21 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1534,6 +1540,21 @@ vte_terminal_class_init(VteTerminalClass *klass) TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -523,7 +526,7 @@ index 4ccc4ff9c0ef..2b98eb8a34d2 100644 /** * VteTerminal:scrollback-lines: * -@@ -3809,6 +3830,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) +@@ -4053,6 +4074,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) return IMPL(terminal)->m_row_count; } @@ -555,10 +558,10 @@ index 4ccc4ff9c0ef..2b98eb8a34d2 100644 * vte_terminal_set_scrollback_lines: * @terminal: a #VteTerminal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 07c714e66093..5a6c9382eeac 100644 +index 126d29326f11..b2c9edfa8246 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh -@@ -83,6 +83,7 @@ enum { +@@ -86,6 +86,7 @@ enum { PROP_MOUSE_POINTER_AUTOHIDE, PROP_PTY, PROP_REWRAP_ON_RESIZE, @@ -567,10 +570,10 @@ index 07c714e66093..5a6c9382eeac 100644 PROP_SCROLL_ON_KEYSTROKE, PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index f7faa7a52328..137987ac64ca 100644 +index cdb6bcb0b230..2257afac7334 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -385,6 +385,7 @@ public: +@@ -498,6 +498,7 @@ public: gboolean m_scroll_on_output; gboolean m_scroll_on_keystroke; gboolean m_alternate_screen_scroll; @@ -578,7 +581,7 @@ index f7faa7a52328..137987ac64ca 100644 vte::grid::row_t m_scrollback_lines; /* Restricted scrolling */ -@@ -1112,6 +1113,7 @@ public: +@@ -1274,6 +1275,7 @@ public: bool set_mouse_autohide(bool autohide); bool set_pty(VtePty *pty); bool set_rewrap_on_resize(bool rewrap); @@ -590,7 +593,7 @@ index f7faa7a52328..137987ac64ca 100644 2.14.3 -From eb3c5639a5a4405ad8fa7868dbb1b3ad60dd7fe8 Mon Sep 17 00:00:00 2001 +From 6cf5ec5fe21c91ffef88581e4693cab14bd09e36 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 Subject: [PATCH 5/5] Test the scroll-speed property @@ -598,8 +601,8 @@ Subject: [PATCH 5/5] Test the scroll-speed property https://bugzilla.redhat.com/show_bug.cgi?id=1103380 --- bindings/vala/app.vala | 4 ++++ - src/vteapp.c | 7 +++++++ - 2 files changed, 11 insertions(+) + src/app/app.cc | 4 ++++ + 2 files changed, 8 insertions(+) diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala index 4c5d9a2b3bad..3b7310679239 100644 @@ -630,37 +633,34 @@ index 4c5d9a2b3bad..3b7310679239 100644 { "scrollback-lines", 'n', 0, OptionArg.INT, ref scrollback_lines, "Specify the number of scrollback-lines", null }, { "transparent", 'T', 0, OptionArg.INT, ref transparency_percent, -diff --git a/src/vteapp.c b/src/vteapp.c -index be3bab870659..2a0a573286e1 100644 ---- a/src/vteapp.c -+++ b/src/vteapp.c -@@ -641,6 +641,7 @@ main(int argc, char **argv) - hyperlink = TRUE; - char *geometry = NULL; - gint lines = -1; -+ gint scroll_speed = 0; - const char *message = "Launching interactive shell...\r\n"; - const char *font = NULL; - const char *command = NULL; -@@ -749,6 +750,11 @@ main(int argc, char **argv) - G_OPTION_ARG_NONE, &keep, - "Live on after the window closes", NULL - }, -+ { -+ "scroll-speed", 0, 0, -+ G_OPTION_ARG_INT, &scroll_speed, -+ "Specify the scroll speed", NULL -+ }, - { - "scrollback-lines", 'n', 0, - G_OPTION_ARG_INT, &lines, -@@ -1017,6 +1023,7 @@ main(int argc, char **argv) - vte_terminal_set_cursor_blink_mode(terminal, cursor_blink_mode); - vte_terminal_set_scroll_on_output(terminal, FALSE); - vte_terminal_set_scroll_on_keystroke(terminal, TRUE); -+ vte_terminal_set_scroll_speed(terminal, (guint) scroll_speed); - vte_terminal_set_scrollback_lines(terminal, lines); - vte_terminal_set_mouse_autohide(terminal, TRUE); +diff --git a/src/app/app.cc b/src/app/app.cc +index fd80760a93c1..d97e6d079b8a 100644 +--- a/src/app/app.cc ++++ b/src/app/app.cc +@@ -91,6 +91,7 @@ public: + int verbosity{0}; + double cell_height_scale{1.0}; + double cell_width_scale{1.0}; ++ unsigned int scroll_speed{0}; + VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM}; + VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK}; + VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS}; +@@ -419,6 +420,8 @@ public: + "Save terminal contents to file at exit", nullptr }, + { "reverse", 0, 0, G_OPTION_ARG_NONE, &reverse, + "Reverse foreground/background colors", nullptr }, ++ { "scroll-speed", 0, 0, G_OPTION_ARG_INT, &scroll_speed, ++ "Specify the scroll speed", nullptr }, + { "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, +@@ -1873,6 +1876,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); ++ vte_terminal_set_scroll_speed(window->terminal, options.scroll_speed); + vte_terminal_set_scrollback_lines(window->terminal, options.scrollback_lines); + vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); -- 2.14.3 diff --git a/vte291.spec b/vte291.spec index c6cd47d..85f1363 100644 --- a/vte291.spec +++ b/vte291.spec @@ -1,13 +1,13 @@ %global apiver 2.91 Name: vte291 -Version: 0.50.2 -Release: 3%{?dist} +Version: 0.51.3 +Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ URL: http://www.gnome.org/ -Source0: http://download.gnome.org/sources/vte/0.50/vte-%{version}.tar.xz +Source0: http://download.gnome.org/sources/vte/0.51/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 @@ -98,6 +98,10 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Wed Mar 28 2018 Debarshi Ray - 0.51.3-1 +- Update to 0.51.3 +- Rebase downstream patches + * Thu Feb 08 2018 Igor Gnatenko - 0.50.2-3 - Switch to %%ldconfig_scriptlets From c13a50eca4c5384f82321423e415ffb415eaf802 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 28 Mar 2018 14:16:21 +0200 Subject: [PATCH 006/164] Update to 0.51.90 --- .gitignore | 1 + sources | 2 +- vte291-command-notify-scroll-speed.patch | 66 ++++++++++++------------ vte291.spec | 5 +- 4 files changed, 39 insertions(+), 35 deletions(-) diff --git a/.gitignore b/.gitignore index 69f1b70..4ea5066 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,4 @@ /vte-0.50.1.tar.xz /vte-0.50.2.tar.xz /vte-0.51.3.tar.xz +/vte-0.51.90.tar.xz diff --git a/sources b/sources index 13e03b4..360b118 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.51.3.tar.xz) = a49e15b5ebe35999a8c51859cf3d8065db4cfde42c62676c133be4b0267bd65f35e64ae9296c717ac7aed25fa83d9948693ae65819cddfba1e5448ce8efec170 +SHA512 (vte-0.51.90.tar.xz) = 16cb22fe252f4708eaba21a2724b75b4e4f45079684607b245ab1be749d19945539e86474f15b132c3d4a6f23ef2e5d875b131b7279a68ac76e05b99b92ba4f9 diff --git a/vte291-command-notify-scroll-speed.patch b/vte291-command-notify-scroll-speed.patch index 9cd18df..26e6958 100644 --- a/vte291-command-notify-scroll-speed.patch +++ b/vte291-command-notify-scroll-speed.patch @@ -1,4 +1,4 @@ -From afb1b0cef6eb46b9880f0f951aa4f65e0f3a1d60 Mon Sep 17 00:00:00 2001 +From 6a934fc5a346acf3018e3b1a33524adae96924cd Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 1/5] Add sequences and signals for desktop notification @@ -62,10 +62,10 @@ index 1e4d0c1b6476..3385b4759713 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index 276895442de9..b9bcdf1d60a9 100644 +index 02c670a7b5d3..fbca04f22ff4 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -8706,6 +8706,9 @@ VteTerminalPrivate::~VteTerminalPrivate() +@@ -8704,6 +8704,9 @@ VteTerminalPrivate::~VteTerminalPrivate() remove_update_timeout(this); @@ -75,7 +75,7 @@ index 276895442de9..b9bcdf1d60a9 100644 /* discard title updates */ g_free(m_window_title); g_free(m_window_title_changed); -@@ -10966,6 +10969,15 @@ VteTerminalPrivate::emit_pending_signals() +@@ -10975,6 +10978,15 @@ VteTerminalPrivate::emit_pending_signals() emit_adjustment_changed(); @@ -92,7 +92,7 @@ index 276895442de9..b9bcdf1d60a9 100644 really_changed = (g_strcmp0(m_window_title, m_window_title_changed) != 0); g_free (m_window_title); diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index b96999f3c144..6bb3ac658454 100644 +index 4e2896cf1aaf..f288f9e0f49a 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -104,8 +104,10 @@ struct _VteTerminalClass { @@ -108,10 +108,10 @@ index b96999f3c144..6bb3ac658454 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 83fdfc8ae113..eecb9c35e437 100644 +index bacfa0121b14..d695c1f61ecd 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -703,6 +703,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -702,6 +702,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->child_exited = NULL; klass->encoding_changed = NULL; klass->char_size_changed = NULL; @@ -119,7 +119,7 @@ index 83fdfc8ae113..eecb9c35e437 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -778,6 +779,26 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -777,6 +778,26 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 1, G_TYPE_INT); @@ -159,7 +159,7 @@ index c49754ef38ee..126d29326f11 100644 LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 5d8731e00464..cdb6bcb0b230 100644 +index fe63e76c2038..ecd9889be17c 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -635,6 +635,11 @@ public: @@ -187,10 +187,10 @@ index 1dda44862fb2..3781e7ac36b6 100644 SEQUENCE_HANDLER(send_secondary_device_attributes) SEQUENCE_HANDLER(send_tertiary_device_attributes) diff --git a/src/vteseq.cc b/src/vteseq.cc -index ba180146e78c..7ec6d9dd46ec 100644 +index fd3227fc817a..bd3a04671e14 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -2092,6 +2092,98 @@ VteTerminalPrivate::seq_return_terminal_id(vte::parser::Params const& params) +@@ -2112,6 +2112,98 @@ VteTerminalPrivate::seq_return_terminal_id(vte::parser::Params const& params) seq_send_primary_device_attributes(params); } @@ -293,7 +293,7 @@ index ba180146e78c..7ec6d9dd46ec 100644 2.14.3 -From f4de5d4c0884a534d35b7d9352b31e6ae5e63421 Mon Sep 17 00:00:00 2001 +From 1f18bef96b7cd440e0be09e98ca705d09c9f1b53 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 Subject: [PATCH 2/5] vte.sh: Emit OSC 777 from PROMPT_COMMAND @@ -324,7 +324,7 @@ index 2d211caa2f17..1c0543bd9d26 100644 2.14.3 -From 2895d52cba9294c7afda45b8c2b248021afbff32 Mon Sep 17 00:00:00 2001 +From 9c54455d461be00454978eb368994e7eda766c15 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 Subject: [PATCH 3/5] Test the notification-received signal @@ -360,10 +360,10 @@ index 8663d63c5445..4c5d9a2b3bad 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index d63adb6b8ee8..fd80760a93c1 100644 +index 008faccc1485..2b3bc12139ed 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1609,6 +1609,14 @@ window_window_title_changed_cb(VteTerminal* terminal, +@@ -1581,6 +1581,14 @@ window_window_title_changed_cb(VteTerminal* terminal, vte_terminal_get_window_title(window->terminal)); } @@ -378,7 +378,7 @@ index d63adb6b8ee8..fd80760a93c1 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -1836,6 +1844,8 @@ vteapp_window_constructed(GObject *object) +@@ -1808,6 +1816,8 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); @@ -391,7 +391,7 @@ index d63adb6b8ee8..fd80760a93c1 100644 2.14.3 -From f06116cfdcf3e5050e7ffb9de8c379fa6ef91bbe Mon Sep 17 00:00:00 2001 +From 55bd670334082db1d579c51f4b233c7d5eabf316 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 Subject: [PATCH 4/5] Add a property to configure the scroll speed @@ -410,7 +410,7 @@ 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 a63fa34362c4..eaec54599ab5 100644 +index 6e37f0bad223..025986ee2146 100644 --- a/doc/reference/vte-sections.txt +++ b/doc/reference/vte-sections.txt @@ -55,6 +55,7 @@ vte_terminal_get_cursor_blink_mode @@ -422,10 +422,10 @@ index a63fa34362c4..eaec54599ab5 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index b9bcdf1d60a9..18e0dccfbcbb 100644 +index fbca04f22ff4..e7644a90fd3d 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10210,6 +10210,7 @@ void +@@ -10219,6 +10219,7 @@ void VteTerminalPrivate::widget_scroll(GdkEventScroll *event) { gdouble delta_x, delta_y; @@ -433,7 +433,7 @@ index b9bcdf1d60a9..18e0dccfbcbb 100644 gdouble v; gint cnt, i; int button; -@@ -10263,7 +10264,13 @@ VteTerminalPrivate::widget_scroll(GdkEventScroll *event) +@@ -10272,7 +10273,13 @@ VteTerminalPrivate::widget_scroll(GdkEventScroll *event) return; } @@ -448,7 +448,7 @@ index b9bcdf1d60a9..18e0dccfbcbb 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -10524,6 +10531,16 @@ VteTerminalPrivate::decscusr_cursor_shape() +@@ -10533,6 +10540,16 @@ VteTerminalPrivate::decscusr_cursor_shape() } } @@ -466,7 +466,7 @@ index b9bcdf1d60a9..18e0dccfbcbb 100644 VteTerminalPrivate::set_scrollback_lines(long lines) { diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 6bb3ac658454..a6ee47ab3d97 100644 +index f288f9e0f49a..7d09c761aded 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -296,6 +296,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, @@ -481,7 +481,7 @@ index 6bb3ac658454..a6ee47ab3d97 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index eecb9c35e437..89653c5ee4bc 100644 +index d695c1f61ecd..677514d54b64 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -490,6 +490,9 @@ vte_terminal_get_property (GObject *object, @@ -504,7 +504,7 @@ index eecb9c35e437..89653c5ee4bc 100644 case PROP_SCROLLBACK_LINES: vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); break; -@@ -1534,6 +1540,21 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1533,6 +1539,21 @@ vte_terminal_class_init(VteTerminalClass *klass) TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -526,7 +526,7 @@ index eecb9c35e437..89653c5ee4bc 100644 /** * VteTerminal:scrollback-lines: * -@@ -4053,6 +4074,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) +@@ -4060,6 +4081,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) return IMPL(terminal)->m_row_count; } @@ -570,7 +570,7 @@ index 126d29326f11..b2c9edfa8246 100644 PROP_SCROLL_ON_KEYSTROKE, PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index cdb6bcb0b230..2257afac7334 100644 +index ecd9889be17c..7f21750cf828 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -498,6 +498,7 @@ public: @@ -581,7 +581,7 @@ index cdb6bcb0b230..2257afac7334 100644 vte::grid::row_t m_scrollback_lines; /* Restricted scrolling */ -@@ -1274,6 +1275,7 @@ public: +@@ -1269,6 +1270,7 @@ public: bool set_mouse_autohide(bool autohide); bool set_pty(VtePty *pty); bool set_rewrap_on_resize(bool rewrap); @@ -593,7 +593,7 @@ index cdb6bcb0b230..2257afac7334 100644 2.14.3 -From 6cf5ec5fe21c91ffef88581e4693cab14bd09e36 Mon Sep 17 00:00:00 2001 +From 7d8cf7fc9c270e582277abca75c97265d2ff561e Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 Subject: [PATCH 5/5] Test the scroll-speed property @@ -634,10 +634,10 @@ index 4c5d9a2b3bad..3b7310679239 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 fd80760a93c1..d97e6d079b8a 100644 +index 2b3bc12139ed..4267637b8a3f 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -91,6 +91,7 @@ public: +@@ -89,6 +89,7 @@ public: int verbosity{0}; double cell_height_scale{1.0}; double cell_width_scale{1.0}; @@ -645,7 +645,7 @@ index fd80760a93c1..d97e6d079b8a 100644 VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM}; VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK}; VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS}; -@@ -419,6 +420,8 @@ public: +@@ -397,6 +398,8 @@ public: "Save terminal contents to file at exit", nullptr }, { "reverse", 0, 0, G_OPTION_ARG_NONE, &reverse, "Reverse foreground/background colors", nullptr }, @@ -654,7 +654,7 @@ index fd80760a93c1..d97e6d079b8a 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, -@@ -1873,6 +1876,7 @@ vteapp_window_constructed(GObject *object) +@@ -1845,6 +1848,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); diff --git a/vte291.spec b/vte291.spec index 85f1363..e1e7e6c 100644 --- a/vte291.spec +++ b/vte291.spec @@ -1,7 +1,7 @@ %global apiver 2.91 Name: vte291 -Version: 0.51.3 +Version: 0.51.90 Release: 1%{?dist} Summary: Terminal emulator library @@ -98,6 +98,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Wed Mar 28 2018 Debarshi Ray - 0.51.90-1 +- Update to 0.51.90 + * Wed Mar 28 2018 Debarshi Ray - 0.51.3-1 - Update to 0.51.3 - Rebase downstream patches From 721bb12b9862a85219a2774c27516945a5a1e611 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Tue, 3 Apr 2018 10:34:09 +0200 Subject: [PATCH 007/164] Update to 0.52.0 --- .gitignore | 1 + sources | 2 +- vte291-command-notify-scroll-speed.patch | 82 ++++++++++++------------ vte291.spec | 7 +- 4 files changed, 48 insertions(+), 44 deletions(-) diff --git a/.gitignore b/.gitignore index 4ea5066..c08a63b 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,4 @@ /vte-0.50.2.tar.xz /vte-0.51.3.tar.xz /vte-0.51.90.tar.xz +/vte-0.52.0.tar.xz diff --git a/sources b/sources index 360b118..e908734 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.51.90.tar.xz) = 16cb22fe252f4708eaba21a2724b75b4e4f45079684607b245ab1be749d19945539e86474f15b132c3d4a6f23ef2e5d875b131b7279a68ac76e05b99b92ba4f9 +SHA512 (vte-0.52.0.tar.xz) = 2f8b1efc7c73c4e74070d3bfcb33e61672d6ed70a352eed2c43198f8c3ffb513f6ed98dcf822dbd55d31d914c7f9dc157b29f8e4781705ee2c9ddb0e43c6e5fa diff --git a/vte291-command-notify-scroll-speed.patch b/vte291-command-notify-scroll-speed.patch index 26e6958..dc2d84e 100644 --- a/vte291-command-notify-scroll-speed.patch +++ b/vte291-command-notify-scroll-speed.patch @@ -1,4 +1,4 @@ -From 6a934fc5a346acf3018e3b1a33524adae96924cd Mon Sep 17 00:00:00 2001 +From 8fe3bb76b90d0ba8a216f4f0c24af5c4f894c5e6 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 1/5] Add sequences and signals for desktop notification @@ -29,7 +29,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711059 9 files changed, 140 insertions(+), 1 deletion(-) diff --git a/src/caps-list.hh b/src/caps-list.hh -index cc75191638c6..0336a9dee525 100644 +index 0528d7bcbcc2..8cc58b896f2b 100644 --- a/src/caps-list.hh +++ b/src/caps-list.hh @@ -248,6 +248,8 @@ static const vte_matcher_entry_t entries[] = { @@ -62,10 +62,10 @@ index 1e4d0c1b6476..3385b4759713 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index 02c670a7b5d3..fbca04f22ff4 100644 +index bc7ff146f59b..40b9785de5fb 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -8704,6 +8704,9 @@ VteTerminalPrivate::~VteTerminalPrivate() +@@ -8664,6 +8664,9 @@ VteTerminalPrivate::~VteTerminalPrivate() remove_update_timeout(this); @@ -75,7 +75,7 @@ index 02c670a7b5d3..fbca04f22ff4 100644 /* discard title updates */ g_free(m_window_title); g_free(m_window_title_changed); -@@ -10975,6 +10978,15 @@ VteTerminalPrivate::emit_pending_signals() +@@ -10929,6 +10932,15 @@ VteTerminalPrivate::emit_pending_signals() emit_adjustment_changed(); @@ -108,10 +108,10 @@ index 4e2896cf1aaf..f288f9e0f49a 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index bacfa0121b14..d695c1f61ecd 100644 +index 516e042526cd..83ca17961abf 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -702,6 +702,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -709,6 +709,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->child_exited = NULL; klass->encoding_changed = NULL; klass->char_size_changed = NULL; @@ -119,7 +119,7 @@ index bacfa0121b14..d695c1f61ecd 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -777,6 +778,26 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -784,6 +785,26 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 1, G_TYPE_INT); @@ -159,10 +159,10 @@ index c49754ef38ee..126d29326f11 100644 LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index fe63e76c2038..ecd9889be17c 100644 +index ec434667281c..193be6374070 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -635,6 +635,11 @@ public: +@@ -630,6 +630,11 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -175,10 +175,10 @@ index fe63e76c2038..ecd9889be17c 100644 char* m_window_title; char* m_window_title_changed; diff --git a/src/vteseq-list.hh b/src/vteseq-list.hh -index 1dda44862fb2..3781e7ac36b6 100644 +index af9fc893ef5a..7f97be94a184 100644 --- a/src/vteseq-list.hh +++ b/src/vteseq-list.hh -@@ -120,6 +120,7 @@ SEQUENCE_HANDLER(select_character_protection) +@@ -121,6 +121,7 @@ SEQUENCE_HANDLER(select_character_protection) SEQUENCE_HANDLER(select_locator_events) SEQUENCE_HANDLER(selective_erase_in_display) SEQUENCE_HANDLER(selective_erase_in_line) @@ -187,10 +187,10 @@ index 1dda44862fb2..3781e7ac36b6 100644 SEQUENCE_HANDLER(send_secondary_device_attributes) SEQUENCE_HANDLER(send_tertiary_device_attributes) diff --git a/src/vteseq.cc b/src/vteseq.cc -index fd3227fc817a..bd3a04671e14 100644 +index 218bedf43da9..235e8d2b7426 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -2112,6 +2112,98 @@ VteTerminalPrivate::seq_return_terminal_id(vte::parser::Params const& params) +@@ -2200,6 +2200,98 @@ VteTerminalPrivate::seq_return_terminal_id(vte::parser::Params const& params) seq_send_primary_device_attributes(params); } @@ -290,10 +290,10 @@ index fd3227fc817a..bd3a04671e14 100644 void VteTerminalPrivate::seq_send_secondary_device_attributes(vte::parser::Params const& params) -- -2.14.3 +2.16.2 -From 1f18bef96b7cd440e0be09e98ca705d09c9f1b53 Mon Sep 17 00:00:00 2001 +From b889392fd5b2a697079709e6b95f06b87a463681 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 Subject: [PATCH 2/5] vte.sh: Emit OSC 777 from PROMPT_COMMAND @@ -321,10 +321,10 @@ index 2d211caa2f17..1c0543bd9d26 100644 case "$TERM" in -- -2.14.3 +2.16.2 -From 9c54455d461be00454978eb368994e7eda766c15 Mon Sep 17 00:00:00 2001 +From 2d0b14d5b261d5366075ca9d6ae780844926f35e Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 Subject: [PATCH 3/5] Test the notification-received signal @@ -360,10 +360,10 @@ index 8663d63c5445..4c5d9a2b3bad 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 008faccc1485..2b3bc12139ed 100644 +index d4240640fc82..a581c60a839e 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1581,6 +1581,14 @@ window_window_title_changed_cb(VteTerminal* terminal, +@@ -1588,6 +1588,14 @@ window_window_title_changed_cb(VteTerminal* terminal, vte_terminal_get_window_title(window->terminal)); } @@ -378,7 +378,7 @@ index 008faccc1485..2b3bc12139ed 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -1808,6 +1816,8 @@ vteapp_window_constructed(GObject *object) +@@ -1815,6 +1823,8 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); @@ -388,10 +388,10 @@ index 008faccc1485..2b3bc12139ed 100644 if (options.no_double_buffer) gtk_widget_set_double_buffered(GTK_WIDGET(window->terminal), false); -- -2.14.3 +2.16.2 -From 55bd670334082db1d579c51f4b233c7d5eabf316 Mon Sep 17 00:00:00 2001 +From 450ef6bea0e195e2f88b4d4fea2d4c507eca61ae Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 Subject: [PATCH 4/5] Add a property to configure the scroll speed @@ -422,10 +422,10 @@ index 6e37f0bad223..025986ee2146 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index fbca04f22ff4..e7644a90fd3d 100644 +index 40b9785de5fb..b83d26d4feb4 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10219,6 +10219,7 @@ void +@@ -10174,6 +10174,7 @@ void VteTerminalPrivate::widget_scroll(GdkEventScroll *event) { gdouble delta_x, delta_y; @@ -433,7 +433,7 @@ index fbca04f22ff4..e7644a90fd3d 100644 gdouble v; gint cnt, i; int button; -@@ -10272,7 +10273,13 @@ VteTerminalPrivate::widget_scroll(GdkEventScroll *event) +@@ -10227,7 +10228,13 @@ VteTerminalPrivate::widget_scroll(GdkEventScroll *event) return; } @@ -448,7 +448,7 @@ index fbca04f22ff4..e7644a90fd3d 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -10533,6 +10540,16 @@ VteTerminalPrivate::decscusr_cursor_shape() +@@ -10488,6 +10495,16 @@ VteTerminalPrivate::decscusr_cursor_shape() } } @@ -481,10 +481,10 @@ index f288f9e0f49a..7d09c761aded 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index d695c1f61ecd..677514d54b64 100644 +index 83ca17961abf..921457e7f62f 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -490,6 +490,9 @@ vte_terminal_get_property (GObject *object, +@@ -491,6 +491,9 @@ vte_terminal_get_property (GObject *object, case PROP_REWRAP_ON_RESIZE: g_value_set_boolean (value, vte_terminal_get_rewrap_on_resize (terminal)); break; @@ -494,7 +494,7 @@ index d695c1f61ecd..677514d54b64 100644 case PROP_SCROLLBACK_LINES: g_value_set_uint (value, vte_terminal_get_scrollback_lines(terminal)); break; -@@ -591,6 +594,9 @@ vte_terminal_set_property (GObject *object, +@@ -592,6 +595,9 @@ vte_terminal_set_property (GObject *object, case PROP_REWRAP_ON_RESIZE: vte_terminal_set_rewrap_on_resize (terminal, g_value_get_boolean (value)); break; @@ -504,7 +504,7 @@ index d695c1f61ecd..677514d54b64 100644 case PROP_SCROLLBACK_LINES: vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); break; -@@ -1533,6 +1539,21 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1540,6 +1546,21 @@ vte_terminal_class_init(VteTerminalClass *klass) TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -526,7 +526,7 @@ index d695c1f61ecd..677514d54b64 100644 /** * VteTerminal:scrollback-lines: * -@@ -4060,6 +4081,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) +@@ -4067,6 +4088,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) return IMPL(terminal)->m_row_count; } @@ -570,7 +570,7 @@ index 126d29326f11..b2c9edfa8246 100644 PROP_SCROLL_ON_KEYSTROKE, PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index ecd9889be17c..7f21750cf828 100644 +index 193be6374070..d2db275b3e36 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -498,6 +498,7 @@ public: @@ -581,7 +581,7 @@ index ecd9889be17c..7f21750cf828 100644 vte::grid::row_t m_scrollback_lines; /* Restricted scrolling */ -@@ -1269,6 +1270,7 @@ public: +@@ -1264,6 +1265,7 @@ public: bool set_mouse_autohide(bool autohide); bool set_pty(VtePty *pty); bool set_rewrap_on_resize(bool rewrap); @@ -590,10 +590,10 @@ index ecd9889be17c..7f21750cf828 100644 bool set_scroll_on_keystroke(bool scroll); bool set_scroll_on_output(bool scroll); -- -2.14.3 +2.16.2 -From 7d8cf7fc9c270e582277abca75c97265d2ff561e Mon Sep 17 00:00:00 2001 +From 65f2c1766bdc252d3cb925d2d676c40a368498b5 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 Subject: [PATCH 5/5] Test the scroll-speed property @@ -634,10 +634,10 @@ index 4c5d9a2b3bad..3b7310679239 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 2b3bc12139ed..4267637b8a3f 100644 +index a581c60a839e..3faa2d76dd10 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -89,6 +89,7 @@ public: +@@ -91,6 +91,7 @@ public: int verbosity{0}; double cell_height_scale{1.0}; double cell_width_scale{1.0}; @@ -645,7 +645,7 @@ index 2b3bc12139ed..4267637b8a3f 100644 VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM}; VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK}; VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS}; -@@ -397,6 +398,8 @@ public: +@@ -401,6 +402,8 @@ public: "Save terminal contents to file at exit", nullptr }, { "reverse", 0, 0, G_OPTION_ARG_NONE, &reverse, "Reverse foreground/background colors", nullptr }, @@ -654,7 +654,7 @@ index 2b3bc12139ed..4267637b8a3f 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, -@@ -1845,6 +1848,7 @@ vteapp_window_constructed(GObject *object) +@@ -1853,6 +1856,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); @@ -663,5 +663,5 @@ index 2b3bc12139ed..4267637b8a3f 100644 vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); -- -2.14.3 +2.16.2 diff --git a/vte291.spec b/vte291.spec index e1e7e6c..57fd3c8 100644 --- a/vte291.spec +++ b/vte291.spec @@ -1,13 +1,13 @@ %global apiver 2.91 Name: vte291 -Version: 0.51.90 +Version: 0.52.0 Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ URL: http://www.gnome.org/ -Source0: http://download.gnome.org/sources/vte/0.51/vte-%{version}.tar.xz +Source0: http://download.gnome.org/sources/vte/0.52/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 @@ -98,6 +98,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Tue Apr 03 2018 Kalev Lember - 0.52.0-1 +- Update to 0.52.0 + * Wed Mar 28 2018 Debarshi Ray - 0.51.90-1 - Update to 0.51.90 From cb74355b39b5895f13ed0d2d1ffe820cabb38d5d Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Tue, 3 Apr 2018 10:35:55 +0200 Subject: [PATCH 008/164] Remove ldconfig scriptlets --- vte291.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/vte291.spec b/vte291.spec index 57fd3c8..46e8722 100644 --- a/vte291.spec +++ b/vte291.spec @@ -77,8 +77,6 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %find_lang vte-%{apiver} -%ldconfig_scriptlets - %files -f vte-%{apiver}.lang %license COPYING %doc NEWS README @@ -100,6 +98,7 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %changelog * Tue Apr 03 2018 Kalev Lember - 0.52.0-1 - Update to 0.52.0 +- Remove ldconfig scriptlets * Wed Mar 28 2018 Debarshi Ray - 0.51.90-1 - Update to 0.51.90 From 9cbc53f85711ce4f34e7ce0aae7e8baf0553012b Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Tue, 10 Apr 2018 00:29:37 +0200 Subject: [PATCH 009/164] Update to 0.52.1 --- .gitignore | 1 + sources | 2 +- vte291.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index c08a63b..a5a569d 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,4 @@ /vte-0.51.3.tar.xz /vte-0.51.90.tar.xz /vte-0.52.0.tar.xz +/vte-0.52.1.tar.xz diff --git a/sources b/sources index e908734..a351e5e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.52.0.tar.xz) = 2f8b1efc7c73c4e74070d3bfcb33e61672d6ed70a352eed2c43198f8c3ffb513f6ed98dcf822dbd55d31d914c7f9dc157b29f8e4781705ee2c9ddb0e43c6e5fa +SHA512 (vte-0.52.1.tar.xz) = a1de54950cdcac9afccc1b13bd71b65ad1d6f93055d0b005b4a15b6f84f55029848cf8f2f9155cf3e6edc69fe973529fd4313f59af74fc1035aebd4c0b85655f diff --git a/vte291.spec b/vte291.spec index 46e8722..727e80f 100644 --- a/vte291.spec +++ b/vte291.spec @@ -1,7 +1,7 @@ %global apiver 2.91 Name: vte291 -Version: 0.52.0 +Version: 0.52.1 Release: 1%{?dist} Summary: Terminal emulator library @@ -96,6 +96,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Apr 09 2018 Kalev Lember - 0.52.1-1 +- Update to 0.52.1 + * Tue Apr 03 2018 Kalev Lember - 0.52.0-1 - Update to 0.52.0 - Remove ldconfig scriptlets From 31a8d1b3ad4c16edc50b605f7240888de69790ac Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Mon, 21 May 2018 20:41:40 +0200 Subject: [PATCH 010/164] Update to 0.52.2 --- .gitignore | 1 + sources | 2 +- vte291.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index a5a569d..e129ff1 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,4 @@ /vte-0.51.90.tar.xz /vte-0.52.0.tar.xz /vte-0.52.1.tar.xz +/vte-0.52.2.tar.xz diff --git a/sources b/sources index a351e5e..5bbe3bf 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.52.1.tar.xz) = a1de54950cdcac9afccc1b13bd71b65ad1d6f93055d0b005b4a15b6f84f55029848cf8f2f9155cf3e6edc69fe973529fd4313f59af74fc1035aebd4c0b85655f +SHA512 (vte-0.52.2.tar.xz) = fc760973efa1eb1f100447cdf0d9b944b74f5ba7e3ae1ae1d0acadaebd540fff19f7edc741685ba944147c151223942a80f8f3dad3602469f1aff5c44f6cc846 diff --git a/vte291.spec b/vte291.spec index 727e80f..69a7286 100644 --- a/vte291.spec +++ b/vte291.spec @@ -1,7 +1,7 @@ %global apiver 2.91 Name: vte291 -Version: 0.52.1 +Version: 0.52.2 Release: 1%{?dist} Summary: Terminal emulator library @@ -96,6 +96,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon May 21 2018 Kalev Lember - 0.52.2-1 +- Update to 0.52.2 + * Mon Apr 09 2018 Kalev Lember - 0.52.1-1 - Update to 0.52.1 From 12738e99decee27cdb2e486353ecc36dac9369e0 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 4 Jun 2018 11:27:19 +0200 Subject: [PATCH 011/164] Update to 0.53.0 --- vte291-command-notify-scroll-speed.patch | 309 +++++++++-------------- vte291.spec | 7 +- 2 files changed, 119 insertions(+), 197 deletions(-) diff --git a/vte291-command-notify-scroll-speed.patch b/vte291-command-notify-scroll-speed.patch index dc2d84e..a646ee8 100644 --- a/vte291-command-notify-scroll-speed.patch +++ b/vte291-command-notify-scroll-speed.patch @@ -1,4 +1,4 @@ -From 8fe3bb76b90d0ba8a216f4f0c24af5c4f894c5e6 Mon Sep 17 00:00:00 2001 +From def49e6968af9779c31bb363ee67b57dd4d23bc6 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 1/5] Add sequences and signals for desktop notification @@ -17,39 +17,15 @@ https://phab.enlightenment.org/T1765 https://bugzilla.gnome.org/show_bug.cgi?id=711059 --- - src/caps-list.hh | 4 +++ src/marshal.list | 1 + - src/vte.cc | 12 +++++++ - src/vte/vteterminal.h | 4 ++- - src/vtegtk.cc | 21 ++++++++++++ + src/vte.cc | 9 +++++++++ + src/vte/vteterminal.h | 4 +++- + src/vtegtk.cc | 21 +++++++++++++++++++++ src/vtegtk.hh | 1 + - src/vteinternal.hh | 5 +++ - src/vteseq-list.hh | 1 + - src/vteseq.cc | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++ - 9 files changed, 140 insertions(+), 1 deletion(-) + src/vteinternal.hh | 8 ++++++++ + src/vteseq.cc | 33 ++++++++++++++++++++++++++++++++- + 7 files changed, 75 insertions(+), 2 deletions(-) -diff --git a/src/caps-list.hh b/src/caps-list.hh -index 0528d7bcbcc2..8cc58b896f2b 100644 ---- a/src/caps-list.hh -+++ b/src/caps-list.hh -@@ -248,6 +248,8 @@ static const vte_matcher_entry_t entries[] = { - ENTRY(OSC "119" BEL, reset_highlight_foreground_color), - ENTRY(OSC "133;%s" BEL, iterm2_133), - ENTRY(OSC "777;%s" BEL, urxvt_777), -+ ENTRY(OSC "777;%s;%s;%s" BEL, send_notification), -+ ENTRY(OSC "777;%s;%s" BEL, send_notification), - ENTRY(OSC "1337;%s" BEL, iterm2_1337), - - /* Set text parameters, ST_terminated versions. */ -@@ -287,6 +289,8 @@ static const vte_matcher_entry_t entries[] = { - ENTRY(OSC "119" ST, reset_highlight_foreground_color), - ENTRY(OSC "133;%s" ST, iterm2_133), - ENTRY(OSC "777;%s" ST, urxvt_777), -+ ENTRY(OSC "777;%s;%s;%s" ST, send_notification), -+ ENTRY(OSC "777;%s;%s" ST, send_notification), - ENTRY(OSC "1337;%s" ST, iterm2_1337), - - /* These may be bogus, I can't find docs for them anywhere (#104154). */ diff --git a/src/marshal.list b/src/marshal.list index 1e4d0c1b6476..3385b4759713 100644 --- a/src/marshal.list @@ -62,20 +38,10 @@ index 1e4d0c1b6476..3385b4759713 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index bc7ff146f59b..40b9785de5fb 100644 +index 732959d1e085..c7c7e98c2c43 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -8664,6 +8664,9 @@ VteTerminalPrivate::~VteTerminalPrivate() - - remove_update_timeout(this); - -+ g_free (m_notification_summary); -+ g_free (m_notification_body); -+ - /* discard title updates */ - g_free(m_window_title); - g_free(m_window_title_changed); -@@ -10929,6 +10932,15 @@ VteTerminalPrivate::emit_pending_signals() +@@ -10762,6 +10762,15 @@ VteTerminalPrivate::emit_pending_signals() emit_adjustment_changed(); @@ -83,16 +49,16 @@ index bc7ff146f59b..40b9785de5fb 100644 + _vte_debug_print (VTE_DEBUG_SIGNALS, + "Emitting `notification-received'.\n"); + g_signal_emit(object, signals[SIGNAL_NOTIFICATION_RECEIVED], 0, -+ m_notification_summary, -+ m_notification_body); ++ m_notification_summary.c_str(), ++ m_notification_body.c_str()); + m_notification_received = FALSE; + } + if (m_window_title_changed) { - really_changed = (g_strcmp0(m_window_title, m_window_title_changed) != 0); - g_free (m_window_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 4e2896cf1aaf..f288f9e0f49a 100644 +index 8c493bc1b223..fac2d26a50e4 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -104,8 +104,10 @@ struct _VteTerminalClass { @@ -108,10 +74,10 @@ index 4e2896cf1aaf..f288f9e0f49a 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 516e042526cd..83ca17961abf 100644 +index 4d74b21accf8..9a3bc1128d9e 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -709,6 +709,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -700,6 +700,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->child_exited = NULL; klass->encoding_changed = NULL; klass->char_size_changed = NULL; @@ -119,7 +85,7 @@ index 516e042526cd..83ca17961abf 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -784,6 +785,26 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -775,6 +776,26 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 1, G_TYPE_INT); @@ -159,141 +125,94 @@ index c49754ef38ee..126d29326f11 100644 LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index ec434667281c..193be6374070 100644 +index 737678a06b09..78bacbcd1b8b 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -630,6 +630,11 @@ public: +@@ -572,6 +572,11 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; -+ /* desktop notification */ -+ gboolean m_notification_received; -+ gchar *m_notification_summary; -+ gchar *m_notification_body; ++ /* desktop notification */ ++ gboolean m_notification_received; ++ std::string m_notification_summary; ++ std::string m_notification_body; + - /* window name changes */ - char* m_window_title; - char* m_window_title_changed; -diff --git a/src/vteseq-list.hh b/src/vteseq-list.hh -index af9fc893ef5a..7f97be94a184 100644 ---- a/src/vteseq-list.hh -+++ b/src/vteseq-list.hh -@@ -121,6 +121,7 @@ SEQUENCE_HANDLER(select_character_protection) - SEQUENCE_HANDLER(select_locator_events) - SEQUENCE_HANDLER(selective_erase_in_display) - SEQUENCE_HANDLER(selective_erase_in_line) -+SEQUENCE_HANDLER(send_notification) - SEQUENCE_HANDLER(send_primary_device_attributes) - SEQUENCE_HANDLER(send_secondary_device_attributes) - SEQUENCE_HANDLER(send_tertiary_device_attributes) + std::string m_window_title{}; + std::string m_current_directory_uri{}; + std::string m_current_file_uri{}; +@@ -1315,6 +1320,9 @@ public: + int osc) noexcept; + + /* OSC handlers */ ++ void handle_urxvt_extension(vte::parser::Sequence const& seq, ++ vte::parser::StringTokeniser::const_iterator& token, ++ vte::parser::StringTokeniser::const_iterator const& endtoken) noexcept; + void set_color(vte::parser::Sequence const& seq, + vte::parser::StringTokeniser::const_iterator& token, + vte::parser::StringTokeniser::const_iterator const& endtoken, diff --git a/src/vteseq.cc b/src/vteseq.cc -index 218bedf43da9..235e8d2b7426 100644 +index ba97480ce120..ddf1dcca84f6 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -2200,6 +2200,98 @@ VteTerminalPrivate::seq_return_terminal_id(vte::parser::Params const& params) - seq_send_primary_device_attributes(params); +@@ -1339,6 +1339,34 @@ VteTerminalPrivate::delete_lines(vte::grid::row_t param) + m_text_deleted_flag = TRUE; } +void -+VteTerminalPrivate::seq_send_notification (vte::parser::Params const& params) ++VteTerminalPrivate::handle_urxvt_extension(vte::parser::Sequence const& seq, ++ vte::parser::StringTokeniser::const_iterator& token, ++ vte::parser::StringTokeniser::const_iterator const& endtoken) noexcept +{ -+ GValue *value; -+ const char *end; -+ char *option = NULL; -+ char *str = NULL; -+ char *p, *validated; ++ if (token == endtoken) { ++ return; ++ } + -+ g_clear_pointer (&m_notification_summary, g_free); -+ g_clear_pointer (&m_notification_body, g_free); ++ if (*token == "notify") { ++ ++token; + -+ value = params.value_at_unchecked (0); -+ if (value == NULL) { -+ goto out; -+ } ++ if (token == endtoken) ++ return; + -+ if (G_VALUE_HOLDS_STRING (value)) { -+ option = g_value_dup_string (value); -+ } else if (G_VALUE_HOLDS_POINTER (value)) { -+ option = params.ucs4_to_utf8 ((gunichar const*)g_value_get_pointer (value)); -+ } else { -+ goto out; -+ } ++ m_notification_summary = *token; ++ m_notification_body.clear(); ++ m_notification_received = TRUE; ++ ++token; + -+ if (g_strcmp0 (option, "notify") != 0) { -+ goto out; -+ } ++ if (token == endtoken) ++ return; + -+ value = params.value_at_unchecked (1); -+ if (value == NULL) { -+ goto out; -+ } -+ -+ if (G_VALUE_HOLDS_STRING (value)) { -+ str = g_value_dup_string (value); -+ } else if (G_VALUE_HOLDS_POINTER (value)) { -+ str = params.ucs4_to_utf8 ((gunichar const*)g_value_get_pointer (value)); -+ } else { -+ goto out; -+ } -+ -+ g_utf8_validate (str, strlen (str), &end); -+ validated = g_strndup (str, end - str); -+ -+ /* No control characters allowed. */ -+ for (p = validated; *p != '\0'; p++) { -+ if ((*p & 0x1f) == *p) { -+ *p = ' '; -+ } -+ } -+ -+ m_notification_summary = validated; -+ validated = NULL; -+ g_free (str); -+ -+ m_notification_received = TRUE; -+ if (params.size () == 2) { -+ goto out; -+ } -+ -+ value = params.value_at_unchecked (2); -+ if (value == NULL) { -+ goto out; -+ } -+ -+ if (G_VALUE_HOLDS_STRING (value)) { -+ str = g_value_dup_string (value); -+ } else if (G_VALUE_HOLDS_POINTER (value)) { -+ str = params.ucs4_to_utf8 ((gunichar const*)g_value_get_pointer (value)); -+ } else { -+ goto out; -+ } -+ -+ g_utf8_validate (str, strlen (str), &end); -+ validated = g_strndup (str, end - str); -+ -+ /* No control characters allowed. */ -+ for (p = validated; *p != '\0'; p++) { -+ if ((*p & 0x1f) == *p) { -+ *p = ' '; -+ } -+ } -+ -+ m_notification_body = validated; -+ validated = NULL; -+ g_free (str); -+ -+ out: -+ g_free (option); ++ m_notification_body = *token; ++ return; ++ } +} + - /* Send secondary device attributes. */ - void - VteTerminalPrivate::seq_send_secondary_device_attributes(vte::parser::Params const& params) + bool + VteTerminalPrivate::get_osc_color_index(int osc, + int value, +@@ -6342,6 +6370,10 @@ VteTerminalPrivate::OSC(vte::parser::Sequence const& seq) + reset_color(VTE_HIGHLIGHT_FG, VTE_COLOR_SOURCE_ESCAPE); + break; + ++ case VTE_OSC_URXVT_EXTENSION: ++ handle_urxvt_extension(seq, it, cend); ++ break; ++ + case VTE_OSC_XTERM_SET_ICON_TITLE: + case VTE_OSC_XTERM_SET_XPROPERTY: + case VTE_OSC_XTERM_SET_COLOR_MOUSE_CURSOR_FG: +@@ -6382,7 +6414,6 @@ VteTerminalPrivate::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: +- case VTE_OSC_URXVT_EXTENSION: + case VTE_OSC_YF_RQGWR: + default: + break; -- -2.16.2 +2.14.3 -From b889392fd5b2a697079709e6b95f06b87a463681 Mon Sep 17 00:00:00 2001 +From 288021fb19079967ef1f4489cdaa9933a93bb1a2 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 Subject: [PATCH 2/5] vte.sh: Emit OSC 777 from PROMPT_COMMAND @@ -304,7 +223,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711059 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/vte.sh b/src/vte.sh -index 2d211caa2f17..1c0543bd9d26 100644 +index 5fb16996dd93..2a328de27cbd 100644 --- a/src/vte.sh +++ b/src/vte.sh @@ -50,9 +50,11 @@ __vte_osc7 () { @@ -315,16 +234,16 @@ index 2d211caa2f17..1c0543bd9d26 100644 + command="${command//;/ }" local pwd='~' [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} -- printf "\033]0;%s@%s:%s\007%s" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" -+ printf "\033]777;notify;Command completed;%s\007\033]0;%s@%s:%s\007%s" "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" +- printf "\u009D0;%s@%s:%s\u009C%s" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" ++ printf "\u009D777;notify;Command completed;%s\u009C\u009D0;%s@%s:%s\u009C%s" "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" } case "$TERM" in -- -2.16.2 +2.14.3 -From 2d0b14d5b261d5366075ca9d6ae780844926f35e Mon Sep 17 00:00:00 2001 +From 30b066b9ff43f2e12540e9d47a1cf90ed4c5b436 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 Subject: [PATCH 3/5] Test the notification-received signal @@ -360,10 +279,10 @@ index 8663d63c5445..4c5d9a2b3bad 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index d4240640fc82..a581c60a839e 100644 +index eb2afc215998..38ae1e5ccc9e 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1588,6 +1588,14 @@ window_window_title_changed_cb(VteTerminal* terminal, +@@ -1621,6 +1621,14 @@ window_window_title_changed_cb(VteTerminal* terminal, vte_terminal_get_window_title(window->terminal)); } @@ -378,7 +297,7 @@ index d4240640fc82..a581c60a839e 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -1815,6 +1823,8 @@ vteapp_window_constructed(GObject *object) +@@ -1848,6 +1856,8 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); @@ -388,10 +307,10 @@ index d4240640fc82..a581c60a839e 100644 if (options.no_double_buffer) gtk_widget_set_double_buffered(GTK_WIDGET(window->terminal), false); -- -2.16.2 +2.14.3 -From 450ef6bea0e195e2f88b4d4fea2d4c507eca61ae Mon Sep 17 00:00:00 2001 +From d2ae1e7e5972076ed94a7569dd82987feec0c464 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 Subject: [PATCH 4/5] Add a property to configure the scroll speed @@ -410,7 +329,7 @@ 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 6e37f0bad223..025986ee2146 100644 +index e76ac3a8f923..433d721b7400 100644 --- a/doc/reference/vte-sections.txt +++ b/doc/reference/vte-sections.txt @@ -55,6 +55,7 @@ vte_terminal_get_cursor_blink_mode @@ -422,10 +341,10 @@ index 6e37f0bad223..025986ee2146 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index 40b9785de5fb..b83d26d4feb4 100644 +index c7c7e98c2c43..ba7c1fee2eec 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10174,6 +10174,7 @@ void +@@ -10021,6 +10021,7 @@ void VteTerminalPrivate::widget_scroll(GdkEventScroll *event) { gdouble delta_x, delta_y; @@ -433,7 +352,7 @@ index 40b9785de5fb..b83d26d4feb4 100644 gdouble v; gint cnt, i; int button; -@@ -10227,7 +10228,13 @@ VteTerminalPrivate::widget_scroll(GdkEventScroll *event) +@@ -10074,7 +10075,13 @@ VteTerminalPrivate::widget_scroll(GdkEventScroll *event) return; } @@ -448,7 +367,7 @@ index 40b9785de5fb..b83d26d4feb4 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -10488,6 +10495,16 @@ VteTerminalPrivate::decscusr_cursor_shape() +@@ -10335,6 +10342,16 @@ VteTerminalPrivate::decscusr_cursor_shape() } } @@ -466,7 +385,7 @@ index 40b9785de5fb..b83d26d4feb4 100644 VteTerminalPrivate::set_scrollback_lines(long lines) { diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index f288f9e0f49a..7d09c761aded 100644 +index fac2d26a50e4..c4834bfdf310 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -296,6 +296,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, @@ -481,10 +400,10 @@ index f288f9e0f49a..7d09c761aded 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 83ca17961abf..921457e7f62f 100644 +index 9a3bc1128d9e..77038cd14407 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -491,6 +491,9 @@ vte_terminal_get_property (GObject *object, +@@ -483,6 +483,9 @@ vte_terminal_get_property (GObject *object, case PROP_REWRAP_ON_RESIZE: g_value_set_boolean (value, vte_terminal_get_rewrap_on_resize (terminal)); break; @@ -494,7 +413,7 @@ index 83ca17961abf..921457e7f62f 100644 case PROP_SCROLLBACK_LINES: g_value_set_uint (value, vte_terminal_get_scrollback_lines(terminal)); break; -@@ -592,6 +595,9 @@ vte_terminal_set_property (GObject *object, +@@ -584,6 +587,9 @@ vte_terminal_set_property (GObject *object, case PROP_REWRAP_ON_RESIZE: vte_terminal_set_rewrap_on_resize (terminal, g_value_get_boolean (value)); break; @@ -504,7 +423,7 @@ index 83ca17961abf..921457e7f62f 100644 case PROP_SCROLLBACK_LINES: vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); break; -@@ -1540,6 +1546,21 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1531,6 +1537,21 @@ vte_terminal_class_init(VteTerminalClass *klass) TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -526,7 +445,7 @@ index 83ca17961abf..921457e7f62f 100644 /** * VteTerminal:scrollback-lines: * -@@ -4067,6 +4088,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) +@@ -4064,6 +4085,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) return IMPL(terminal)->m_row_count; } @@ -570,18 +489,18 @@ index 126d29326f11..b2c9edfa8246 100644 PROP_SCROLL_ON_KEYSTROKE, PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 193be6374070..d2db275b3e36 100644 +index 78bacbcd1b8b..b6b26360f3c7 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -498,6 +498,7 @@ public: +@@ -445,6 +445,7 @@ public: + /* Scrolling options. */ gboolean m_scroll_on_output; gboolean m_scroll_on_keystroke; - gboolean m_alternate_screen_scroll; + guint m_scroll_speed; vte::grid::row_t m_scrollback_lines; /* Restricted scrolling */ -@@ -1264,6 +1265,7 @@ public: +@@ -1197,6 +1198,7 @@ public: bool set_mouse_autohide(bool autohide); bool set_pty(VtePty *pty); bool set_rewrap_on_resize(bool rewrap); @@ -590,10 +509,10 @@ index 193be6374070..d2db275b3e36 100644 bool set_scroll_on_keystroke(bool scroll); bool set_scroll_on_output(bool scroll); -- -2.16.2 +2.14.3 -From 65f2c1766bdc252d3cb925d2d676c40a368498b5 Mon Sep 17 00:00:00 2001 +From 872857d91a15ead2319e6da1afc8690a4952950f Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 Subject: [PATCH 5/5] Test the scroll-speed property @@ -634,10 +553,10 @@ index 4c5d9a2b3bad..3b7310679239 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 a581c60a839e..3faa2d76dd10 100644 +index 38ae1e5ccc9e..a3daf28070cc 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -91,6 +91,7 @@ public: +@@ -92,6 +92,7 @@ public: int verbosity{0}; double cell_height_scale{1.0}; double cell_width_scale{1.0}; @@ -645,7 +564,7 @@ index a581c60a839e..3faa2d76dd10 100644 VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM}; VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK}; VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS}; -@@ -401,6 +402,8 @@ public: +@@ -404,6 +405,8 @@ public: "Save terminal contents to file at exit", nullptr }, { "reverse", 0, 0, G_OPTION_ARG_NONE, &reverse, "Reverse foreground/background colors", nullptr }, @@ -654,7 +573,7 @@ index a581c60a839e..3faa2d76dd10 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, -@@ -1853,6 +1856,7 @@ vteapp_window_constructed(GObject *object) +@@ -1886,6 +1889,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); @@ -663,5 +582,5 @@ index a581c60a839e..3faa2d76dd10 100644 vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); -- -2.16.2 +2.14.3 diff --git a/vte291.spec b/vte291.spec index 69a7286..1c3a295 100644 --- a/vte291.spec +++ b/vte291.spec @@ -1,13 +1,13 @@ %global apiver 2.91 Name: vte291 -Version: 0.52.2 +Version: 0.53.0 Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ URL: http://www.gnome.org/ -Source0: http://download.gnome.org/sources/vte/0.52/vte-%{version}.tar.xz +Source0: http://download.gnome.org/sources/vte/0.53/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 @@ -96,6 +96,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Jun 04 2018 Debarshi Ray - 0.53.0-1 +- Update to 0.53.0 + * Mon May 21 2018 Kalev Lember - 0.52.2-1 - Update to 0.52.2 From a0447fa16bb71a7914a4bd279f5ec61e3800abbb Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 4 Jun 2018 13:08:22 +0200 Subject: [PATCH 012/164] Upload the vte-0.53.0 tarball Thanks to Tomas Popela! --- .gitignore | 1 + sources | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index e129ff1..45d0121 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,4 @@ /vte-0.52.0.tar.xz /vte-0.52.1.tar.xz /vte-0.52.2.tar.xz +/vte-0.53.0.tar.xz diff --git a/sources b/sources index 5bbe3bf..cb77ee3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.52.2.tar.xz) = fc760973efa1eb1f100447cdf0d9b944b74f5ba7e3ae1ae1d0acadaebd540fff19f7edc741685ba944147c151223942a80f8f3dad3602469f1aff5c44f6cc846 +SHA512 (vte-0.53.0.tar.xz) = 693971c4f5ca731d4cd3b910b4583c5f795e985bcb7ee93134ccc5710928b3a10c535c25ddc38c3e58fe45fb2cf85de06059bf4e9ef59aaf731ed059ee5b6852 From 028e865a04351bbf54e33de3cb4ea79b1c1973a7 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Mon, 18 Jun 2018 19:03:07 +0200 Subject: [PATCH 013/164] Require systemd, not initscripts for the utmp group https://bugzilla.redhat.com/show_bug.cgi?id=1592403 --- vte291.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/vte291.spec b/vte291.spec index 1c3a295..5a646de 100644 --- a/vte291.spec +++ b/vte291.spec @@ -2,7 +2,7 @@ Name: vte291 Version: 0.53.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -22,8 +22,8 @@ BuildRequires: pkgconfig(libpcre2-8) BuildRequires: intltool BuildRequires: vala -# initscripts creates the utmp group -Requires: initscripts +# systemd creates the utmp group +Requires: systemd Requires: vte-profile Conflicts: gnome-terminal < 3.20.1-2 @@ -96,6 +96,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Jun 18 2018 Kalev Lember - 0.53.0-2 +- Require systemd, not initscripts for the utmp group (#1592403) + * Mon Jun 04 2018 Debarshi Ray - 0.53.0-1 - Update to 0.53.0 From 68bd26bac01b0ae93d6711d19e29d7b3970ea342 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Tue, 19 Jun 2018 18:31:42 +0200 Subject: [PATCH 014/164] Fix the build --- vte291-Fix-the-build-with-GCC-8.1.1.patch | 61 +++++++++++++++++++++++ vte291.spec | 7 ++- 2 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 vte291-Fix-the-build-with-GCC-8.1.1.patch diff --git a/vte291-Fix-the-build-with-GCC-8.1.1.patch b/vte291-Fix-the-build-with-GCC-8.1.1.patch new file mode 100644 index 0000000..9584bf1 --- /dev/null +++ b/vte291-Fix-the-build-with-GCC-8.1.1.patch @@ -0,0 +1,61 @@ +From a13b07d346b280592510e7ee6af05bc602197691 Mon Sep 17 00:00:00 2001 +From: Debarshi Ray +Date: Tue, 19 Jun 2018 18:28:25 +0200 +Subject: [PATCH] parser: Fix the build with GCC 8.1.1 + +Otherwise it fails with: + +vteseq.cc:47:1: error: declaration of + 'void vte::parser::Sequence::print() const' has a different + exception specifier + vte::parser::Sequence::print() const + ^~~ + In file included from vteinternal.hh:30, + from vteseq.cc:34: + parser-glue.hh:83:14: note: from previous declaration + 'void vte::parser::Sequence::print() const noexcept' + void print() const noexcept; + ^~~~~ + +... and so on. + +Fixes GNOME/vte#5: +https://gitlab.gnome.org/GNOME/vte/issues/5 +--- + src/vteseq.cc | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/vteseq.cc b/src/vteseq.cc +index ba97480ce120..98f71b87e98e 100644 +--- a/src/vteseq.cc ++++ b/src/vteseq.cc +@@ -44,7 +44,7 @@ + using namespace std::literals; + + void +-vte::parser::Sequence::print() const ++vte::parser::Sequence::print() const noexcept + { + #ifdef VTE_DEBUG + auto c = m_seq != nullptr ? terminator() : 0; +@@ -145,7 +145,7 @@ vte_unichar_strlen(gunichar const* c) + */ + char* + vte::parser::Sequence::ucs4_to_utf8(gunichar const* str, +- ssize_t len) const ++ ssize_t len) const noexcept + { + if (len < 0) + len = vte_unichar_strlen(str); +@@ -1406,7 +1406,7 @@ VteTerminalPrivate::set_color_index(vte::parser::Sequence const& seq, + int number, + int index, + int index_fallback, +- int osc) ++ int osc) noexcept + { + auto const str = *token; + +-- +2.14.4 + diff --git a/vte291.spec b/vte291.spec index 5a646de..90e6b73 100644 --- a/vte291.spec +++ b/vte291.spec @@ -9,6 +9,8 @@ License: LGPLv2+ URL: http://www.gnome.org/ Source0: http://download.gnome.org/sources/vte/0.53/vte-%{version}.tar.xz +Patch0: vte291-Fix-the-build-with-GCC-8.1.1.patch + # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 Patch100: vte291-command-notify-scroll-speed.patch @@ -57,6 +59,7 @@ emulator library. %prep %setup -q -n vte-%{version} +%patch0 -p1 -b .fix-the-build %patch100 -p1 -b .command-notify-scroll-speed %build @@ -78,8 +81,8 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %find_lang vte-%{apiver} %files -f vte-%{apiver}.lang -%license COPYING -%doc NEWS README +%license COPYING.GPL3 +%doc NEWS %{_libdir}/libvte-%{apiver}.so.0* %{_libdir}/girepository-1.0/ From 7c9f1606d9a45ae3029cf8aa769973af70eb5e04 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 14 Jul 2018 08:40:32 +0000 Subject: [PATCH 015/164] - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index 90e6b73..8231266 100644 --- a/vte291.spec +++ b/vte291.spec @@ -2,7 +2,7 @@ Name: vte291 Version: 0.53.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -99,6 +99,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Sat Jul 14 2018 Fedora Release Engineering - 0.53.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + * Mon Jun 18 2018 Kalev Lember - 0.53.0-2 - Require systemd, not initscripts for the utmp group (#1592403) From 741663f24a5d1c5a6c9167da65630cfa69254dcd Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 19 Jul 2018 11:45:26 +0200 Subject: [PATCH 016/164] Fix the build --- vte291.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/vte291.spec b/vte291.spec index 8231266..14e6fd5 100644 --- a/vte291.spec +++ b/vte291.spec @@ -15,6 +15,7 @@ Patch0: vte291-Fix-the-build-with-GCC-8.1.1.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 Patch100: vte291-command-notify-scroll-speed.patch +BuildRequires: gcc-c++ BuildRequires: gettext BuildRequires: pkgconfig(gnutls) BuildRequires: gobject-introspection-devel From 270dd15d5d61cde453b1cc3fb183964548858a1e Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 4 Oct 2018 18:49:34 +0200 Subject: [PATCH 017/164] Update to 0.53.92 --- .gitignore | 1 + sources | 2 +- vte291-Fix-the-build-with-GCC-8.1.1.patch | 69 ++++----------- vte291-command-notify-scroll-speed.patch | 102 +++++++++++----------- vte291.spec | 10 ++- 5 files changed, 77 insertions(+), 107 deletions(-) diff --git a/.gitignore b/.gitignore index 45d0121..ea91193 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,4 @@ /vte-0.52.1.tar.xz /vte-0.52.2.tar.xz /vte-0.53.0.tar.xz +/vte-0.53.92.tar.xz diff --git a/sources b/sources index cb77ee3..fe325a6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.53.0.tar.xz) = 693971c4f5ca731d4cd3b910b4583c5f795e985bcb7ee93134ccc5710928b3a10c535c25ddc38c3e58fe45fb2cf85de06059bf4e9ef59aaf731ed059ee5b6852 +SHA512 (vte-0.53.92.tar.xz) = 6d871b217afdfda4180147509bf35e19b6e9d2d42dce30596412c156987ff98d1b527d53e1b0f2abae4e4a695340a413133170d7c198251c039a60e3902d2dd6 diff --git a/vte291-Fix-the-build-with-GCC-8.1.1.patch b/vte291-Fix-the-build-with-GCC-8.1.1.patch index 9584bf1..6d37c79 100644 --- a/vte291-Fix-the-build-with-GCC-8.1.1.patch +++ b/vte291-Fix-the-build-with-GCC-8.1.1.patch @@ -1,61 +1,26 @@ -From a13b07d346b280592510e7ee6af05bc602197691 Mon Sep 17 00:00:00 2001 -From: Debarshi Ray -Date: Tue, 19 Jun 2018 18:28:25 +0200 -Subject: [PATCH] parser: Fix the build with GCC 8.1.1 +From 4e7fe2f2fc02cc008f67d80ef3cd9b41a8f17129 Mon Sep 17 00:00:00 2001 +From: Egmont Koblinger +Date: Thu, 27 Sep 2018 21:25:50 +0200 +Subject: [PATCH] widget: Add missing exception specification -Otherwise it fails with: - -vteseq.cc:47:1: error: declaration of - 'void vte::parser::Sequence::print() const' has a different - exception specifier - vte::parser::Sequence::print() const - ^~~ - In file included from vteinternal.hh:30, - from vteseq.cc:34: - parser-glue.hh:83:14: note: from previous declaration - 'void vte::parser::Sequence::print() const noexcept' - void print() const noexcept; - ^~~~~ - -... and so on. - -Fixes GNOME/vte#5: -https://gitlab.gnome.org/GNOME/vte/issues/5 +This fixes compiling with clang. --- - src/vteseq.cc | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) + src/widget.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/src/vteseq.cc b/src/vteseq.cc -index ba97480ce120..98f71b87e98e 100644 ---- a/src/vteseq.cc -+++ b/src/vteseq.cc -@@ -44,7 +44,7 @@ - using namespace std::literals; +diff --git a/src/widget.cc b/src/widget.cc +index 0f2e509e6c0c..deaf789de6e2 100644 +--- a/src/widget.cc ++++ b/src/widget.cc +@@ -327,7 +327,7 @@ Widget::size_allocate(GtkAllocation* allocation) noexcept + } void --vte::parser::Sequence::print() const -+vte::parser::Sequence::print() const noexcept +-Widget::unmap() ++Widget::unmap() noexcept { - #ifdef VTE_DEBUG - auto c = m_seq != nullptr ? terminator() : 0; -@@ -145,7 +145,7 @@ vte_unichar_strlen(gunichar const* c) - */ - char* - vte::parser::Sequence::ucs4_to_utf8(gunichar const* str, -- ssize_t len) const -+ ssize_t len) const noexcept - { - if (len < 0) - len = vte_unichar_strlen(str); -@@ -1406,7 +1406,7 @@ VteTerminalPrivate::set_color_index(vte::parser::Sequence const& seq, - int number, - int index, - int index_fallback, -- int osc) -+ int osc) noexcept - { - auto const str = *token; - + if (m_event_window) + gdk_window_hide(m_event_window); -- 2.14.4 diff --git a/vte291-command-notify-scroll-speed.patch b/vte291-command-notify-scroll-speed.patch index a646ee8..12d8ec0 100644 --- a/vte291-command-notify-scroll-speed.patch +++ b/vte291-command-notify-scroll-speed.patch @@ -1,4 +1,4 @@ -From def49e6968af9779c31bb363ee67b57dd4d23bc6 Mon Sep 17 00:00:00 2001 +From 2ed7d23e2ca2c71ecc34bd555166a91f3b07e070 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 1/5] Add sequences and signals for desktop notification @@ -38,10 +38,10 @@ index 1e4d0c1b6476..3385b4759713 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index 732959d1e085..c7c7e98c2c43 100644 +index 32323f468f59..b368cd5eeae2 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10762,6 +10762,15 @@ VteTerminalPrivate::emit_pending_signals() +@@ -10565,6 +10565,15 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); @@ -58,7 +58,7 @@ index 732959d1e085..c7c7e98c2c43 100644 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 8c493bc1b223..fac2d26a50e4 100644 +index 89539cc476b6..861a8c7402db 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -104,8 +104,10 @@ struct _VteTerminalClass { @@ -74,10 +74,10 @@ index 8c493bc1b223..fac2d26a50e4 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 4d74b21accf8..9a3bc1128d9e 100644 +index 89e3d7a89f3a..0c9773535d7a 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -700,6 +700,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -729,6 +729,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->child_exited = NULL; klass->encoding_changed = NULL; klass->char_size_changed = NULL; @@ -85,7 +85,7 @@ index 4d74b21accf8..9a3bc1128d9e 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -775,6 +776,26 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -804,6 +805,26 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 1, G_TYPE_INT); @@ -125,10 +125,10 @@ index c49754ef38ee..126d29326f11 100644 LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 737678a06b09..78bacbcd1b8b 100644 +index 785901b89d82..b2344e906244 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -572,6 +572,11 @@ public: +@@ -578,6 +578,11 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -140,7 +140,7 @@ index 737678a06b09..78bacbcd1b8b 100644 std::string m_window_title{}; std::string m_current_directory_uri{}; std::string m_current_file_uri{}; -@@ -1315,6 +1320,9 @@ public: +@@ -1322,6 +1327,9 @@ public: int osc) noexcept; /* OSC handlers */ @@ -151,17 +151,17 @@ index 737678a06b09..78bacbcd1b8b 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 ba97480ce120..ddf1dcca84f6 100644 +index f059757d86e0..bcd4614aada9 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1339,6 +1339,34 @@ VteTerminalPrivate::delete_lines(vte::grid::row_t param) +@@ -1341,6 +1341,34 @@ Terminal::delete_lines(vte::grid::row_t param) m_text_deleted_flag = TRUE; } +void -+VteTerminalPrivate::handle_urxvt_extension(vte::parser::Sequence const& seq, -+ vte::parser::StringTokeniser::const_iterator& token, -+ vte::parser::StringTokeniser::const_iterator const& endtoken) noexcept ++Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, ++ vte::parser::StringTokeniser::const_iterator& token, ++ vte::parser::StringTokeniser::const_iterator const& endtoken) noexcept +{ + if (token == endtoken) { + return; @@ -187,9 +187,9 @@ index ba97480ce120..ddf1dcca84f6 100644 +} + bool - VteTerminalPrivate::get_osc_color_index(int osc, + Terminal::get_osc_color_index(int osc, int value, -@@ -6342,6 +6370,10 @@ VteTerminalPrivate::OSC(vte::parser::Sequence const& seq) +@@ -6352,6 +6380,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) reset_color(VTE_HIGHLIGHT_FG, VTE_COLOR_SOURCE_ESCAPE); break; @@ -200,7 +200,7 @@ index ba97480ce120..ddf1dcca84f6 100644 case VTE_OSC_XTERM_SET_ICON_TITLE: case VTE_OSC_XTERM_SET_XPROPERTY: case VTE_OSC_XTERM_SET_COLOR_MOUSE_CURSOR_FG: -@@ -6382,7 +6414,6 @@ VteTerminalPrivate::OSC(vte::parser::Sequence const& seq) +@@ -6392,7 +6424,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: @@ -209,10 +209,10 @@ index ba97480ce120..ddf1dcca84f6 100644 default: break; -- -2.14.3 +2.14.4 -From 288021fb19079967ef1f4489cdaa9933a93bb1a2 Mon Sep 17 00:00:00 2001 +From af373aa1f1f117ff9e602b8693e00dfef7fb6ea6 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 Subject: [PATCH 2/5] vte.sh: Emit OSC 777 from PROMPT_COMMAND @@ -240,10 +240,10 @@ index 5fb16996dd93..2a328de27cbd 100644 case "$TERM" in -- -2.14.3 +2.14.4 -From 30b066b9ff43f2e12540e9d47a1cf90ed4c5b436 Mon Sep 17 00:00:00 2001 +From bcc7006f6489009a8db18a71fb83c32cff6291d8 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 Subject: [PATCH 3/5] Test the notification-received signal @@ -279,10 +279,10 @@ index 8663d63c5445..4c5d9a2b3bad 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index eb2afc215998..38ae1e5ccc9e 100644 +index b155efa3f348..250d09d8b4c5 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1621,6 +1621,14 @@ window_window_title_changed_cb(VteTerminal* terminal, +@@ -1628,6 +1628,14 @@ window_window_title_changed_cb(VteTerminal* terminal, vte_terminal_get_window_title(window->terminal)); } @@ -297,7 +297,7 @@ index eb2afc215998..38ae1e5ccc9e 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -1848,6 +1856,8 @@ vteapp_window_constructed(GObject *object) +@@ -1855,6 +1863,8 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); @@ -307,10 +307,10 @@ index eb2afc215998..38ae1e5ccc9e 100644 if (options.no_double_buffer) gtk_widget_set_double_buffered(GTK_WIDGET(window->terminal), false); -- -2.14.3 +2.14.4 -From d2ae1e7e5972076ed94a7569dd82987feec0c464 Mon Sep 17 00:00:00 2001 +From 6075fd589b25de73fff0a4216edbb1ca2cbfd8c3 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 Subject: [PATCH 4/5] Add a property to configure the scroll speed @@ -329,7 +329,7 @@ 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 e76ac3a8f923..433d721b7400 100644 +index b46e30620fe1..bda65e4c788e 100644 --- a/doc/reference/vte-sections.txt +++ b/doc/reference/vte-sections.txt @@ -55,6 +55,7 @@ vte_terminal_get_cursor_blink_mode @@ -341,18 +341,18 @@ index e76ac3a8f923..433d721b7400 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index c7c7e98c2c43..ba7c1fee2eec 100644 +index b368cd5eeae2..dea436c53178 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10021,6 +10021,7 @@ void - VteTerminalPrivate::widget_scroll(GdkEventScroll *event) +@@ -9800,6 +9800,7 @@ void + Terminal::widget_scroll(GdkEventScroll *event) { gdouble delta_x, delta_y; + gdouble scroll_speed; gdouble v; gint cnt, i; int button; -@@ -10074,7 +10075,13 @@ VteTerminalPrivate::widget_scroll(GdkEventScroll *event) +@@ -9853,7 +9854,13 @@ Terminal::widget_scroll(GdkEventScroll *event) return; } @@ -367,12 +367,12 @@ index c7c7e98c2c43..ba7c1fee2eec 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -10335,6 +10342,16 @@ VteTerminalPrivate::decscusr_cursor_shape() +@@ -10114,6 +10121,16 @@ Terminal::decscusr_cursor_shape() } } +bool -+VteTerminalPrivate::set_scroll_speed(unsigned int scroll_speed) ++Terminal::set_scroll_speed(unsigned int scroll_speed) +{ + if (scroll_speed == m_scroll_speed) + return false; @@ -382,10 +382,10 @@ index c7c7e98c2c43..ba7c1fee2eec 100644 +} + bool - VteTerminalPrivate::set_scrollback_lines(long lines) + Terminal::set_scrollback_lines(long lines) { diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index fac2d26a50e4..c4834bfdf310 100644 +index 861a8c7402db..8e6a5d249d7a 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -296,6 +296,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, @@ -400,10 +400,10 @@ index fac2d26a50e4..c4834bfdf310 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 9a3bc1128d9e..77038cd14407 100644 +index 0c9773535d7a..d4fe1b7edc12 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -483,6 +483,9 @@ vte_terminal_get_property (GObject *object, +@@ -517,6 +517,9 @@ vte_terminal_get_property (GObject *object, case PROP_REWRAP_ON_RESIZE: g_value_set_boolean (value, vte_terminal_get_rewrap_on_resize (terminal)); break; @@ -413,7 +413,7 @@ index 9a3bc1128d9e..77038cd14407 100644 case PROP_SCROLLBACK_LINES: g_value_set_uint (value, vte_terminal_get_scrollback_lines(terminal)); break; -@@ -584,6 +587,9 @@ vte_terminal_set_property (GObject *object, +@@ -618,6 +621,9 @@ vte_terminal_set_property (GObject *object, case PROP_REWRAP_ON_RESIZE: vte_terminal_set_rewrap_on_resize (terminal, g_value_get_boolean (value)); break; @@ -423,7 +423,7 @@ index 9a3bc1128d9e..77038cd14407 100644 case PROP_SCROLLBACK_LINES: vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); break; -@@ -1531,6 +1537,21 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1564,6 +1570,21 @@ vte_terminal_class_init(VteTerminalClass *klass) TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -445,7 +445,7 @@ index 9a3bc1128d9e..77038cd14407 100644 /** * VteTerminal:scrollback-lines: * -@@ -4064,6 +4085,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) +@@ -4122,6 +4143,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) return IMPL(terminal)->m_row_count; } @@ -489,10 +489,10 @@ index 126d29326f11..b2c9edfa8246 100644 PROP_SCROLL_ON_KEYSTROKE, PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 78bacbcd1b8b..b6b26360f3c7 100644 +index b2344e906244..7cd8e50d66a7 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -445,6 +445,7 @@ public: +@@ -457,6 +457,7 @@ public: /* Scrolling options. */ gboolean m_scroll_on_output; gboolean m_scroll_on_keystroke; @@ -500,7 +500,7 @@ index 78bacbcd1b8b..b6b26360f3c7 100644 vte::grid::row_t m_scrollback_lines; /* Restricted scrolling */ -@@ -1197,6 +1198,7 @@ public: +@@ -1200,6 +1201,7 @@ public: bool set_mouse_autohide(bool autohide); bool set_pty(VtePty *pty); bool set_rewrap_on_resize(bool rewrap); @@ -509,10 +509,10 @@ index 78bacbcd1b8b..b6b26360f3c7 100644 bool set_scroll_on_keystroke(bool scroll); bool set_scroll_on_output(bool scroll); -- -2.14.3 +2.14.4 -From 872857d91a15ead2319e6da1afc8690a4952950f Mon Sep 17 00:00:00 2001 +From 8f84433d68d5ac0ed91990eefbbe59c754913f70 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 Subject: [PATCH 5/5] Test the scroll-speed property @@ -553,10 +553,10 @@ index 4c5d9a2b3bad..3b7310679239 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 38ae1e5ccc9e..a3daf28070cc 100644 +index 250d09d8b4c5..82484d2ca586 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -92,6 +92,7 @@ public: +@@ -93,6 +93,7 @@ public: int verbosity{0}; double cell_height_scale{1.0}; double cell_width_scale{1.0}; @@ -564,7 +564,7 @@ index 38ae1e5ccc9e..a3daf28070cc 100644 VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM}; VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK}; VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS}; -@@ -404,6 +405,8 @@ public: +@@ -405,6 +406,8 @@ public: "Save terminal contents to file at exit", nullptr }, { "reverse", 0, 0, G_OPTION_ARG_NONE, &reverse, "Reverse foreground/background colors", nullptr }, @@ -573,7 +573,7 @@ index 38ae1e5ccc9e..a3daf28070cc 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, -@@ -1886,6 +1889,7 @@ vteapp_window_constructed(GObject *object) +@@ -1893,6 +1896,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); @@ -582,5 +582,5 @@ index 38ae1e5ccc9e..a3daf28070cc 100644 vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); -- -2.14.3 +2.14.4 diff --git a/vte291.spec b/vte291.spec index 14e6fd5..5274210 100644 --- a/vte291.spec +++ b/vte291.spec @@ -1,8 +1,8 @@ %global apiver 2.91 Name: vte291 -Version: 0.53.0 -Release: 3%{?dist} +Version: 0.53.92 +Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -71,8 +71,9 @@ LDFLAGS="$LDFLAGS -Wl,-z,relro -Wl,-z,now -pie" \ --disable-static \ --libexecdir=%{_libdir}/vte-%{apiver} \ --disable-gtk-doc \ + --disable-silent-rules \ --enable-introspection -make %{?_smp_mflags} V=1 +%make_build %install %make_install @@ -100,6 +101,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Thu Oct 04 2018 Debarshi Ray - 0.53.92-1 +- Update to 0.53.92 + * Sat Jul 14 2018 Fedora Release Engineering - 0.53.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild From 3faa123d36aae70b545931fd5eaadda5625470b7 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 4 Oct 2018 19:05:44 +0200 Subject: [PATCH 018/164] Update to 0.54.0 --- .gitignore | 1 + sources | 2 +- vte291-command-notify-scroll-speed.patch | 32 ++++++++++++------------ vte291.spec | 7 ++++-- 4 files changed, 23 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index ea91193..02b0edb 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,4 @@ /vte-0.52.2.tar.xz /vte-0.53.0.tar.xz /vte-0.53.92.tar.xz +/vte-0.54.0.tar.xz diff --git a/sources b/sources index fe325a6..c94beff 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.53.92.tar.xz) = 6d871b217afdfda4180147509bf35e19b6e9d2d42dce30596412c156987ff98d1b527d53e1b0f2abae4e4a695340a413133170d7c198251c039a60e3902d2dd6 +SHA512 (vte-0.54.0.tar.xz) = 69dd0caae4eacc179f84eccf98625a31140286beca4244a8f06420bd36ac62dcaddf9e9d8b114549ca97927e94b562df3e7daa9fad971484f05ebdd1c0f7b787 diff --git a/vte291-command-notify-scroll-speed.patch b/vte291-command-notify-scroll-speed.patch index 12d8ec0..c0a52ae 100644 --- a/vte291-command-notify-scroll-speed.patch +++ b/vte291-command-notify-scroll-speed.patch @@ -1,4 +1,4 @@ -From 2ed7d23e2ca2c71ecc34bd555166a91f3b07e070 Mon Sep 17 00:00:00 2001 +From 0aae9eb7587d3061bb256a6b4d3208e9bcd69a5c Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 1/5] Add sequences and signals for desktop notification @@ -38,10 +38,10 @@ index 1e4d0c1b6476..3385b4759713 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index 32323f468f59..b368cd5eeae2 100644 +index 75f32990c777..8bfe44eac336 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10565,6 +10565,15 @@ Terminal::emit_pending_signals() +@@ -10579,6 +10579,15 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); @@ -125,7 +125,7 @@ index c49754ef38ee..126d29326f11 100644 LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 785901b89d82..b2344e906244 100644 +index 1652ca5fe6ed..c5b24ffe2ca9 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -578,6 +578,11 @@ public: @@ -140,7 +140,7 @@ index 785901b89d82..b2344e906244 100644 std::string m_window_title{}; std::string m_current_directory_uri{}; std::string m_current_file_uri{}; -@@ -1322,6 +1327,9 @@ public: +@@ -1323,6 +1328,9 @@ public: int osc) noexcept; /* OSC handlers */ @@ -151,7 +151,7 @@ index 785901b89d82..b2344e906244 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 f059757d86e0..bcd4614aada9 100644 +index 2a46f2e3b2b7..03ea24bd2951 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc @@ -1341,6 +1341,34 @@ Terminal::delete_lines(vte::grid::row_t param) @@ -212,7 +212,7 @@ index f059757d86e0..bcd4614aada9 100644 2.14.4 -From af373aa1f1f117ff9e602b8693e00dfef7fb6ea6 Mon Sep 17 00:00:00 2001 +From 27455abc1eea578b389e89f9475870330530cd21 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 Subject: [PATCH 2/5] vte.sh: Emit OSC 777 from PROMPT_COMMAND @@ -243,7 +243,7 @@ index 5fb16996dd93..2a328de27cbd 100644 2.14.4 -From bcc7006f6489009a8db18a71fb83c32cff6291d8 Mon Sep 17 00:00:00 2001 +From 291857971df4104c9afa8c66d8d8bc788a3aabd4 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 Subject: [PATCH 3/5] Test the notification-received signal @@ -310,7 +310,7 @@ index b155efa3f348..250d09d8b4c5 100644 2.14.4 -From 6075fd589b25de73fff0a4216edbb1ca2cbfd8c3 Mon Sep 17 00:00:00 2001 +From 41729384ec63d6ac2303d423bd0cf24fb91f832e Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 Subject: [PATCH 4/5] Add a property to configure the scroll speed @@ -341,10 +341,10 @@ index b46e30620fe1..bda65e4c788e 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index b368cd5eeae2..dea436c53178 100644 +index 8bfe44eac336..90368463381d 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9800,6 +9800,7 @@ void +@@ -9814,6 +9814,7 @@ void Terminal::widget_scroll(GdkEventScroll *event) { gdouble delta_x, delta_y; @@ -352,7 +352,7 @@ index b368cd5eeae2..dea436c53178 100644 gdouble v; gint cnt, i; int button; -@@ -9853,7 +9854,13 @@ Terminal::widget_scroll(GdkEventScroll *event) +@@ -9867,7 +9868,13 @@ Terminal::widget_scroll(GdkEventScroll *event) return; } @@ -367,7 +367,7 @@ index b368cd5eeae2..dea436c53178 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -10114,6 +10121,16 @@ Terminal::decscusr_cursor_shape() +@@ -10128,6 +10135,16 @@ Terminal::decscusr_cursor_shape() } } @@ -489,7 +489,7 @@ index 126d29326f11..b2c9edfa8246 100644 PROP_SCROLL_ON_KEYSTROKE, PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index b2344e906244..7cd8e50d66a7 100644 +index c5b24ffe2ca9..620bcf200af6 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -457,6 +457,7 @@ public: @@ -500,7 +500,7 @@ index b2344e906244..7cd8e50d66a7 100644 vte::grid::row_t m_scrollback_lines; /* Restricted scrolling */ -@@ -1200,6 +1201,7 @@ public: +@@ -1201,6 +1202,7 @@ public: bool set_mouse_autohide(bool autohide); bool set_pty(VtePty *pty); bool set_rewrap_on_resize(bool rewrap); @@ -512,7 +512,7 @@ index b2344e906244..7cd8e50d66a7 100644 2.14.4 -From 8f84433d68d5ac0ed91990eefbbe59c754913f70 Mon Sep 17 00:00:00 2001 +From 872218fbfe8075ffeed9bf9dab82e9955fdcc187 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 Subject: [PATCH 5/5] Test the scroll-speed property diff --git a/vte291.spec b/vte291.spec index 5274210..ab55d2a 100644 --- a/vte291.spec +++ b/vte291.spec @@ -1,13 +1,13 @@ %global apiver 2.91 Name: vte291 -Version: 0.53.92 +Version: 0.54.0 Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ URL: http://www.gnome.org/ -Source0: http://download.gnome.org/sources/vte/0.53/vte-%{version}.tar.xz +Source0: http://download.gnome.org/sources/vte/0.54/vte-%{version}.tar.xz Patch0: vte291-Fix-the-build-with-GCC-8.1.1.patch @@ -101,6 +101,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Thu Oct 04 2018 Debarshi Ray - 0.54.0-1 +- Update to 0.54.0 + * Thu Oct 04 2018 Debarshi Ray - 0.53.92-1 - Update to 0.53.92 From dc7d7af0747fc866785df590506ca068b915862d Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 5 Oct 2018 14:14:41 +0200 Subject: [PATCH 019/164] Update to 0.54.1 --- .gitignore | 1 + sources | 2 +- vte291-command-notify-scroll-speed.patch | 30 ++++++++++++------------ vte291.spec | 5 +++- 4 files changed, 21 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index 02b0edb..8ef5005 100644 --- a/.gitignore +++ b/.gitignore @@ -43,3 +43,4 @@ /vte-0.53.0.tar.xz /vte-0.53.92.tar.xz /vte-0.54.0.tar.xz +/vte-0.54.1.tar.xz diff --git a/sources b/sources index c94beff..f061e8a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.54.0.tar.xz) = 69dd0caae4eacc179f84eccf98625a31140286beca4244a8f06420bd36ac62dcaddf9e9d8b114549ca97927e94b562df3e7daa9fad971484f05ebdd1c0f7b787 +SHA512 (vte-0.54.1.tar.xz) = 5cb866e75c35e1b5728d17b0433641ceb4837495d59185a04fde9dd8c9849ab905a6b2718a50b27cc70323c7a6c5db31a808816576c30d7f18ece889a329fb61 diff --git a/vte291-command-notify-scroll-speed.patch b/vte291-command-notify-scroll-speed.patch index c0a52ae..7b5a0e2 100644 --- a/vte291-command-notify-scroll-speed.patch +++ b/vte291-command-notify-scroll-speed.patch @@ -1,4 +1,4 @@ -From 0aae9eb7587d3061bb256a6b4d3208e9bcd69a5c Mon Sep 17 00:00:00 2001 +From f00537f18044702a05aba6ed9406b8a72caa63c8 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 1/5] Add sequences and signals for desktop notification @@ -38,10 +38,10 @@ index 1e4d0c1b6476..3385b4759713 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index 75f32990c777..8bfe44eac336 100644 +index 6c9f70f9fba1..3e6eeb92cd36 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10579,6 +10579,15 @@ Terminal::emit_pending_signals() +@@ -10581,6 +10581,15 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); @@ -151,7 +151,7 @@ index 1652ca5fe6ed..c5b24ffe2ca9 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 2a46f2e3b2b7..03ea24bd2951 100644 +index eabcbbaa5eca..51b3a2c32c7f 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc @@ -1341,6 +1341,34 @@ Terminal::delete_lines(vte::grid::row_t param) @@ -212,7 +212,7 @@ index 2a46f2e3b2b7..03ea24bd2951 100644 2.14.4 -From 27455abc1eea578b389e89f9475870330530cd21 Mon Sep 17 00:00:00 2001 +From 1ae011f8d4a45bb974d4ead4f66becd6af9fc30c Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 Subject: [PATCH 2/5] vte.sh: Emit OSC 777 from PROMPT_COMMAND @@ -223,7 +223,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711059 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/vte.sh b/src/vte.sh -index 5fb16996dd93..2a328de27cbd 100644 +index 6d1a8734c479..03dea2fa99ee 100644 --- a/src/vte.sh +++ b/src/vte.sh @@ -50,9 +50,11 @@ __vte_osc7 () { @@ -234,8 +234,8 @@ index 5fb16996dd93..2a328de27cbd 100644 + command="${command//;/ }" local pwd='~' [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} -- printf "\u009D0;%s@%s:%s\u009C%s" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" -+ printf "\u009D777;notify;Command completed;%s\u009C\u009D0;%s@%s:%s\u009C%s" "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" +- printf "\033]0;%s@%s:%s\033\\%s" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" ++ printf "\033]777;notify;Command completed;%s\033\\\033]0;%s@%s:%s\033\\%s" "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" } case "$TERM" in @@ -243,7 +243,7 @@ index 5fb16996dd93..2a328de27cbd 100644 2.14.4 -From 291857971df4104c9afa8c66d8d8bc788a3aabd4 Mon Sep 17 00:00:00 2001 +From e4649b3c31a9ef08c2b6ae5c079e1597fdb8e3cf Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 Subject: [PATCH 3/5] Test the notification-received signal @@ -310,7 +310,7 @@ index b155efa3f348..250d09d8b4c5 100644 2.14.4 -From 41729384ec63d6ac2303d423bd0cf24fb91f832e Mon Sep 17 00:00:00 2001 +From 08f238e068bbc1a4b84f9fa61b90641622aaeb9e Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 Subject: [PATCH 4/5] Add a property to configure the scroll speed @@ -341,10 +341,10 @@ index b46e30620fe1..bda65e4c788e 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index 8bfe44eac336..90368463381d 100644 +index 3e6eeb92cd36..83ab8f10ca1b 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9814,6 +9814,7 @@ void +@@ -9816,6 +9816,7 @@ void Terminal::widget_scroll(GdkEventScroll *event) { gdouble delta_x, delta_y; @@ -352,7 +352,7 @@ index 8bfe44eac336..90368463381d 100644 gdouble v; gint cnt, i; int button; -@@ -9867,7 +9868,13 @@ Terminal::widget_scroll(GdkEventScroll *event) +@@ -9869,7 +9870,13 @@ Terminal::widget_scroll(GdkEventScroll *event) return; } @@ -367,7 +367,7 @@ index 8bfe44eac336..90368463381d 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -10128,6 +10135,16 @@ Terminal::decscusr_cursor_shape() +@@ -10130,6 +10137,16 @@ Terminal::decscusr_cursor_shape() } } @@ -512,7 +512,7 @@ index c5b24ffe2ca9..620bcf200af6 100644 2.14.4 -From 872218fbfe8075ffeed9bf9dab82e9955fdcc187 Mon Sep 17 00:00:00 2001 +From 356f8a6b601f4dab927853db13a657ef1891f97e Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 Subject: [PATCH 5/5] Test the scroll-speed property diff --git a/vte291.spec b/vte291.spec index ab55d2a..dc732ed 100644 --- a/vte291.spec +++ b/vte291.spec @@ -1,7 +1,7 @@ %global apiver 2.91 Name: vte291 -Version: 0.54.0 +Version: 0.54.1 Release: 1%{?dist} Summary: Terminal emulator library @@ -101,6 +101,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Fri Oct 05 2018 Debarshi Ray - 0.54.1-1 +- Update to 0.54.1 + * Thu Oct 04 2018 Debarshi Ray - 0.54.0-1 - Update to 0.54.0 From ab1d97e17753a1f75af27687abfeac40470fdd70 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 5 Oct 2018 17:28:41 +0200 Subject: [PATCH 020/164] Tighten the dependencies a bit --- vte291.spec | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/vte291.spec b/vte291.spec index dc732ed..045d090 100644 --- a/vte291.spec +++ b/vte291.spec @@ -1,8 +1,12 @@ %global apiver 2.91 +%global gnutls_version 3.2.7 +%global gtk3_version 3.8.0 +%global pcre2_version 10.21 + Name: vte291 Version: 0.54.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -17,15 +21,18 @@ Patch100: vte291-command-notify-scroll-speed.patch BuildRequires: gcc-c++ BuildRequires: gettext -BuildRequires: pkgconfig(gnutls) +BuildRequires: pkgconfig(gnutls) >= %{gnutls_version} BuildRequires: gobject-introspection-devel BuildRequires: gperf -BuildRequires: pkgconfig(gtk+-3.0) -BuildRequires: pkgconfig(libpcre2-8) +BuildRequires: pkgconfig(gtk+-3.0) >= %{gtk3_version} +BuildRequires: pkgconfig(libpcre2-8) >= %{pcre2_version} BuildRequires: intltool BuildRequires: vala # systemd creates the utmp group +Requires: gnutls%{?_isa} >= %{gnutls_version} +Requires: gtk3%{?_isa} >= %{gtk3_version} +Requires: pcre2%{?_isa} >= %{pcre2_version} Requires: systemd Requires: vte-profile @@ -101,6 +108,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Fri Oct 05 2018 Debarshi Ray - 0.54.1-2 +- Tighten the dependencies a bit + * Fri Oct 05 2018 Debarshi Ray - 0.54.1-1 - Update to 0.54.1 From 94ec580d203552c728f6d46ce539fd321d991500 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 5 Oct 2018 19:48:12 +0200 Subject: [PATCH 021/164] Tweak the escape sequence emission to unbreak the parsing --- vte291-command-notify-scroll-speed.patch | 18 +++++++++++------- vte291.spec | 5 ++++- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/vte291-command-notify-scroll-speed.patch b/vte291-command-notify-scroll-speed.patch index 7b5a0e2..3e11c5e 100644 --- a/vte291-command-notify-scroll-speed.patch +++ b/vte291-command-notify-scroll-speed.patch @@ -1,4 +1,4 @@ -From f00537f18044702a05aba6ed9406b8a72caa63c8 Mon Sep 17 00:00:00 2001 +From 040c43f2edb0f3179febbed36f37bc1fbc77dbcf Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 1/5] Add sequences and signals for desktop notification @@ -212,18 +212,22 @@ index eabcbbaa5eca..51b3a2c32c7f 100644 2.14.4 -From 1ae011f8d4a45bb974d4ead4f66becd6af9fc30c Mon Sep 17 00:00:00 2001 +From bd6936635d4055c3434fac71fe3af405df4c0ba8 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 Subject: [PATCH 2/5] 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 +singles fixes it. + https://bugzilla.gnome.org/show_bug.cgi?id=711059 --- src/vte.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/vte.sh b/src/vte.sh -index 6d1a8734c479..03dea2fa99ee 100644 +index 6d1a8734c479..b75c6dac6f6e 100644 --- a/src/vte.sh +++ b/src/vte.sh @@ -50,9 +50,11 @@ __vte_osc7 () { @@ -235,7 +239,7 @@ index 6d1a8734c479..03dea2fa99ee 100644 local pwd='~' [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} - printf "\033]0;%s@%s:%s\033\\%s" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" -+ printf "\033]777;notify;Command completed;%s\033\\\033]0;%s@%s:%s\033\\%s" "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" ++ printf '\033]777;notify;Command completed;%s\033\\\033]0;%s@%s:%s\033\\%s' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" } case "$TERM" in @@ -243,7 +247,7 @@ index 6d1a8734c479..03dea2fa99ee 100644 2.14.4 -From e4649b3c31a9ef08c2b6ae5c079e1597fdb8e3cf Mon Sep 17 00:00:00 2001 +From 693355f62a7959ded9157493292742434ba066ed Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 Subject: [PATCH 3/5] Test the notification-received signal @@ -310,7 +314,7 @@ index b155efa3f348..250d09d8b4c5 100644 2.14.4 -From 08f238e068bbc1a4b84f9fa61b90641622aaeb9e Mon Sep 17 00:00:00 2001 +From 24c78bb06d9f85393fa4e715f0d01b40496c71a6 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 Subject: [PATCH 4/5] Add a property to configure the scroll speed @@ -512,7 +516,7 @@ index c5b24ffe2ca9..620bcf200af6 100644 2.14.4 -From 356f8a6b601f4dab927853db13a657ef1891f97e Mon Sep 17 00:00:00 2001 +From 82cbdbbaa55696b422b409b9174d6df8cdb8ee4a Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 Subject: [PATCH 5/5] Test the scroll-speed property diff --git a/vte291.spec b/vte291.spec index 045d090..51c2a15 100644 --- a/vte291.spec +++ b/vte291.spec @@ -6,7 +6,7 @@ Name: vte291 Version: 0.54.1 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -108,6 +108,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Fri Oct 05 2018 Debarshi Ray - 0.54.1-3 +- Tweak the escape sequence emission to unbreak the parsing + * Fri Oct 05 2018 Debarshi Ray - 0.54.1-2 - Tighten the dependencies a bit From 1aad1216aad3c1709a3b51ab2c0e1f9ec14f293c Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 8 Oct 2018 14:53:31 +0200 Subject: [PATCH 022/164] Removal of utmp logging makes the utmp group unnecessary The u/wtmp logging was performed by gnome-pty-helper which was chown:ed as root:utmp. This was removed in vte291-0.41.90. --- vte291.spec | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/vte291.spec b/vte291.spec index 51c2a15..352923e 100644 --- a/vte291.spec +++ b/vte291.spec @@ -6,7 +6,7 @@ Name: vte291 Version: 0.54.1 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -29,11 +29,9 @@ BuildRequires: pkgconfig(libpcre2-8) >= %{pcre2_version} BuildRequires: intltool BuildRequires: vala -# systemd creates the utmp group Requires: gnutls%{?_isa} >= %{gnutls_version} Requires: gtk3%{?_isa} >= %{gtk3_version} Requires: pcre2%{?_isa} >= %{pcre2_version} -Requires: systemd Requires: vte-profile Conflicts: gnome-terminal < 3.20.1-2 @@ -108,6 +106,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Oct 08 2018 Debarshi Ray - 0.54.1-4 +- Removal of utmp logging makes the utmp group unnecessary + * Fri Oct 05 2018 Debarshi Ray - 0.54.1-3 - Tweak the escape sequence emission to unbreak the parsing From e13f31614e518cd7f488f47b7bc554197fa2c608 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Fri, 26 Oct 2018 08:48:33 +0200 Subject: [PATCH 023/164] Update to 0.54.2 --- .gitignore | 1 + sources | 2 +- vte291-Fix-the-build-with-GCC-8.1.1.patch | 26 ----------------------- vte291.spec | 10 ++++----- 4 files changed, 7 insertions(+), 32 deletions(-) delete mode 100644 vte291-Fix-the-build-with-GCC-8.1.1.patch diff --git a/.gitignore b/.gitignore index 8ef5005..29bca4b 100644 --- a/.gitignore +++ b/.gitignore @@ -44,3 +44,4 @@ /vte-0.53.92.tar.xz /vte-0.54.0.tar.xz /vte-0.54.1.tar.xz +/vte-0.54.2.tar.xz diff --git a/sources b/sources index f061e8a..6604603 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.54.1.tar.xz) = 5cb866e75c35e1b5728d17b0433641ceb4837495d59185a04fde9dd8c9849ab905a6b2718a50b27cc70323c7a6c5db31a808816576c30d7f18ece889a329fb61 +SHA512 (vte-0.54.2.tar.xz) = 214ec69110d6ad6caa9bc41fb741874bfcf27f20f34d3ae745b13903c574f9c854f7e0dadbae3dbc8ce04c5a6eb818a433c50569c1ef802501a9a078385f23fc diff --git a/vte291-Fix-the-build-with-GCC-8.1.1.patch b/vte291-Fix-the-build-with-GCC-8.1.1.patch deleted file mode 100644 index 6d37c79..0000000 --- a/vte291-Fix-the-build-with-GCC-8.1.1.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 4e7fe2f2fc02cc008f67d80ef3cd9b41a8f17129 Mon Sep 17 00:00:00 2001 -From: Egmont Koblinger -Date: Thu, 27 Sep 2018 21:25:50 +0200 -Subject: [PATCH] widget: Add missing exception specification - -This fixes compiling with clang. ---- - src/widget.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/widget.cc b/src/widget.cc -index 0f2e509e6c0c..deaf789de6e2 100644 ---- a/src/widget.cc -+++ b/src/widget.cc -@@ -327,7 +327,7 @@ Widget::size_allocate(GtkAllocation* allocation) noexcept - } - - void --Widget::unmap() -+Widget::unmap() noexcept - { - if (m_event_window) - gdk_window_hide(m_event_window); --- -2.14.4 - diff --git a/vte291.spec b/vte291.spec index 352923e..b1a424f 100644 --- a/vte291.spec +++ b/vte291.spec @@ -5,16 +5,14 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.54.1 -Release: 4%{?dist} +Version: 0.54.2 +Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ URL: http://www.gnome.org/ Source0: http://download.gnome.org/sources/vte/0.54/vte-%{version}.tar.xz -Patch0: vte291-Fix-the-build-with-GCC-8.1.1.patch - # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 Patch100: vte291-command-notify-scroll-speed.patch @@ -65,7 +63,6 @@ emulator library. %prep %setup -q -n vte-%{version} -%patch0 -p1 -b .fix-the-build %patch100 -p1 -b .command-notify-scroll-speed %build @@ -106,6 +103,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Fri Oct 26 2018 Kalev Lember - 0.54.2-1 +- Update to 0.54.2 + * Mon Oct 08 2018 Debarshi Ray - 0.54.1-4 - Removal of utmp logging makes the utmp group unnecessary From 24dfbe75de949becb9046bfbb3c298a18ff866df Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Wed, 12 Dec 2018 11:32:42 +0100 Subject: [PATCH 024/164] Update to 0.54.3 --- .gitignore | 1 + sources | 2 +- vte291.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 29bca4b..65a2ee6 100644 --- a/.gitignore +++ b/.gitignore @@ -45,3 +45,4 @@ /vte-0.54.0.tar.xz /vte-0.54.1.tar.xz /vte-0.54.2.tar.xz +/vte-0.54.3.tar.xz diff --git a/sources b/sources index 6604603..b66ceb7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.54.2.tar.xz) = 214ec69110d6ad6caa9bc41fb741874bfcf27f20f34d3ae745b13903c574f9c854f7e0dadbae3dbc8ce04c5a6eb818a433c50569c1ef802501a9a078385f23fc +SHA512 (vte-0.54.3.tar.xz) = dd7d2ac361ed9ac0550599bb3164a3bd6ba95535275c9b559c81ce0af1bbf4b3d150a7489f987b2e626b32d4a8adc82d1ff78e8c8640e5b1c036fe4076c5d8ce diff --git a/vte291.spec b/vte291.spec index b1a424f..966638b 100644 --- a/vte291.spec +++ b/vte291.spec @@ -5,7 +5,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.54.2 +Version: 0.54.3 Release: 1%{?dist} Summary: Terminal emulator library @@ -103,6 +103,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Wed Dec 12 2018 Kalev Lember - 0.54.3-1 +- Update to 0.54.3 + * Fri Oct 26 2018 Kalev Lember - 0.54.2-1 - Update to 0.54.2 From 16087f609a94ec51364bdadb5d5f8016f6e9aaa3 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 3 Feb 2019 11:28:39 +0000 Subject: [PATCH 025/164] - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index 966638b..8f3779c 100644 --- a/vte291.spec +++ b/vte291.spec @@ -6,7 +6,7 @@ Name: vte291 Version: 0.54.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -103,6 +103,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Sun Feb 03 2019 Fedora Release Engineering - 0.54.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + * Wed Dec 12 2018 Kalev Lember - 0.54.3-1 - Update to 0.54.3 From e9d973f809df82cd09dbc293a2b37750ba5acace Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Tue, 19 Feb 2019 11:19:26 +0100 Subject: [PATCH 026/164] Update to 0.55.90 --- .gitignore | 1 + sources | 2 +- vte291.spec | 9 ++++++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 65a2ee6..ae44d8c 100644 --- a/.gitignore +++ b/.gitignore @@ -46,3 +46,4 @@ /vte-0.54.1.tar.xz /vte-0.54.2.tar.xz /vte-0.54.3.tar.xz +/vte-0.55.90.tar.xz diff --git a/sources b/sources index b66ceb7..e94a53c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.54.3.tar.xz) = dd7d2ac361ed9ac0550599bb3164a3bd6ba95535275c9b559c81ce0af1bbf4b3d150a7489f987b2e626b32d4a8adc82d1ff78e8c8640e5b1c036fe4076c5d8ce +SHA512 (vte-0.55.90.tar.xz) = 6e4bd006891aada062e1e5813010c9d2311b2342208020c29cbaf9e46493c4187d3d3957d03b4fa48df271c43a54d67ee8635d66cfb259fb47678420c119ace2 diff --git a/vte291.spec b/vte291.spec index 8f3779c..6b0edd4 100644 --- a/vte291.spec +++ b/vte291.spec @@ -5,13 +5,13 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.54.3 -Release: 2%{?dist} +Version: 0.55.90 +Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ URL: http://www.gnome.org/ -Source0: http://download.gnome.org/sources/vte/0.54/vte-%{version}.tar.xz +Source0: http://download.gnome.org/sources/vte/0.55/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 @@ -103,6 +103,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Tue Feb 19 2019 Kalev Lember - 0.55.90-1 +- Update to 0.55.90 + * Sun Feb 03 2019 Fedora Release Engineering - 0.54.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild From 7a5e6714f96b480b356fc9e697098bc1e96a1147 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Tue, 19 Feb 2019 16:36:26 +0100 Subject: [PATCH 027/164] Rebuilt against fixed atk (#1626575) --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index 6b0edd4..66336b7 100644 --- a/vte291.spec +++ b/vte291.spec @@ -6,7 +6,7 @@ Name: vte291 Version: 0.55.90 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -103,6 +103,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Tue Feb 19 2019 Kalev Lember - 0.55.90-2 +- Rebuilt against fixed atk (#1626575) + * Tue Feb 19 2019 Kalev Lember - 0.55.90-1 - Update to 0.55.90 From dc33e7e2a04f6e8fcb9758e7c748fd862cdd23bd Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Mon, 4 Mar 2019 22:45:34 +0100 Subject: [PATCH 028/164] Update to 0.55.92 --- .gitignore | 1 + sources | 2 +- vte291.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index ae44d8c..9609d91 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,4 @@ /vte-0.54.2.tar.xz /vte-0.54.3.tar.xz /vte-0.55.90.tar.xz +/vte-0.55.92.tar.xz diff --git a/sources b/sources index e94a53c..9e3a1e8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.55.90.tar.xz) = 6e4bd006891aada062e1e5813010c9d2311b2342208020c29cbaf9e46493c4187d3d3957d03b4fa48df271c43a54d67ee8635d66cfb259fb47678420c119ace2 +SHA512 (vte-0.55.92.tar.xz) = 0d03d26b746b780daedbbe810aadb686ee16d5257eb8c6717260df9faea3a1924a8d8dc46cf77439ff2c814e23cbca21ce6a56b6846a401197f91a55cf79967f diff --git a/vte291.spec b/vte291.spec index 66336b7..1ad872d 100644 --- a/vte291.spec +++ b/vte291.spec @@ -5,8 +5,8 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.55.90 -Release: 2%{?dist} +Version: 0.55.92 +Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -103,6 +103,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Mar 04 2019 Kalev Lember - 0.55.92-1 +- Update to 0.55.92 + * Tue Feb 19 2019 Kalev Lember - 0.55.90-2 - Rebuilt against fixed atk (#1626575) From 561014348529d502f353377f55918d35a3f7af92 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Tue, 12 Mar 2019 00:06:07 +0100 Subject: [PATCH 029/164] Update to 0.56.0 --- .gitignore | 1 + sources | 2 +- vte291.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 9609d91..b29ef41 100644 --- a/.gitignore +++ b/.gitignore @@ -48,3 +48,4 @@ /vte-0.54.3.tar.xz /vte-0.55.90.tar.xz /vte-0.55.92.tar.xz +/vte-0.56.0.tar.xz diff --git a/sources b/sources index 9e3a1e8..6d11e23 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.55.92.tar.xz) = 0d03d26b746b780daedbbe810aadb686ee16d5257eb8c6717260df9faea3a1924a8d8dc46cf77439ff2c814e23cbca21ce6a56b6846a401197f91a55cf79967f +SHA512 (vte-0.56.0.tar.xz) = f366ed4a28a896ba919184b50a55ee110eae43127847f34c049684bcb9b81327d1b72e9d871b2a5b7f7fa12f3f4aa721ac3d770770b600dca9c433cb2c674915 diff --git a/vte291.spec b/vte291.spec index 1ad872d..48750ec 100644 --- a/vte291.spec +++ b/vte291.spec @@ -5,13 +5,13 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.55.92 +Version: 0.56.0 Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ URL: http://www.gnome.org/ -Source0: http://download.gnome.org/sources/vte/0.55/vte-%{version}.tar.xz +Source0: http://download.gnome.org/sources/vte/0.56/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 @@ -103,6 +103,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Mar 11 2019 Kalev Lember - 0.56.0-1 +- Update to 0.56.0 + * Mon Mar 04 2019 Kalev Lember - 0.55.92-1 - Update to 0.55.92 From 53d075dcbb2b1e1aede4d8d3c8cac0ea85a04849 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Tue, 2 Apr 2019 18:37:43 +0200 Subject: [PATCH 030/164] Add signals proxying an interactive shell's precmd and preexec hooks --- vte291-command-notify-scroll-speed.patch | 542 +++++++++++++++++++++-- vte291.spec | 5 +- 2 files changed, 497 insertions(+), 50 deletions(-) diff --git a/vte291-command-notify-scroll-speed.patch b/vte291-command-notify-scroll-speed.patch index 3e11c5e..53dca50 100644 --- a/vte291-command-notify-scroll-speed.patch +++ b/vte291-command-notify-scroll-speed.patch @@ -1,7 +1,7 @@ -From 040c43f2edb0f3179febbed36f37bc1fbc77dbcf Mon Sep 17 00:00:00 2001 +From 164096495a6a44a5ccfd4f05f56d132be6b6f765 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 -Subject: [PATCH 1/5] Add sequences and signals for desktop notification +Subject: [PATCH 1/9] Add sequences and signals for desktop notification Add sequences OSC 777 ; notify ; SUMMARY ; BODY BEL @@ -38,10 +38,10 @@ index 1e4d0c1b6476..3385b4759713 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index 6c9f70f9fba1..3e6eeb92cd36 100644 +index af01264ea240..03de88245269 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10581,6 +10581,15 @@ Terminal::emit_pending_signals() +@@ -10203,6 +10203,15 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); @@ -58,7 +58,7 @@ index 6c9f70f9fba1..3e6eeb92cd36 100644 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 89539cc476b6..861a8c7402db 100644 +index 26ac236ef4ea..abf1a38cb20d 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -104,8 +104,10 @@ struct _VteTerminalClass { @@ -74,7 +74,7 @@ index 89539cc476b6..861a8c7402db 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 89e3d7a89f3a..0c9773535d7a 100644 +index ea8b3208542c..4f67c186d245 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -729,6 +729,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -125,10 +125,10 @@ index c49754ef38ee..126d29326f11 100644 LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 1652ca5fe6ed..c5b24ffe2ca9 100644 +index 58cb0479c5c4..7de222442663 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -578,6 +578,11 @@ public: +@@ -539,6 +539,11 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -140,7 +140,7 @@ index 1652ca5fe6ed..c5b24ffe2ca9 100644 std::string m_window_title{}; std::string m_current_directory_uri{}; std::string m_current_file_uri{}; -@@ -1323,6 +1328,9 @@ public: +@@ -1269,6 +1274,9 @@ public: int osc) noexcept; /* OSC handlers */ @@ -151,10 +151,10 @@ index 1652ca5fe6ed..c5b24ffe2ca9 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 eabcbbaa5eca..51b3a2c32c7f 100644 +index d596d8b9f56f..fbbf4f032f48 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1341,6 +1341,34 @@ Terminal::delete_lines(vte::grid::row_t param) +@@ -1334,6 +1334,34 @@ Terminal::delete_lines(vte::grid::row_t param) m_text_deleted_flag = TRUE; } @@ -189,7 +189,7 @@ index eabcbbaa5eca..51b3a2c32c7f 100644 bool Terminal::get_osc_color_index(int osc, int value, -@@ -6352,6 +6380,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6411,6 +6439,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) reset_color(VTE_HIGHLIGHT_FG, VTE_COLOR_SOURCE_ESCAPE); break; @@ -200,7 +200,7 @@ index eabcbbaa5eca..51b3a2c32c7f 100644 case VTE_OSC_XTERM_SET_ICON_TITLE: case VTE_OSC_XTERM_SET_XPROPERTY: case VTE_OSC_XTERM_SET_COLOR_MOUSE_CURSOR_FG: -@@ -6392,7 +6424,6 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6451,7 +6483,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: @@ -209,13 +209,13 @@ index eabcbbaa5eca..51b3a2c32c7f 100644 default: break; -- -2.14.4 +2.20.1 -From bd6936635d4055c3434fac71fe3af405df4c0ba8 Mon Sep 17 00:00:00 2001 +From d6c7e381d801680ceaff2859e83bffa272befc12 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 -Subject: [PATCH 2/5] vte.sh: Emit OSC 777 from PROMPT_COMMAND +Subject: [PATCH 2/9] 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 @@ -244,13 +244,13 @@ index 6d1a8734c479..b75c6dac6f6e 100644 case "$TERM" in -- -2.14.4 +2.20.1 -From 693355f62a7959ded9157493292742434ba066ed Mon Sep 17 00:00:00 2001 +From 15e68b0935424533d95e6f31f4f094387251346d Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 -Subject: [PATCH 3/5] Test the notification-received signal +Subject: [PATCH 3/9] Test the notification-received signal --- bindings/vala/app.vala | 7 +++++++ @@ -258,7 +258,7 @@ Subject: [PATCH 3/5] Test the notification-received signal 2 files changed, 17 insertions(+) diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala -index 8663d63c5445..4c5d9a2b3bad 100644 +index a534e76b7f42..138d453d5d98 100644 --- a/bindings/vala/app.vala +++ b/bindings/vala/app.vala @@ -309,6 +309,8 @@ class Window : Gtk.ApplicationWindow @@ -283,10 +283,10 @@ index 8663d63c5445..4c5d9a2b3bad 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index b155efa3f348..250d09d8b4c5 100644 +index 81193a07a045..14a31fe3cddf 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1628,6 +1628,14 @@ window_window_title_changed_cb(VteTerminal* terminal, +@@ -1671,6 +1671,14 @@ window_window_title_changed_cb(VteTerminal* terminal, vte_terminal_get_window_title(window->terminal)); } @@ -301,7 +301,7 @@ index b155efa3f348..250d09d8b4c5 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -1855,6 +1863,8 @@ vteapp_window_constructed(GObject *object) +@@ -1899,6 +1907,8 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); @@ -311,13 +311,13 @@ index b155efa3f348..250d09d8b4c5 100644 if (options.no_double_buffer) gtk_widget_set_double_buffered(GTK_WIDGET(window->terminal), false); -- -2.14.4 +2.20.1 -From 24c78bb06d9f85393fa4e715f0d01b40496c71a6 Mon Sep 17 00:00:00 2001 +From eed36f6b71b485e104ad4e026601177eba0491db Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 -Subject: [PATCH 4/5] Add a property to configure the scroll speed +Subject: [PATCH 4/9] 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. @@ -325,15 +325,15 @@ moving the buffer by a function of the number of visible rows. https://bugzilla.redhat.com/show_bug.cgi?id=1103380 --- doc/reference/vte-sections.txt | 1 + - src/vte.cc | 19 +++++++++++++++++- - src/vte/vteterminal.h | 4 ++++ - src/vtegtk.cc | 45 ++++++++++++++++++++++++++++++++++++++++++ + src/vte.cc | 19 +++++++++++++- + src/vte/vteterminal.h | 4 +++ + src/vtegtk.cc | 45 ++++++++++++++++++++++++++++++++++ src/vtegtk.hh | 1 + src/vteinternal.hh | 2 ++ 6 files changed, 71 insertions(+), 1 deletion(-) diff --git a/doc/reference/vte-sections.txt b/doc/reference/vte-sections.txt -index b46e30620fe1..bda65e4c788e 100644 +index 9ab873c17bfc..7b94f4df9a30 100644 --- a/doc/reference/vte-sections.txt +++ b/doc/reference/vte-sections.txt @@ -55,6 +55,7 @@ vte_terminal_get_cursor_blink_mode @@ -345,10 +345,10 @@ index b46e30620fe1..bda65e4c788e 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index 3e6eeb92cd36..83ab8f10ca1b 100644 +index 03de88245269..f88c3a246f70 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9816,6 +9816,7 @@ void +@@ -9451,6 +9451,7 @@ void Terminal::widget_scroll(GdkEventScroll *event) { gdouble delta_x, delta_y; @@ -356,7 +356,7 @@ index 3e6eeb92cd36..83ab8f10ca1b 100644 gdouble v; gint cnt, i; int button; -@@ -9869,7 +9870,13 @@ Terminal::widget_scroll(GdkEventScroll *event) +@@ -9504,7 +9505,13 @@ Terminal::widget_scroll(GdkEventScroll *event) return; } @@ -371,7 +371,7 @@ index 3e6eeb92cd36..83ab8f10ca1b 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -10130,6 +10137,16 @@ Terminal::decscusr_cursor_shape() +@@ -9765,6 +9772,16 @@ Terminal::decscusr_cursor_shape() } } @@ -389,7 +389,7 @@ index 3e6eeb92cd36..83ab8f10ca1b 100644 Terminal::set_scrollback_lines(long lines) { diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 861a8c7402db..8e6a5d249d7a 100644 +index abf1a38cb20d..c8ba72023370 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -296,6 +296,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, @@ -404,7 +404,7 @@ index 861a8c7402db..8e6a5d249d7a 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 0c9773535d7a..d4fe1b7edc12 100644 +index 4f67c186d245..be3304027c1b 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -517,6 +517,9 @@ vte_terminal_get_property (GObject *object, @@ -449,7 +449,7 @@ index 0c9773535d7a..d4fe1b7edc12 100644 /** * VteTerminal:scrollback-lines: * -@@ -4122,6 +4143,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) +@@ -4113,6 +4134,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) return IMPL(terminal)->m_row_count; } @@ -493,10 +493,10 @@ index 126d29326f11..b2c9edfa8246 100644 PROP_SCROLL_ON_KEYSTROKE, PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index c5b24ffe2ca9..620bcf200af6 100644 +index 7de222442663..86a8a6e76751 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -457,6 +457,7 @@ public: +@@ -418,6 +418,7 @@ public: /* Scrolling options. */ gboolean m_scroll_on_output; gboolean m_scroll_on_keystroke; @@ -504,7 +504,7 @@ index c5b24ffe2ca9..620bcf200af6 100644 vte::grid::row_t m_scrollback_lines; /* Restricted scrolling */ -@@ -1201,6 +1202,7 @@ public: +@@ -1147,6 +1148,7 @@ public: bool set_mouse_autohide(bool autohide); bool set_pty(VtePty *pty); bool set_rewrap_on_resize(bool rewrap); @@ -513,13 +513,13 @@ index c5b24ffe2ca9..620bcf200af6 100644 bool set_scroll_on_keystroke(bool scroll); bool set_scroll_on_output(bool scroll); -- -2.14.4 +2.20.1 -From 82cbdbbaa55696b422b409b9174d6df8cdb8ee4a Mon Sep 17 00:00:00 2001 +From dd925ba940c291294b86c7913cb6345fe2d00110 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 -Subject: [PATCH 5/5] Test the scroll-speed property +Subject: [PATCH 5/9] Test the scroll-speed property https://bugzilla.redhat.com/show_bug.cgi?id=1103380 --- @@ -528,7 +528,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 4c5d9a2b3bad..3b7310679239 100644 +index 138d453d5d98..61b8ec8edd24 100644 --- a/bindings/vala/app.vala +++ b/bindings/vala/app.vala @@ -335,6 +335,7 @@ class Window : Gtk.ApplicationWindow @@ -539,7 +539,7 @@ index 4c5d9a2b3bad..3b7310679239 100644 terminal.set_scrollback_lines(App.Options.scrollback_lines); /* Style */ -@@ -856,6 +857,7 @@ class App : Gtk.Application +@@ -858,6 +859,7 @@ class App : Gtk.Application public static bool object_notifications = false; public static string? output_filename = null; public static bool reverse = false; @@ -547,7 +547,7 @@ index 4c5d9a2b3bad..3b7310679239 100644 public static int scrollback_lines = 512; public static int transparency_percent = 0; public static bool version = false; -@@ -1049,6 +1051,8 @@ class App : Gtk.Application +@@ -1051,6 +1053,8 @@ class App : Gtk.Application "Save terminal contents to file at exit", null }, { "reverse", 0, 0, OptionArg.NONE, ref reverse, "Reverse foreground/background colors", null }, @@ -557,7 +557,7 @@ index 4c5d9a2b3bad..3b7310679239 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 250d09d8b4c5..82484d2ca586 100644 +index 14a31fe3cddf..8632061920d6 100644 --- a/src/app/app.cc +++ b/src/app/app.cc @@ -93,6 +93,7 @@ public: @@ -577,7 +577,7 @@ index 250d09d8b4c5..82484d2ca586 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, -@@ -1893,6 +1896,7 @@ vteapp_window_constructed(GObject *object) +@@ -1937,6 +1940,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); @@ -586,5 +586,449 @@ index 250d09d8b4c5..82484d2ca586 100644 vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); -- -2.14.4 +2.20.1 + + +From 0c676b11d79cfdcdf6607be27b721ac2fa4454ce Mon Sep 17 00:00:00 2001 +From: Debarshi Ray +Date: Wed, 7 Jan 2015 16:01:00 +0100 +Subject: [PATCH 6/9] Support preexec notifications from an interactive shell + +Add sequences + OSC 777 ; preexec BEL + OSC 777 ; preexec ST + +that can be used from an interactive shell's preexec hook to notify +the terminal emulator that a new command is about to be executed. +Examples of such hooks are Bash's PS0 and Zsh's preexec. + +The OSC 777 escape sequence is taken from Enlightenment's Terminology: +https://phab.enlightenment.org/T1765 + +Currently, using C0 controls to emit OSC 777 from PS0 (ie., +PS0=$(printf "\u009D777;preexec\u009C")) causes spurious characters to +show up. C1 controls don't seem to suffer from this problem. + +https://bugzilla.gnome.org/show_bug.cgi?id=711059 +https://bugzilla.gnome.org/show_bug.cgi?id=711060 +--- + src/vte.cc | 7 +++++++ + src/vte.sh | 2 +- + src/vte/vteterminal.h | 3 ++- + src/vtegtk.cc | 18 ++++++++++++++++++ + src/vtegtk.hh | 1 + + src/vteinternal.hh | 2 ++ + src/vteseq.cc | 4 ++++ + 7 files changed, 35 insertions(+), 2 deletions(-) + +diff --git a/src/vte.cc b/src/vte.cc +index f88c3a246f70..9e92151feee9 100644 +--- a/src/vte.cc ++++ b/src/vte.cc +@@ -10229,6 +10229,13 @@ Terminal::emit_pending_signals() + m_notification_received = FALSE; + } + ++ if (m_shell_preexec) { ++ _vte_debug_print (VTE_DEBUG_SIGNALS, ++ "Emitting `shell-preexec'.\n"); ++ g_signal_emit(object, signals[SIGNAL_SHELL_PREEXEC], 0); ++ m_shell_preexec = FALSE; ++ } ++ + if (m_window_title_changed) { + if (m_window_title != m_window_title_pending) { + m_window_title.swap(m_window_title_pending); +diff --git a/src/vte.sh b/src/vte.sh +index b75c6dac6f6e..dc4a127c9902 100644 +--- a/src/vte.sh ++++ b/src/vte.sh +@@ -59,7 +59,7 @@ __vte_prompt_command() { + + case "$TERM" in + xterm*|vte*) +- [ -n "$BASH_VERSION" ] && PROMPT_COMMAND="__vte_prompt_command" ++ [ -n "$BASH_VERSION" ] && PROMPT_COMMAND="__vte_prompt_command" && PS0=$(printf "\u009D777;preexec\u009C") + [ -n "$ZSH_VERSION" ] && precmd_functions+=(__vte_osc7) + ;; + esac +diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h +index c8ba72023370..585b3f112bda 100644 +--- a/src/vte/vteterminal.h ++++ b/src/vte/vteterminal.h +@@ -105,9 +105,10 @@ struct _VteTerminalClass { + void (*bell)(VteTerminal* terminal); + + void (*notification_received)(VteTerminal* terminal, const gchar *summary, const gchar *body); ++ void (*shell_preexec)(VteTerminal* terminal); + + /* Padding for future expansion. */ +- gpointer padding[15]; ++ gpointer padding[14]; + + VteTerminalClassPrivate *priv; + }; +diff --git a/src/vtegtk.cc b/src/vtegtk.cc +index be3304027c1b..86a496284ce9 100644 +--- a/src/vtegtk.cc ++++ b/src/vtegtk.cc +@@ -736,6 +736,7 @@ vte_terminal_class_init(VteTerminalClass *klass) + klass->encoding_changed = NULL; + klass->char_size_changed = NULL; + klass->notification_received = NULL; ++ klass->shell_preexec = NULL; + klass->window_title_changed = NULL; + klass->icon_title_changed = NULL; + klass->selection_changed = NULL; +@@ -831,6 +832,23 @@ vte_terminal_class_init(VteTerminalClass *klass) + G_TYPE_NONE, + 2, G_TYPE_STRING, G_TYPE_STRING); + ++ /** ++ * VteTerminal::shell-preexec: ++ * @vteterminal: the object which received the signal ++ * ++ * Emitted when the interactive shell has read in a complete ++ * command and is about to execute it. ++ */ ++ signals[SIGNAL_SHELL_PREEXEC] = ++ g_signal_new(I_("shell-preexec"), ++ G_OBJECT_CLASS_TYPE(klass), ++ G_SIGNAL_RUN_LAST, ++ G_STRUCT_OFFSET(VteTerminalClass, shell_preexec), ++ NULL, ++ NULL, ++ g_cclosure_marshal_VOID__VOID, ++ G_TYPE_NONE, 0); ++ + /** + * VteTerminal::window-title-changed: + * @vteterminal: the object which received the signal +diff --git a/src/vtegtk.hh b/src/vtegtk.hh +index b2c9edfa8246..136ffa3b534d 100644 +--- a/src/vtegtk.hh ++++ b/src/vtegtk.hh +@@ -52,6 +52,7 @@ enum { + SIGNAL_RESIZE_WINDOW, + SIGNAL_RESTORE_WINDOW, + SIGNAL_SELECTION_CHANGED, ++ SIGNAL_SHELL_PREEXEC, + SIGNAL_TEXT_DELETED, + SIGNAL_TEXT_INSERTED, + SIGNAL_TEXT_MODIFIED, +diff --git a/src/vteinternal.hh b/src/vteinternal.hh +index 86a8a6e76751..68cc42493066 100644 +--- a/src/vteinternal.hh ++++ b/src/vteinternal.hh +@@ -545,6 +545,8 @@ public: + std::string m_notification_summary; + std::string m_notification_body; + ++ 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 fbbf4f032f48..1210365679ac 100644 +--- a/src/vteseq.cc ++++ b/src/vteseq.cc +@@ -1360,6 +1360,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, + m_notification_body = *token; + return; + } ++ ++ if (*token == "preexec") { ++ m_shell_preexec = TRUE; ++ } + } + + bool +-- +2.20.1 + + +From 383cffcc9e6cbb90e0e0ca89bc5c28578ce5376f Mon Sep 17 00:00:00 2001 +From: Debarshi Ray +Date: Fri, 20 Apr 2018 18:21:53 +0200 +Subject: [PATCH 7/9] Test the shell-preexec signal + +https://bugzilla.gnome.org/show_bug.cgi?id=711059 +https://bugzilla.gnome.org/show_bug.cgi?id=711060 +--- + bindings/vala/app.vala | 6 ++++++ + src/app/app.cc | 7 +++++++ + 2 files changed, 13 insertions(+) + +diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala +index 61b8ec8edd24..12114e2f445e 100644 +--- a/bindings/vala/app.vala ++++ b/bindings/vala/app.vala +@@ -310,6 +310,7 @@ class Window : Gtk.ApplicationWindow + terminal.notify.connect(notify_cb); + + terminal.notification_received.connect(notification_received_cb); ++ terminal.shell_preexec.connect(shell_preexec_cb); + + /* Settings */ + if (App.Options.no_double_buffer) +@@ -788,6 +789,11 @@ class Window : Gtk.ApplicationWindow + print ("[%s]: %s\n", summary, body); + } + ++ private void shell_preexec_cb(Vte.Terminal terminal) ++ { ++ print("[shell] executing command\n"); ++ } ++ + } /* class Window */ + + class App : Gtk.Application +diff --git a/src/app/app.cc b/src/app/app.cc +index 8632061920d6..f98d60e0ba6b 100644 +--- a/src/app/app.cc ++++ b/src/app/app.cc +@@ -1682,6 +1682,12 @@ notification_received_cb(VteTerminal *terminal, + g_print("[%s]: %s\n", summary, body); + } + ++static void ++shell_preexec_cb(VteTerminal *terminal) ++{ ++ g_print("[shell] executing command\n"); ++} ++ + static void + window_lower_window_cb(VteTerminal* terminal, + VteappWindow* window) +@@ -1911,6 +1917,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); ++ g_signal_connect(window->terminal, "shell-preexec", G_CALLBACK(shell_preexec_cb), NULL); + + /* Settings */ + if (options.no_double_buffer) +-- +2.20.1 + + +From 15093cdbae20a266f02aa9ed9cdd7999e5857664 Mon Sep 17 00:00:00 2001 +From: Debarshi Ray +Date: Wed, 2 May 2018 17:20:30 +0200 +Subject: [PATCH 8/9] Support precmd notifications from an interactive shell + +Add sequences + OSC 777 ; precmd BEL + OSC 777 ; precmd ST + +that can be used from an interactive shell's precmd hook to notify the +terminal emulator that a first level prompt is about to be shown. +Examples of such hooks are Bash's PROMPT_COMMAND and Zsh's precmd. + +The OSC 777 escape sequence is taken from Enlightenment's Terminology: +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.sh | 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(-) + +diff --git a/src/vte.cc b/src/vte.cc +index 9e92151feee9..2a454cc10da3 100644 +--- a/src/vte.cc ++++ b/src/vte.cc +@@ -10236,6 +10236,13 @@ Terminal::emit_pending_signals() + m_shell_preexec = FALSE; + } + ++ if (m_shell_precmd) { ++ _vte_debug_print (VTE_DEBUG_SIGNALS, ++ "Emitting `shell-precmd'.\n"); ++ g_signal_emit(object, signals[SIGNAL_SHELL_PRECMD], 0); ++ m_shell_precmd = FALSE; ++ } ++ + if (m_window_title_changed) { + if (m_window_title != m_window_title_pending) { + m_window_title.swap(m_window_title_pending); +diff --git a/src/vte.sh b/src/vte.sh +index dc4a127c9902..c1d6ee2c6f1d 100644 +--- a/src/vte.sh ++++ b/src/vte.sh +@@ -54,7 +54,7 @@ __vte_prompt_command() { + command="${command//;/ }" + local pwd='~' + [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} +- printf '\033]777;notify;Command completed;%s\033\\\033]0;%s@%s:%s\033\\%s' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" ++ printf '\033]777;notify;Command completed;%s\033\\\033]777;precmd\033\\\033]0;%s@%s:%s\033\\%s' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" + } + + case "$TERM" in +diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h +index 585b3f112bda..cb265294c96f 100644 +--- a/src/vte/vteterminal.h ++++ b/src/vte/vteterminal.h +@@ -105,10 +105,11 @@ struct _VteTerminalClass { + void (*bell)(VteTerminal* terminal); + + void (*notification_received)(VteTerminal* terminal, const gchar *summary, const gchar *body); ++ void (*shell_precmd)(VteTerminal* terminal); + void (*shell_preexec)(VteTerminal* terminal); + + /* Padding for future expansion. */ +- gpointer padding[14]; ++ gpointer padding[13]; + + VteTerminalClassPrivate *priv; + }; +diff --git a/src/vtegtk.cc b/src/vtegtk.cc +index 86a496284ce9..146173a3423f 100644 +--- a/src/vtegtk.cc ++++ b/src/vtegtk.cc +@@ -736,6 +736,7 @@ vte_terminal_class_init(VteTerminalClass *klass) + klass->encoding_changed = NULL; + klass->char_size_changed = NULL; + klass->notification_received = NULL; ++ klass->shell_precmd = NULL; + klass->shell_preexec = NULL; + klass->window_title_changed = NULL; + klass->icon_title_changed = NULL; +@@ -832,6 +833,23 @@ vte_terminal_class_init(VteTerminalClass *klass) + G_TYPE_NONE, + 2, G_TYPE_STRING, G_TYPE_STRING); + ++ /** ++ * VteTerminal::shell-precmd: ++ * @vteterminal: the object which received the signal ++ * ++ * Emitted right before an interactive shell shows a ++ * first-level prompt. ++ */ ++ signals[SIGNAL_SHELL_PRECMD] = ++ g_signal_new(I_("shell-precmd"), ++ G_OBJECT_CLASS_TYPE(klass), ++ G_SIGNAL_RUN_LAST, ++ G_STRUCT_OFFSET(VteTerminalClass, shell_precmd), ++ NULL, ++ NULL, ++ g_cclosure_marshal_VOID__VOID, ++ G_TYPE_NONE, 0); ++ + /** + * VteTerminal::shell-preexec: + * @vteterminal: the object which received the signal +diff --git a/src/vtegtk.hh b/src/vtegtk.hh +index 136ffa3b534d..bae75f4b1f6a 100644 +--- a/src/vtegtk.hh ++++ b/src/vtegtk.hh +@@ -52,6 +52,7 @@ enum { + SIGNAL_RESIZE_WINDOW, + SIGNAL_RESTORE_WINDOW, + SIGNAL_SELECTION_CHANGED, ++ SIGNAL_SHELL_PRECMD, + SIGNAL_SHELL_PREEXEC, + SIGNAL_TEXT_DELETED, + SIGNAL_TEXT_INSERTED, +diff --git a/src/vteinternal.hh b/src/vteinternal.hh +index 68cc42493066..c46eb390a0a2 100644 +--- a/src/vteinternal.hh ++++ b/src/vteinternal.hh +@@ -545,6 +545,7 @@ public: + std::string m_notification_summary; + std::string m_notification_body; + ++ gboolean m_shell_precmd; + gboolean m_shell_preexec; + + std::string m_window_title{}; +diff --git a/src/vteseq.cc b/src/vteseq.cc +index 1210365679ac..0aa6756f1904 100644 +--- a/src/vteseq.cc ++++ b/src/vteseq.cc +@@ -1361,7 +1361,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, + return; + } + +- if (*token == "preexec") { ++ if (*token == "precmd") { ++ m_shell_precmd = TRUE; ++ } else if (*token == "preexec") { + m_shell_preexec = TRUE; + } + } +-- +2.20.1 + + +From 32b2ca2da4d583ea81d835836a8835c3ad3f40f9 Mon Sep 17 00:00:00 2001 +From: Debarshi Ray +Date: Wed, 2 May 2018 17:30:48 +0200 +Subject: [PATCH 9/9] Test the shell-precmd signal + +https://bugzilla.gnome.org/show_bug.cgi?id=711059 +https://bugzilla.gnome.org/show_bug.cgi?id=711060 +--- + bindings/vala/app.vala | 6 ++++++ + src/app/app.cc | 7 +++++++ + 2 files changed, 13 insertions(+) + +diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala +index 12114e2f445e..169302460c68 100644 +--- a/bindings/vala/app.vala ++++ b/bindings/vala/app.vala +@@ -310,6 +310,7 @@ class Window : Gtk.ApplicationWindow + terminal.notify.connect(notify_cb); + + terminal.notification_received.connect(notification_received_cb); ++ terminal.shell_precmd.connect(shell_precmd_cb); + terminal.shell_preexec.connect(shell_preexec_cb); + + /* Settings */ +@@ -789,6 +790,11 @@ class Window : Gtk.ApplicationWindow + print ("[%s]: %s\n", summary, body); + } + ++ private void shell_precmd_cb(Vte.Terminal terminal) ++ { ++ print("[shell] showing command prompt\n"); ++ } ++ + private void shell_preexec_cb(Vte.Terminal terminal) + { + print("[shell] executing command\n"); +diff --git a/src/app/app.cc b/src/app/app.cc +index f98d60e0ba6b..60fcda232881 100644 +--- a/src/app/app.cc ++++ b/src/app/app.cc +@@ -1682,6 +1682,12 @@ notification_received_cb(VteTerminal *terminal, + g_print("[%s]: %s\n", summary, body); + } + ++static void ++shell_precmd_cb(VteTerminal *terminal) ++{ ++ g_print("[shell] showing command prompt\n"); ++} ++ + static void + shell_preexec_cb(VteTerminal *terminal) + { +@@ -1917,6 +1923,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); ++ g_signal_connect(window->terminal, "shell-precmd", G_CALLBACK(shell_precmd_cb), NULL); + g_signal_connect(window->terminal, "shell-preexec", G_CALLBACK(shell_preexec_cb), NULL); + + /* Settings */ +-- +2.20.1 diff --git a/vte291.spec b/vte291.spec index 48750ec..39a155a 100644 --- a/vte291.spec +++ b/vte291.spec @@ -6,7 +6,7 @@ Name: vte291 Version: 0.56.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -103,6 +103,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Tue Apr 02 2019 Debarshi Ray - 0.56.0-2 +- Add signals proxying an interactive shell's precmd and preexec hooks. + * Mon Mar 11 2019 Kalev Lember - 0.56.0-1 - Update to 0.56.0 From 3f4ccc66c7ba730586164b7dd25378775b9efb26 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Tue, 9 Apr 2019 11:28:37 +0200 Subject: [PATCH 031/164] Update to 0.56.1 --- .gitignore | 1 + sources | 2 +- vte291.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index b29ef41..37aa25f 100644 --- a/.gitignore +++ b/.gitignore @@ -49,3 +49,4 @@ /vte-0.55.90.tar.xz /vte-0.55.92.tar.xz /vte-0.56.0.tar.xz +/vte-0.56.1.tar.xz diff --git a/sources b/sources index 6d11e23..86af47e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.56.0.tar.xz) = f366ed4a28a896ba919184b50a55ee110eae43127847f34c049684bcb9b81327d1b72e9d871b2a5b7f7fa12f3f4aa721ac3d770770b600dca9c433cb2c674915 +SHA512 (vte-0.56.1.tar.xz) = 74a6404d4e8f13e8b006c59e8cd63e660407ef217c1f80bfd7d0b72c395411558929760c1d98eea9ecb9010df725506c31c953b23e541c03f4a8a93e78066436 diff --git a/vte291.spec b/vte291.spec index 39a155a..e7b3790 100644 --- a/vte291.spec +++ b/vte291.spec @@ -5,8 +5,8 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.56.0 -Release: 2%{?dist} +Version: 0.56.1 +Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -103,6 +103,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Tue Apr 09 2019 Kalev Lember - 0.56.1-1 +- Update to 0.56.1 + * Tue Apr 02 2019 Debarshi Ray - 0.56.0-2 - Add signals proxying an interactive shell's precmd and preexec hooks. From 967e18681480ff9f700486ef0165ce8817a8c5c9 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Mon, 6 May 2019 11:51:04 +0200 Subject: [PATCH 032/164] Update to 0.56.2 --- .gitignore | 1 + sources | 2 +- vte291.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 37aa25f..7411a12 100644 --- a/.gitignore +++ b/.gitignore @@ -50,3 +50,4 @@ /vte-0.55.92.tar.xz /vte-0.56.0.tar.xz /vte-0.56.1.tar.xz +/vte-0.56.2.tar.xz diff --git a/sources b/sources index 86af47e..09ffbe3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.56.1.tar.xz) = 74a6404d4e8f13e8b006c59e8cd63e660407ef217c1f80bfd7d0b72c395411558929760c1d98eea9ecb9010df725506c31c953b23e541c03f4a8a93e78066436 +SHA512 (vte-0.56.2.tar.xz) = 8327a77abdfd97d7feda358e767046054ee24f9302c9187f2979e22c0034d4a6e9bf271fc327b866a43b404d7fe50ac36d1a4aebd58340744bdde24ecaa415ad diff --git a/vte291.spec b/vte291.spec index e7b3790..df06353 100644 --- a/vte291.spec +++ b/vte291.spec @@ -5,7 +5,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.56.1 +Version: 0.56.2 Release: 1%{?dist} Summary: Terminal emulator library @@ -103,6 +103,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon May 06 2019 Kalev Lember - 0.56.2-1 +- Update to 0.56.2 + * Tue Apr 09 2019 Kalev Lember - 0.56.1-1 - Update to 0.56.1 From a7cf96e18cd6bd7d6f25844296f089f8f39a66cd Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Tue, 7 May 2019 03:31:09 +0200 Subject: [PATCH 033/164] Update to 0.56.3 --- .gitignore | 1 + sources | 2 +- vte291-command-notify-scroll-speed.patch | 94 ++++++++++++------------ vte291.spec | 7 +- 4 files changed, 54 insertions(+), 50 deletions(-) diff --git a/.gitignore b/.gitignore index 7411a12..82c1b17 100644 --- a/.gitignore +++ b/.gitignore @@ -51,3 +51,4 @@ /vte-0.56.0.tar.xz /vte-0.56.1.tar.xz /vte-0.56.2.tar.xz +/vte-0.56.3.tar.xz diff --git a/sources b/sources index 09ffbe3..6d62c77 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.56.2.tar.xz) = 8327a77abdfd97d7feda358e767046054ee24f9302c9187f2979e22c0034d4a6e9bf271fc327b866a43b404d7fe50ac36d1a4aebd58340744bdde24ecaa415ad +SHA512 (vte-0.56.3.tar.xz) = f78b3d532ca47e53c1bb51db6780697ce4692d493c0030d2dc4beb63a2595e44a43eb409ee31b94e4551eae259ac1baa8f06825a02fd66df8352e192f4ea1988 diff --git a/vte291-command-notify-scroll-speed.patch b/vte291-command-notify-scroll-speed.patch index 53dca50..361a60c 100644 --- a/vte291-command-notify-scroll-speed.patch +++ b/vte291-command-notify-scroll-speed.patch @@ -1,4 +1,4 @@ -From 164096495a6a44a5ccfd4f05f56d132be6b6f765 Mon Sep 17 00:00:00 2001 +From 7ea398739da14b1e377655b0651c10edcf664200 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 1/9] Add sequences and signals for desktop notification @@ -38,10 +38,10 @@ index 1e4d0c1b6476..3385b4759713 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index af01264ea240..03de88245269 100644 +index 0e799cef38e9..802ce6df34a6 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10203,6 +10203,15 @@ Terminal::emit_pending_signals() +@@ -10216,6 +10216,15 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); @@ -125,7 +125,7 @@ index c49754ef38ee..126d29326f11 100644 LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 58cb0479c5c4..7de222442663 100644 +index 9010b9b01816..eb2cda249ee1 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -539,6 +539,11 @@ public: @@ -140,7 +140,7 @@ index 58cb0479c5c4..7de222442663 100644 std::string m_window_title{}; std::string m_current_directory_uri{}; std::string m_current_file_uri{}; -@@ -1269,6 +1274,9 @@ public: +@@ -1270,6 +1275,9 @@ public: int osc) noexcept; /* OSC handlers */ @@ -209,10 +209,10 @@ index d596d8b9f56f..fbbf4f032f48 100644 default: break; -- -2.20.1 +2.21.0 -From d6c7e381d801680ceaff2859e83bffa272befc12 Mon Sep 17 00:00:00 2001 +From 70ea93584a0cb19492c0dd52155112eaa4d54aed Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 Subject: [PATCH 2/9] vte.sh: Emit OSC 777 from PROMPT_COMMAND @@ -244,10 +244,10 @@ index 6d1a8734c479..b75c6dac6f6e 100644 case "$TERM" in -- -2.20.1 +2.21.0 -From 15e68b0935424533d95e6f31f4f094387251346d Mon Sep 17 00:00:00 2001 +From b3635ba1c60f123799e1e923c3492a117a700b46 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 Subject: [PATCH 3/9] Test the notification-received signal @@ -283,10 +283,10 @@ index a534e76b7f42..138d453d5d98 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 81193a07a045..14a31fe3cddf 100644 +index ba76c9b37315..db022476e95e 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1671,6 +1671,14 @@ window_window_title_changed_cb(VteTerminal* terminal, +@@ -1673,6 +1673,14 @@ window_window_title_changed_cb(VteTerminal* terminal, vte_terminal_get_window_title(window->terminal)); } @@ -301,7 +301,7 @@ index 81193a07a045..14a31fe3cddf 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -1899,6 +1907,8 @@ vteapp_window_constructed(GObject *object) +@@ -1901,6 +1909,8 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); @@ -311,10 +311,10 @@ index 81193a07a045..14a31fe3cddf 100644 if (options.no_double_buffer) gtk_widget_set_double_buffered(GTK_WIDGET(window->terminal), false); -- -2.20.1 +2.21.0 -From eed36f6b71b485e104ad4e026601177eba0491db Mon Sep 17 00:00:00 2001 +From d54f3a1a1223e66a0631b739975bbce592eee62e Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 Subject: [PATCH 4/9] Add a property to configure the scroll speed @@ -345,10 +345,10 @@ index 9ab873c17bfc..7b94f4df9a30 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index 03de88245269..f88c3a246f70 100644 +index 802ce6df34a6..49e4007090d2 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9451,6 +9451,7 @@ void +@@ -9462,6 +9462,7 @@ void Terminal::widget_scroll(GdkEventScroll *event) { gdouble delta_x, delta_y; @@ -356,7 +356,7 @@ index 03de88245269..f88c3a246f70 100644 gdouble v; gint cnt, i; int button; -@@ -9504,7 +9505,13 @@ Terminal::widget_scroll(GdkEventScroll *event) +@@ -9515,7 +9516,13 @@ Terminal::widget_scroll(GdkEventScroll *event) return; } @@ -371,7 +371,7 @@ index 03de88245269..f88c3a246f70 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -9765,6 +9772,16 @@ Terminal::decscusr_cursor_shape() +@@ -9776,6 +9783,16 @@ Terminal::decscusr_cursor_shape() } } @@ -493,7 +493,7 @@ index 126d29326f11..b2c9edfa8246 100644 PROP_SCROLL_ON_KEYSTROKE, PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 7de222442663..86a8a6e76751 100644 +index eb2cda249ee1..17c844137e31 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -418,6 +418,7 @@ public: @@ -504,19 +504,19 @@ index 7de222442663..86a8a6e76751 100644 vte::grid::row_t m_scrollback_lines; /* Restricted scrolling */ -@@ -1147,6 +1148,7 @@ public: - bool set_mouse_autohide(bool autohide); - bool set_pty(VtePty *pty); +@@ -1148,6 +1149,7 @@ public: + bool set_pty(VtePty *pty, + bool proces_remaining = true); 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); -- -2.20.1 +2.21.0 -From dd925ba940c291294b86c7913cb6345fe2d00110 Mon Sep 17 00:00:00 2001 +From 817a1f9047b62a72285e5c7a2905f1587f56b520 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 Subject: [PATCH 5/9] Test the scroll-speed property @@ -557,7 +557,7 @@ index 138d453d5d98..61b8ec8edd24 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 14a31fe3cddf..8632061920d6 100644 +index db022476e95e..9dbd3d21c3cb 100644 --- a/src/app/app.cc +++ b/src/app/app.cc @@ -93,6 +93,7 @@ public: @@ -577,7 +577,7 @@ index 14a31fe3cddf..8632061920d6 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, -@@ -1937,6 +1940,7 @@ vteapp_window_constructed(GObject *object) +@@ -1939,6 +1942,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); @@ -586,10 +586,10 @@ index 14a31fe3cddf..8632061920d6 100644 vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); -- -2.20.1 +2.21.0 -From 0c676b11d79cfdcdf6607be27b721ac2fa4454ce Mon Sep 17 00:00:00 2001 +From 9e2b4809052e1c4d38a9355d1171da38d0b1445e Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 6/9] Support preexec notifications from an interactive shell @@ -622,10 +622,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index f88c3a246f70..9e92151feee9 100644 +index 49e4007090d2..7b00500b28a2 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10229,6 +10229,13 @@ Terminal::emit_pending_signals() +@@ -10242,6 +10242,13 @@ Terminal::emit_pending_signals() m_notification_received = FALSE; } @@ -717,7 +717,7 @@ index b2c9edfa8246..136ffa3b534d 100644 SIGNAL_TEXT_INSERTED, SIGNAL_TEXT_MODIFIED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 86a8a6e76751..68cc42493066 100644 +index 17c844137e31..e9a346b617b8 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -545,6 +545,8 @@ public: @@ -745,10 +745,10 @@ index fbbf4f032f48..1210365679ac 100644 bool -- -2.20.1 +2.21.0 -From 383cffcc9e6cbb90e0e0ca89bc5c28578ce5376f Mon Sep 17 00:00:00 2001 +From 00f5cd9d9137247ce0dc188b68665a193968047b Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 20 Apr 2018 18:21:53 +0200 Subject: [PATCH 7/9] Test the shell-preexec signal @@ -785,10 +785,10 @@ index 61b8ec8edd24..12114e2f445e 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 8632061920d6..f98d60e0ba6b 100644 +index 9dbd3d21c3cb..77fe1fa09eaf 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1682,6 +1682,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1684,6 +1684,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -801,7 +801,7 @@ index 8632061920d6..f98d60e0ba6b 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -1911,6 +1917,7 @@ vteapp_window_constructed(GObject *object) +@@ -1913,6 +1919,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); @@ -810,10 +810,10 @@ index 8632061920d6..f98d60e0ba6b 100644 /* Settings */ if (options.no_double_buffer) -- -2.20.1 +2.21.0 -From 15093cdbae20a266f02aa9ed9cdd7999e5857664 Mon Sep 17 00:00:00 2001 +From 49db30c4531daddf9265bf2a81218c302dde5c51 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:20:30 +0200 Subject: [PATCH 8/9] Support precmd notifications from an interactive shell @@ -842,10 +842,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 9e92151feee9..2a454cc10da3 100644 +index 7b00500b28a2..3b8517682278 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10236,6 +10236,13 @@ Terminal::emit_pending_signals() +@@ -10249,6 +10249,13 @@ Terminal::emit_pending_signals() m_shell_preexec = FALSE; } @@ -938,7 +938,7 @@ index 136ffa3b534d..bae75f4b1f6a 100644 SIGNAL_TEXT_DELETED, SIGNAL_TEXT_INSERTED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 68cc42493066..c46eb390a0a2 100644 +index e9a346b617b8..92509fa5bf53 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -545,6 +545,7 @@ public: @@ -965,10 +965,10 @@ index 1210365679ac..0aa6756f1904 100644 } } -- -2.20.1 +2.21.0 -From 32b2ca2da4d583ea81d835836a8835c3ad3f40f9 Mon Sep 17 00:00:00 2001 +From cd29674f7db2ef239fe2160b2aac4e803b7c4497 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:30:48 +0200 Subject: [PATCH 9/9] Test the shell-precmd signal @@ -1005,10 +1005,10 @@ index 12114e2f445e..169302460c68 100644 { print("[shell] executing command\n"); diff --git a/src/app/app.cc b/src/app/app.cc -index f98d60e0ba6b..60fcda232881 100644 +index 77fe1fa09eaf..fa7bc0d20004 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1682,6 +1682,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1684,6 +1684,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -1021,7 +1021,7 @@ index f98d60e0ba6b..60fcda232881 100644 static void shell_preexec_cb(VteTerminal *terminal) { -@@ -1917,6 +1923,7 @@ vteapp_window_constructed(GObject *object) +@@ -1919,6 +1925,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); @@ -1030,5 +1030,5 @@ index f98d60e0ba6b..60fcda232881 100644 /* Settings */ -- -2.20.1 +2.21.0 diff --git a/vte291.spec b/vte291.spec index df06353..a4c1938 100644 --- a/vte291.spec +++ b/vte291.spec @@ -1,11 +1,11 @@ %global apiver 2.91 %global gnutls_version 3.2.7 -%global gtk3_version 3.8.0 +%global gtk3_version 3.19.5 %global pcre2_version 10.21 Name: vte291 -Version: 0.56.2 +Version: 0.56.3 Release: 1%{?dist} Summary: Terminal emulator library @@ -103,6 +103,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Tue May 07 2019 Kalev Lember - 0.56.3-1 +- Update to 0.56.3 + * Mon May 06 2019 Kalev Lember - 0.56.2-1 - Update to 0.56.2 From 355cf28ad26de82ec04e111467a16d46f25eb8cb Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Tue, 18 Jun 2019 20:59:54 +0200 Subject: [PATCH 034/164] Update to 0.57.0 - Switch to the Meson build system - Rebase downstream patches --- .gitignore | 1 + sources | 2 +- vte291-command-notify-scroll-speed.patch | 162 +++++++++++------------ vte291.spec | 31 +++-- 4 files changed, 98 insertions(+), 98 deletions(-) diff --git a/.gitignore b/.gitignore index 82c1b17..c5f5995 100644 --- a/.gitignore +++ b/.gitignore @@ -52,3 +52,4 @@ /vte-0.56.1.tar.xz /vte-0.56.2.tar.xz /vte-0.56.3.tar.xz +/vte-0.57.0.tar.xz diff --git a/sources b/sources index 6d62c77..6dd7488 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.56.3.tar.xz) = f78b3d532ca47e53c1bb51db6780697ce4692d493c0030d2dc4beb63a2595e44a43eb409ee31b94e4551eae259ac1baa8f06825a02fd66df8352e192f4ea1988 +SHA512 (vte-0.57.0.tar.xz) = 87788ed44b39d57cf6d0ff99046ab575c8a410a0713e8f7404ada1239a1691f687b689a0b692f1bfe84ba7c38308382da409bab0780b1168d0ba99bbc0eb7b4f diff --git a/vte291-command-notify-scroll-speed.patch b/vte291-command-notify-scroll-speed.patch index 361a60c..1351cee 100644 --- a/vte291-command-notify-scroll-speed.patch +++ b/vte291-command-notify-scroll-speed.patch @@ -1,4 +1,4 @@ -From 7ea398739da14b1e377655b0651c10edcf664200 Mon Sep 17 00:00:00 2001 +From e4f4b9498dda3fa850bc9d40d8e0537b533c502e Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 1/9] Add sequences and signals for desktop notification @@ -38,21 +38,21 @@ index 1e4d0c1b6476..3385b4759713 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index 0e799cef38e9..802ce6df34a6 100644 +index 0aa9a3fc6b42..cef9a05be18a 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10216,6 +10216,15 @@ Terminal::emit_pending_signals() +@@ -10205,6 +10205,15 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); -+ if (m_notification_received) { ++ if (m_notification_received) { + _vte_debug_print (VTE_DEBUG_SIGNALS, + "Emitting `notification-received'.\n"); + g_signal_emit(object, signals[SIGNAL_NOTIFICATION_RECEIVED], 0, + m_notification_summary.c_str(), + m_notification_body.c_str()); -+ m_notification_received = FALSE; -+ } ++ m_notification_received = false; ++ } + if (m_window_title_changed) { if (m_window_title != m_window_title_pending) { @@ -74,10 +74,10 @@ index 26ac236ef4ea..abf1a38cb20d 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index ea8b3208542c..4f67c186d245 100644 +index c47a5c4a9d2b..03570d4c5554 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -729,6 +729,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -727,6 +727,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->child_exited = NULL; klass->encoding_changed = NULL; klass->char_size_changed = NULL; @@ -85,7 +85,7 @@ index ea8b3208542c..4f67c186d245 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -804,6 +805,26 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -802,6 +803,26 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 1, G_TYPE_INT); @@ -125,7 +125,7 @@ index c49754ef38ee..126d29326f11 100644 LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 9010b9b01816..eb2cda249ee1 100644 +index 58cb0479c5c4..dd4bd37c38e1 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -539,6 +539,11 @@ public: @@ -133,14 +133,14 @@ index 9010b9b01816..eb2cda249ee1 100644 gboolean m_contents_changed_pending; + /* desktop notification */ -+ gboolean m_notification_received; ++ 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{}; -@@ -1270,6 +1275,9 @@ public: +@@ -1269,6 +1274,9 @@ public: int osc) noexcept; /* OSC handlers */ @@ -151,7 +151,7 @@ index 9010b9b01816..eb2cda249ee1 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 d596d8b9f56f..fbbf4f032f48 100644 +index d596d8b9f56f..942ae5126a3e 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc @@ -1334,6 +1334,34 @@ Terminal::delete_lines(vte::grid::row_t param) @@ -175,7 +175,7 @@ index d596d8b9f56f..fbbf4f032f48 100644 + + m_notification_summary = *token; + m_notification_body.clear(); -+ m_notification_received = TRUE; ++ m_notification_received = true; + ++token; + + if (token == endtoken) @@ -209,10 +209,10 @@ index d596d8b9f56f..fbbf4f032f48 100644 default: break; -- -2.21.0 +2.20.1 -From 70ea93584a0cb19492c0dd52155112eaa4d54aed Mon Sep 17 00:00:00 2001 +From 64d5096aeb6bb49581f9cc54851afa3d54506289 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 Subject: [PATCH 2/9] vte.sh: Emit OSC 777 from PROMPT_COMMAND @@ -244,10 +244,10 @@ index 6d1a8734c479..b75c6dac6f6e 100644 case "$TERM" in -- -2.21.0 +2.20.1 -From b3635ba1c60f123799e1e923c3492a117a700b46 Mon Sep 17 00:00:00 2001 +From 64f46c2a7a5d51cefdffb928855a0d86d5204480 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 Subject: [PATCH 3/9] Test the notification-received signal @@ -258,17 +258,17 @@ Subject: [PATCH 3/9] Test the notification-received signal 2 files changed, 17 insertions(+) diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala -index a534e76b7f42..138d453d5d98 100644 +index fc26c2b0dfc3..634b8ddeeb91 100644 --- a/bindings/vala/app.vala +++ b/bindings/vala/app.vala @@ -309,6 +309,8 @@ class Window : Gtk.ApplicationWindow - if (App.Options.object_notifications) + if (Options.object_notifications) terminal.notify.connect(notify_cb); + terminal.notification_received.connect(notification_received_cb); + /* Settings */ - if (App.Options.no_double_buffer) + if (Options.no_double_buffer) terminal.set_double_buffered(false); @@ -780,6 +782,11 @@ class Window : Gtk.ApplicationWindow set_title(terminal.get_window_title()); @@ -283,10 +283,10 @@ index a534e76b7f42..138d453d5d98 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index ba76c9b37315..db022476e95e 100644 +index 495bdcfa3768..8ae589ad2449 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1673,6 +1673,14 @@ window_window_title_changed_cb(VteTerminal* terminal, +@@ -1671,6 +1671,14 @@ window_window_title_changed_cb(VteTerminal* terminal, vte_terminal_get_window_title(window->terminal)); } @@ -301,7 +301,7 @@ index ba76c9b37315..db022476e95e 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -1901,6 +1909,8 @@ vteapp_window_constructed(GObject *object) +@@ -1899,6 +1907,8 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); @@ -311,10 +311,10 @@ index ba76c9b37315..db022476e95e 100644 if (options.no_double_buffer) gtk_widget_set_double_buffered(GTK_WIDGET(window->terminal), false); -- -2.21.0 +2.20.1 -From d54f3a1a1223e66a0631b739975bbce592eee62e Mon Sep 17 00:00:00 2001 +From 2cf8143eed208ff852371eb8b8505a79a58af1a3 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 Subject: [PATCH 4/9] Add a property to configure the scroll speed @@ -345,10 +345,10 @@ index 9ab873c17bfc..7b94f4df9a30 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index 802ce6df34a6..49e4007090d2 100644 +index cef9a05be18a..3ae3c8b33c00 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9462,6 +9462,7 @@ void +@@ -9452,6 +9452,7 @@ void Terminal::widget_scroll(GdkEventScroll *event) { gdouble delta_x, delta_y; @@ -356,7 +356,7 @@ index 802ce6df34a6..49e4007090d2 100644 gdouble v; gint cnt, i; int button; -@@ -9515,7 +9516,13 @@ Terminal::widget_scroll(GdkEventScroll *event) +@@ -9505,7 +9506,13 @@ Terminal::widget_scroll(GdkEventScroll *event) return; } @@ -371,7 +371,7 @@ index 802ce6df34a6..49e4007090d2 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -9776,6 +9783,16 @@ Terminal::decscusr_cursor_shape() +@@ -9766,6 +9773,16 @@ Terminal::decscusr_cursor_shape() } } @@ -404,7 +404,7 @@ index abf1a38cb20d..c8ba72023370 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 4f67c186d245..be3304027c1b 100644 +index 03570d4c5554..b905b82b2514 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -517,6 +517,9 @@ vte_terminal_get_property (GObject *object, @@ -427,7 +427,7 @@ index 4f67c186d245..be3304027c1b 100644 case PROP_SCROLLBACK_LINES: vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); break; -@@ -1564,6 +1570,21 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1562,6 +1568,21 @@ vte_terminal_class_init(VteTerminalClass *klass) TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -449,7 +449,7 @@ index 4f67c186d245..be3304027c1b 100644 /** * VteTerminal:scrollback-lines: * -@@ -4113,6 +4134,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) +@@ -4111,6 +4132,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) return IMPL(terminal)->m_row_count; } @@ -493,7 +493,7 @@ index 126d29326f11..b2c9edfa8246 100644 PROP_SCROLL_ON_KEYSTROKE, PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index eb2cda249ee1..17c844137e31 100644 +index dd4bd37c38e1..9cc246338151 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -418,6 +418,7 @@ public: @@ -504,19 +504,19 @@ index eb2cda249ee1..17c844137e31 100644 vte::grid::row_t m_scrollback_lines; /* Restricted scrolling */ -@@ -1148,6 +1149,7 @@ public: - bool set_pty(VtePty *pty, - bool proces_remaining = true); +@@ -1147,6 +1148,7 @@ public: + bool set_mouse_autohide(bool autohide); + bool set_pty(VtePty *pty); 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); -- -2.21.0 +2.20.1 -From 817a1f9047b62a72285e5c7a2905f1587f56b520 Mon Sep 17 00:00:00 2001 +From 97a9a62f6b99292c1246f8df4ba32bb44728928a Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 Subject: [PATCH 5/9] Test the scroll-speed property @@ -528,18 +528,18 @@ 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 138d453d5d98..61b8ec8edd24 100644 +index 634b8ddeeb91..c984b868246d 100644 --- a/bindings/vala/app.vala +++ b/bindings/vala/app.vala @@ -335,6 +335,7 @@ class Window : Gtk.ApplicationWindow - terminal.set_rewrap_on_resize(!App.Options.no_rewrap); + terminal.set_rewrap_on_resize(!Options.no_rewrap); terminal.set_scroll_on_output(false); terminal.set_scroll_on_keystroke(true); -+ terminal.set_scroll_speed(App.Options.scroll_speed); - terminal.set_scrollback_lines(App.Options.scrollback_lines); ++ terminal.set_scroll_speed(Options.scroll_speed); + terminal.set_scrollback_lines(Options.scrollback_lines); /* Style */ -@@ -858,6 +859,7 @@ class App : Gtk.Application +@@ -857,6 +858,7 @@ class App : Gtk.Application public static bool object_notifications = false; public static string? output_filename = null; public static bool reverse = false; @@ -547,7 +547,7 @@ index 138d453d5d98..61b8ec8edd24 100644 public static int scrollback_lines = 512; public static int transparency_percent = 0; public static bool version = false; -@@ -1051,6 +1053,8 @@ class App : Gtk.Application +@@ -1050,6 +1052,8 @@ class App : Gtk.Application "Save terminal contents to file at exit", null }, { "reverse", 0, 0, OptionArg.NONE, ref reverse, "Reverse foreground/background colors", null }, @@ -557,7 +557,7 @@ index 138d453d5d98..61b8ec8edd24 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 db022476e95e..9dbd3d21c3cb 100644 +index 8ae589ad2449..589bd5679acd 100644 --- a/src/app/app.cc +++ b/src/app/app.cc @@ -93,6 +93,7 @@ public: @@ -577,7 +577,7 @@ index db022476e95e..9dbd3d21c3cb 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, -@@ -1939,6 +1942,7 @@ vteapp_window_constructed(GObject *object) +@@ -1937,6 +1940,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); @@ -586,10 +586,10 @@ index db022476e95e..9dbd3d21c3cb 100644 vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); -- -2.21.0 +2.20.1 -From 9e2b4809052e1c4d38a9355d1171da38d0b1445e Mon Sep 17 00:00:00 2001 +From e63c5ce0cb27e98c81047bfe6bc18baf96173511 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 6/9] Support preexec notifications from an interactive shell @@ -622,12 +622,12 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 49e4007090d2..7b00500b28a2 100644 +index 3ae3c8b33c00..1d5fe099530c 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10242,6 +10242,13 @@ Terminal::emit_pending_signals() - m_notification_received = FALSE; - } +@@ -10231,6 +10231,13 @@ Terminal::emit_pending_signals() + m_notification_received = false; + } + if (m_shell_preexec) { + _vte_debug_print (VTE_DEBUG_SIGNALS, @@ -669,10 +669,10 @@ index c8ba72023370..585b3f112bda 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index be3304027c1b..86a496284ce9 100644 +index b905b82b2514..bed69be640f9 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -736,6 +736,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -734,6 +734,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->encoding_changed = NULL; klass->char_size_changed = NULL; klass->notification_received = NULL; @@ -680,7 +680,7 @@ index be3304027c1b..86a496284ce9 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -831,6 +832,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -829,6 +830,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -717,7 +717,7 @@ index b2c9edfa8246..136ffa3b534d 100644 SIGNAL_TEXT_INSERTED, SIGNAL_TEXT_MODIFIED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 17c844137e31..e9a346b617b8 100644 +index 9cc246338151..db8afddb04b0 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -545,6 +545,8 @@ public: @@ -730,7 +730,7 @@ index 17c844137e31..e9a346b617b8 100644 std::string m_current_directory_uri{}; std::string m_current_file_uri{}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index fbbf4f032f48..1210365679ac 100644 +index 942ae5126a3e..d129ad783799 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc @@ -1360,6 +1360,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, @@ -745,10 +745,10 @@ index fbbf4f032f48..1210365679ac 100644 bool -- -2.21.0 +2.20.1 -From 00f5cd9d9137247ce0dc188b68665a193968047b Mon Sep 17 00:00:00 2001 +From 26f91a29caa140eea0bb72a7d775875181e94965 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 20 Apr 2018 18:21:53 +0200 Subject: [PATCH 7/9] Test the shell-preexec signal @@ -761,7 +761,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 61b8ec8edd24..12114e2f445e 100644 +index c984b868246d..83af686be106 100644 --- a/bindings/vala/app.vala +++ b/bindings/vala/app.vala @@ -310,6 +310,7 @@ class Window : Gtk.ApplicationWindow @@ -771,7 +771,7 @@ index 61b8ec8edd24..12114e2f445e 100644 + terminal.shell_preexec.connect(shell_preexec_cb); /* Settings */ - if (App.Options.no_double_buffer) + if (Options.no_double_buffer) @@ -788,6 +789,11 @@ class Window : Gtk.ApplicationWindow print ("[%s]: %s\n", summary, body); } @@ -785,10 +785,10 @@ index 61b8ec8edd24..12114e2f445e 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 9dbd3d21c3cb..77fe1fa09eaf 100644 +index 589bd5679acd..df0856497f73 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1684,6 +1684,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1682,6 +1682,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -801,7 +801,7 @@ index 9dbd3d21c3cb..77fe1fa09eaf 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -1913,6 +1919,7 @@ vteapp_window_constructed(GObject *object) +@@ -1911,6 +1917,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); @@ -810,10 +810,10 @@ index 9dbd3d21c3cb..77fe1fa09eaf 100644 /* Settings */ if (options.no_double_buffer) -- -2.21.0 +2.20.1 -From 49db30c4531daddf9265bf2a81218c302dde5c51 Mon Sep 17 00:00:00 2001 +From fb89254b387f811a6fd1eda3b7b2449417daf54e Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:20:30 +0200 Subject: [PATCH 8/9] Support precmd notifications from an interactive shell @@ -842,10 +842,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 7b00500b28a2..3b8517682278 100644 +index 1d5fe099530c..459f675fd55c 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10249,6 +10249,13 @@ Terminal::emit_pending_signals() +@@ -10238,6 +10238,13 @@ Terminal::emit_pending_signals() m_shell_preexec = FALSE; } @@ -890,10 +890,10 @@ index 585b3f112bda..cb265294c96f 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 86a496284ce9..146173a3423f 100644 +index bed69be640f9..d94e47e379f8 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -736,6 +736,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -734,6 +734,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->encoding_changed = NULL; klass->char_size_changed = NULL; klass->notification_received = NULL; @@ -901,7 +901,7 @@ index 86a496284ce9..146173a3423f 100644 klass->shell_preexec = NULL; klass->window_title_changed = NULL; klass->icon_title_changed = NULL; -@@ -832,6 +833,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -830,6 +831,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -938,7 +938,7 @@ index 136ffa3b534d..bae75f4b1f6a 100644 SIGNAL_TEXT_DELETED, SIGNAL_TEXT_INSERTED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index e9a346b617b8..92509fa5bf53 100644 +index db8afddb04b0..d81ac011dba5 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -545,6 +545,7 @@ public: @@ -950,7 +950,7 @@ index e9a346b617b8..92509fa5bf53 100644 std::string m_window_title{}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 1210365679ac..0aa6756f1904 100644 +index d129ad783799..d50439dbf0c7 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc @@ -1361,7 +1361,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, @@ -965,10 +965,10 @@ index 1210365679ac..0aa6756f1904 100644 } } -- -2.21.0 +2.20.1 -From cd29674f7db2ef239fe2160b2aac4e803b7c4497 Mon Sep 17 00:00:00 2001 +From 19dec41cd5d5c42778a807cf43f52476ede2ab0f Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:30:48 +0200 Subject: [PATCH 9/9] Test the shell-precmd signal @@ -981,7 +981,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 12114e2f445e..169302460c68 100644 +index 83af686be106..300384f5c74b 100644 --- a/bindings/vala/app.vala +++ b/bindings/vala/app.vala @@ -310,6 +310,7 @@ class Window : Gtk.ApplicationWindow @@ -1005,10 +1005,10 @@ index 12114e2f445e..169302460c68 100644 { print("[shell] executing command\n"); diff --git a/src/app/app.cc b/src/app/app.cc -index 77fe1fa09eaf..fa7bc0d20004 100644 +index df0856497f73..37e06daf742f 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1684,6 +1684,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1682,6 +1682,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -1021,7 +1021,7 @@ index 77fe1fa09eaf..fa7bc0d20004 100644 static void shell_preexec_cb(VteTerminal *terminal) { -@@ -1919,6 +1925,7 @@ vteapp_window_constructed(GObject *object) +@@ -1917,6 +1923,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); @@ -1030,5 +1030,5 @@ index 77fe1fa09eaf..fa7bc0d20004 100644 /* Settings */ -- -2.21.0 +2.20.1 diff --git a/vte291.spec b/vte291.spec index a4c1938..1e6b479 100644 --- a/vte291.spec +++ b/vte291.spec @@ -2,16 +2,17 @@ %global gnutls_version 3.2.7 %global gtk3_version 3.19.5 +%global pango_version 1.22.0 %global pcre2_version 10.21 Name: vte291 -Version: 0.56.3 +Version: 0.57.0 Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ URL: http://www.gnome.org/ -Source0: http://download.gnome.org/sources/vte/0.56/vte-%{version}.tar.xz +Source0: http://download.gnome.org/sources/vte/0.57/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 @@ -22,13 +23,16 @@ BuildRequires: gettext BuildRequires: pkgconfig(gnutls) >= %{gnutls_version} BuildRequires: gobject-introspection-devel BuildRequires: gperf +BuildRequires: gtk-doc +BuildRequires: meson BuildRequires: pkgconfig(gtk+-3.0) >= %{gtk3_version} BuildRequires: pkgconfig(libpcre2-8) >= %{pcre2_version} -BuildRequires: intltool +BuildRequires: pkgconfig(pango) >= %{pango_version} BuildRequires: vala Requires: gnutls%{?_isa} >= %{gnutls_version} Requires: gtk3%{?_isa} >= %{gtk3_version} +Requires: pango >= %{pango_version} Requires: pcre2%{?_isa} >= %{pcre2_version} Requires: vte-profile @@ -66,21 +70,11 @@ emulator library. %patch100 -p1 -b .command-notify-scroll-speed %build -CFLAGS="%optflags -fPIE -DPIE -Wno-nonnull" \ -CXXFLAGS="$CFLAGS" \ -LDFLAGS="$LDFLAGS -Wl,-z,relro -Wl,-z,now -pie" \ -%configure \ - --disable-static \ - --libexecdir=%{_libdir}/vte-%{apiver} \ - --disable-gtk-doc \ - --disable-silent-rules \ - --enable-introspection -%make_build +%meson --buildtype=plain -Ddocs=true +%meson_build %install -%make_install - -rm -f $RPM_BUILD_ROOT%{_libdir}/*.la +%meson_install %find_lang vte-%{apiver} @@ -103,6 +97,11 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la %{_sysconfdir}/profile.d/vte.sh %changelog +* Tue Jun 18 2019 Debarshi Ray - 0.57.0-1 +- Update to 0.57.0 +- Switch to the Meson build system +- Rebase downstream patches + * Tue May 07 2019 Kalev Lember - 0.56.3-1 - Update to 0.56.3 From 3a1a7ca5f75e6b57717f748757a534a7d75301e2 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 19 Jun 2019 15:15:56 +0200 Subject: [PATCH 035/164] Support tracking the active container inside the terminal https://gitlab.freedesktop.org/terminal-wg/specifications/issues/17 --- ...> vte291-cntnr-precmd-preexec-scroll.patch | 317 ++++++++++++++++-- vte291.spec | 9 +- 2 files changed, 293 insertions(+), 33 deletions(-) rename vte291-command-notify-scroll-speed.patch => vte291-cntnr-precmd-preexec-scroll.patch (76%) diff --git a/vte291-command-notify-scroll-speed.patch b/vte291-cntnr-precmd-preexec-scroll.patch similarity index 76% rename from vte291-command-notify-scroll-speed.patch rename to vte291-cntnr-precmd-preexec-scroll.patch index 1351cee..d2ab9f5 100644 --- a/vte291-command-notify-scroll-speed.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,7 +1,7 @@ -From e4f4b9498dda3fa850bc9d40d8e0537b533c502e Mon Sep 17 00:00:00 2001 +From b499620a43f69fe899210a9cba509a6b3999c4a4 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 -Subject: [PATCH 1/9] Add sequences and signals for desktop notification +Subject: [PATCH 01/10] Add sequences and signals for desktop notification Add sequences OSC 777 ; notify ; SUMMARY ; BODY BEL @@ -23,8 +23,8 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711059 src/vtegtk.cc | 21 +++++++++++++++++++++ src/vtegtk.hh | 1 + src/vteinternal.hh | 8 ++++++++ - src/vteseq.cc | 33 ++++++++++++++++++++++++++++++++- - 7 files changed, 75 insertions(+), 2 deletions(-) + src/vteseq.cc | 32 +++++++++++++++++++++++++++++++- + 7 files changed, 74 insertions(+), 2 deletions(-) diff --git a/src/marshal.list b/src/marshal.list index 1e4d0c1b6476..3385b4759713 100644 @@ -151,10 +151,10 @@ index 58cb0479c5c4..dd4bd37c38e1 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 d596d8b9f56f..942ae5126a3e 100644 +index d596d8b9f56f..fcc2cc872f4c 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1334,6 +1334,34 @@ Terminal::delete_lines(vte::grid::row_t param) +@@ -1334,6 +1334,33 @@ Terminal::delete_lines(vte::grid::row_t param) m_text_deleted_flag = TRUE; } @@ -163,9 +163,8 @@ index d596d8b9f56f..942ae5126a3e 100644 + vte::parser::StringTokeniser::const_iterator& token, + vte::parser::StringTokeniser::const_iterator const& endtoken) noexcept +{ -+ if (token == endtoken) { ++ if (token == endtoken) + return; -+ } + + if (*token == "notify") { + ++token; @@ -189,7 +188,7 @@ index d596d8b9f56f..942ae5126a3e 100644 bool Terminal::get_osc_color_index(int osc, int value, -@@ -6411,6 +6439,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6411,6 +6438,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) reset_color(VTE_HIGHLIGHT_FG, VTE_COLOR_SOURCE_ESCAPE); break; @@ -200,7 +199,7 @@ index d596d8b9f56f..942ae5126a3e 100644 case VTE_OSC_XTERM_SET_ICON_TITLE: case VTE_OSC_XTERM_SET_XPROPERTY: case VTE_OSC_XTERM_SET_COLOR_MOUSE_CURSOR_FG: -@@ -6451,7 +6483,6 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6451,7 +6482,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: @@ -212,10 +211,10 @@ index d596d8b9f56f..942ae5126a3e 100644 2.20.1 -From 64d5096aeb6bb49581f9cc54851afa3d54506289 Mon Sep 17 00:00:00 2001 +From 4ad3660c4d2ec7752d665f6b12a46498a3b595d1 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 -Subject: [PATCH 2/9] vte.sh: Emit OSC 777 from PROMPT_COMMAND +Subject: [PATCH 02/10] 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 @@ -247,10 +246,10 @@ index 6d1a8734c479..b75c6dac6f6e 100644 2.20.1 -From 64f46c2a7a5d51cefdffb928855a0d86d5204480 Mon Sep 17 00:00:00 2001 +From 2c3e7136a7ead33a49c8190ceb3c7dcc22dc9f2d Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 -Subject: [PATCH 3/9] Test the notification-received signal +Subject: [PATCH 03/10] Test the notification-received signal --- bindings/vala/app.vala | 7 +++++++ @@ -314,10 +313,10 @@ index 495bdcfa3768..8ae589ad2449 100644 2.20.1 -From 2cf8143eed208ff852371eb8b8505a79a58af1a3 Mon Sep 17 00:00:00 2001 +From 0cb697eee07433766360a7e85b6f0d2f520a75bf Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 -Subject: [PATCH 4/9] Add a property to configure the scroll speed +Subject: [PATCH 04/10] 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. @@ -516,10 +515,10 @@ index dd4bd37c38e1..9cc246338151 100644 2.20.1 -From 97a9a62f6b99292c1246f8df4ba32bb44728928a Mon Sep 17 00:00:00 2001 +From a97c47e18b9e244200e41203f6db439aa1b93b3a Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 -Subject: [PATCH 5/9] Test the scroll-speed property +Subject: [PATCH 05/10] Test the scroll-speed property https://bugzilla.redhat.com/show_bug.cgi?id=1103380 --- @@ -589,10 +588,10 @@ index 8ae589ad2449..589bd5679acd 100644 2.20.1 -From e63c5ce0cb27e98c81047bfe6bc18baf96173511 Mon Sep 17 00:00:00 2001 +From 11361619738505e4870a1de73611a33ffe4892fb Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 -Subject: [PATCH 6/9] Support preexec notifications from an interactive shell +Subject: [PATCH 06/10] Support preexec notifications from an interactive shell Add sequences OSC 777 ; preexec BEL @@ -730,10 +729,10 @@ index 9cc246338151..db8afddb04b0 100644 std::string m_current_directory_uri{}; std::string m_current_file_uri{}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 942ae5126a3e..d129ad783799 100644 +index fcc2cc872f4c..7ce20e7d91bc 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1360,6 +1360,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1359,6 +1359,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, m_notification_body = *token; return; } @@ -748,10 +747,10 @@ index 942ae5126a3e..d129ad783799 100644 2.20.1 -From 26f91a29caa140eea0bb72a7d775875181e94965 Mon Sep 17 00:00:00 2001 +From 0483ee805109e64912de062ffdd08d658016d372 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 20 Apr 2018 18:21:53 +0200 -Subject: [PATCH 7/9] Test the shell-preexec signal +Subject: [PATCH 07/10] Test the shell-preexec signal https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 @@ -813,10 +812,10 @@ index 589bd5679acd..df0856497f73 100644 2.20.1 -From fb89254b387f811a6fd1eda3b7b2449417daf54e Mon Sep 17 00:00:00 2001 +From 1f8b311035b6b0d2f194917db7c84c18a893052e Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:20:30 +0200 -Subject: [PATCH 8/9] Support precmd notifications from an interactive shell +Subject: [PATCH 08/10] Support precmd notifications from an interactive shell Add sequences OSC 777 ; precmd BEL @@ -950,10 +949,10 @@ index db8afddb04b0..d81ac011dba5 100644 std::string m_window_title{}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index d129ad783799..d50439dbf0c7 100644 +index 7ce20e7d91bc..8893ba53698a 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1361,7 +1361,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1360,7 +1360,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, return; } @@ -968,10 +967,10 @@ index d129ad783799..d50439dbf0c7 100644 2.20.1 -From 19dec41cd5d5c42778a807cf43f52476ede2ab0f Mon Sep 17 00:00:00 2001 +From 66b6900d5e188611263595db8d5cee61cccec258 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:30:48 +0200 -Subject: [PATCH 9/9] Test the shell-precmd signal +Subject: [PATCH 09/10] Test the shell-precmd signal https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 @@ -1032,3 +1031,261 @@ index df0856497f73..37e06daf742f 100644 -- 2.20.1 + +From c28e1af61756ce2c4cffed0eec11e08928d75d92 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 + terminal + +Add sequences + OSC 777 ; container ; push ; NAME ; RUNTIME BEL + OSC 777 ; container ; push ; NAME ; RUNTIME ST + OSC 777 ; container ; pop ; NAME ; RUNTIME BEL + OSC 777 ; container ; pop ; NAME ; RUNTIME ST + +that let container tools notify the terminal emulator when entering and +leaving a container environment. The RUNTIME argument namespaces the +NAME and identifies the container tooling being used. eg., docker, +flatpak, podman, toolbox, etc.. + +The OSC 777 escape sequence is taken from Enlightenment's Terminology: +https://phab.enlightenment.org/T1765 + +It's a VTE-specific extension until a standard escape sequence is +agreed upon across multiple different terminal emulators [1]. + +[1] https://gitlab.freedesktop.org/terminal-wg/specifications/issues/17 +--- + src/vte.cc | 9 ++++++ + src/vte/vteterminal.h | 4 +++ + src/vtegtk.cc | 65 +++++++++++++++++++++++++++++++++++++++++++ + src/vtegtk.hh | 2 ++ + src/vteinternal.hh | 16 +++++++++++ + src/vteseq.cc | 31 +++++++++++++++++++++ + 6 files changed, 127 insertions(+) + +diff --git a/src/vte.cc b/src/vte.cc +index 459f675fd55c..65278d45f9bf 100644 +--- a/src/vte.cc ++++ b/src/vte.cc +@@ -10259,6 +10259,15 @@ Terminal::emit_pending_signals() + m_window_title_changed = false; + } + ++ if (m_containers_changed) { ++ _vte_debug_print(VTE_DEBUG_SIGNALS, ++ "Notifying `current-container-name' and `current-container-runtime'.\n"); ++ ++ g_object_notify_by_pspec(object, pspecs[PROP_CURRENT_CONTAINER_NAME]); ++ g_object_notify_by_pspec(object, pspecs[PROP_CURRENT_CONTAINER_RUNTIME]); ++ m_containers_changed = false; ++ } ++ + if (m_current_directory_uri_changed) { + 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 cb265294c96f..32c0538f37dd 100644 +--- a/src/vte/vteterminal.h ++++ b/src/vte/vteterminal.h +@@ -459,6 +459,10 @@ glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); + _VTE_PUBLIC + const char *vte_terminal_get_window_title(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); + _VTE_PUBLIC ++const char *vte_terminal_get_current_container_name(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); ++_VTE_PUBLIC ++const char *vte_terminal_get_current_container_runtime(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); ++_VTE_PUBLIC + const char *vte_terminal_get_current_directory_uri(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); + _VTE_PUBLIC + const char *vte_terminal_get_current_file_uri(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); +diff --git a/src/vtegtk.cc b/src/vtegtk.cc +index d94e47e379f8..342ccfc98a9e 100644 +--- a/src/vtegtk.cc ++++ b/src/vtegtk.cc +@@ -478,6 +478,12 @@ vte_terminal_get_property (GObject *object, + case PROP_CURSOR_BLINK_MODE: + g_value_set_enum (value, vte_terminal_get_cursor_blink_mode (terminal)); + break; ++ case PROP_CURRENT_CONTAINER_NAME: ++ g_value_set_string (value, vte_terminal_get_current_container_name (terminal)); ++ break; ++ case PROP_CURRENT_CONTAINER_RUNTIME: ++ g_value_set_string (value, vte_terminal_get_current_container_runtime (terminal)); ++ break; + case PROP_CURRENT_DIRECTORY_URI: + g_value_set_string (value, vte_terminal_get_current_directory_uri (terminal)); + break; +@@ -1681,6 +1687,27 @@ vte_terminal_class_init(VteTerminalClass *klass) + NULL, + (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); + ++ /** ++ * VteTerminal:current-container-name: ++ * ++ * The name of the current container, or %NULL if unset. ++ */ ++ pspecs[PROP_CURRENT_CONTAINER_NAME] = ++ g_param_spec_string ("current-container-name", NULL, NULL, ++ NULL, ++ (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); ++ ++ /** ++ * VteTerminal:current-container-runtime: ++ * ++ * The name of the runtime toolset used to set up the current ++ * container, or %NULL if unset. ++ */ ++ pspecs[PROP_CURRENT_CONTAINER_RUNTIME] = ++ g_param_spec_string ("current-container-runtime", NULL, NULL, ++ NULL, ++ (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); ++ + /** + * VteTerminal:current-directory-uri: + * +@@ -3556,6 +3583,44 @@ vte_terminal_get_column_count(VteTerminal *terminal) + return IMPL(terminal)->m_column_count; + } + ++/** ++ * vte_terminal_get_current_container_name: ++ * @terminal: a #VteTerminal ++ * ++ * Returns: (nullable) (transfer none): the name of the current ++ * container, or %NULL ++ */ ++const char * ++vte_terminal_get_current_container_name(VteTerminal *terminal) ++{ ++ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL); ++ auto impl = IMPL(terminal); ++ if (impl->m_containers.empty()) ++ return NULL; ++ ++ const VteContainer &container = impl->m_containers.top(); ++ return container.m_name.c_str(); ++} ++ ++/** ++ * vte_terminal_get_current_container_runtime: ++ * @terminal: a #VteTerminal ++ * ++ * Returns: (nullable) (transfer none): the name of the runtime ++ * toolset used to set up the current container, or %NULL ++ */ ++const char * ++vte_terminal_get_current_container_runtime(VteTerminal *terminal) ++{ ++ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL); ++ auto impl = IMPL(terminal); ++ if (impl->m_containers.empty()) ++ return NULL; ++ ++ const VteContainer &container = impl->m_containers.top(); ++ return container.m_runtime.c_str(); ++} ++ + /** + * vte_terminal_get_current_directory_uri: + * @terminal: a #VteTerminal +diff --git a/src/vtegtk.hh b/src/vtegtk.hh +index bae75f4b1f6a..d6565a9d1d16 100644 +--- a/src/vtegtk.hh ++++ b/src/vtegtk.hh +@@ -76,6 +76,8 @@ enum { + PROP_CJK_AMBIGUOUS_WIDTH, + PROP_CURSOR_BLINK_MODE, + PROP_CURSOR_SHAPE, ++ PROP_CURRENT_CONTAINER_NAME, ++ PROP_CURRENT_CONTAINER_RUNTIME, + PROP_CURRENT_DIRECTORY_URI, + PROP_CURRENT_FILE_URI, + PROP_DELETE_BINDING, +diff --git a/src/vteinternal.hh b/src/vteinternal.hh +index d81ac011dba5..f0c4a455cea3 100644 +--- a/src/vteinternal.hh ++++ b/src/vteinternal.hh +@@ -40,6 +40,7 @@ + + #include + #include ++#include + #include + #include + +@@ -109,6 +110,18 @@ typedef enum _VteCharacterReplacement { + VTE_CHARACTER_REPLACEMENT_BRITISH + } VteCharacterReplacement; + ++struct VteContainer { ++public: ++ VteContainer(const std::string &name, const std::string &runtime) : ++ m_name{name}, ++ m_runtime{runtime} ++ { ++ } ++ ++ std::string m_name; ++ std::string m_runtime; ++}; ++ + typedef struct _VtePaletteColor { + struct { + vte::color::rgb color; +@@ -540,6 +553,9 @@ 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; +diff --git a/src/vteseq.cc b/src/vteseq.cc +index 8893ba53698a..dcee8767b63f 100644 +--- a/src/vteseq.cc ++++ b/src/vteseq.cc +@@ -1342,6 +1342,37 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, + if (token == endtoken) + return; + ++ if (*token == "container") { ++ ++token; ++ ++ if (token == endtoken) ++ return; ++ ++ const std::string sub_command = *token; ++ ++token; ++ ++ if (sub_command == "pop") { ++ if (!m_containers.empty()) { ++ m_containers.pop(); ++ m_containers_changed = true; ++ } ++ } else if (sub_command == "push") { ++ if (token == endtoken) ++ return; ++ ++ const std::string name = *token; ++ ++token; ++ ++ if (token == endtoken) ++ return; ++ ++ const std::string runtime = *token; ++ ++ m_containers.emplace(name, runtime); ++ m_containers_changed = true; ++ } ++ } ++ + if (*token == "notify") { + ++token; + +-- +2.20.1 + diff --git a/vte291.spec b/vte291.spec index 1e6b479..8e609fb 100644 --- a/vte291.spec +++ b/vte291.spec @@ -7,7 +7,7 @@ Name: vte291 Version: 0.57.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -16,7 +16,7 @@ Source0: http://download.gnome.org/sources/vte/0.57/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 -Patch100: vte291-command-notify-scroll-speed.patch +Patch100: vte291-cntnr-precmd-preexec-scroll.patch BuildRequires: gcc-c++ BuildRequires: gettext @@ -67,7 +67,7 @@ emulator library. %prep %setup -q -n vte-%{version} -%patch100 -p1 -b .command-notify-scroll-speed +%patch100 -p1 -b .cntnr-precmd-preexec-scroll %build %meson --buildtype=plain -Ddocs=true @@ -97,6 +97,9 @@ emulator library. %{_sysconfdir}/profile.d/vte.sh %changelog +* Wed Jun 19 2019 Debarshi Ray - 0.57.0-2 +- Support tracking the active container inside the terminal + * Tue Jun 18 2019 Debarshi Ray - 0.57.0-1 - Update to 0.57.0 - Switch to the Meson build system From acdaf4fbbba6f37ccd2795c60dfc7b9567be38d9 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Tue, 2 Jul 2019 13:12:29 +0200 Subject: [PATCH 036/164] Update to 0.57.3 - Rebase downstream patches --- .gitignore | 1 + sources | 2 +- vte291-cntnr-precmd-preexec-scroll.patch | 211 +++++++++++------------ vte291.spec | 16 +- 4 files changed, 121 insertions(+), 109 deletions(-) diff --git a/.gitignore b/.gitignore index c5f5995..0342aae 100644 --- a/.gitignore +++ b/.gitignore @@ -53,3 +53,4 @@ /vte-0.56.2.tar.xz /vte-0.56.3.tar.xz /vte-0.57.0.tar.xz +/vte-0.57.3.tar.xz diff --git a/sources b/sources index 6dd7488..5348c35 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.57.0.tar.xz) = 87788ed44b39d57cf6d0ff99046ab575c8a410a0713e8f7404ada1239a1691f687b689a0b692f1bfe84ba7c38308382da409bab0780b1168d0ba99bbc0eb7b4f +SHA512 (vte-0.57.3.tar.xz) = f5496fd2b24af8d8eb895adaea59ee5ed4250c12a97745e025aacebca2d709901ae84befca58a3c5f1a54014a97af460ea53f844b1b1b9e32e192cc5883ecfed diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index d2ab9f5..2a9267f 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,4 +1,4 @@ -From b499620a43f69fe899210a9cba509a6b3999c4a4 Mon Sep 17 00:00:00 2001 +From 71e9d26cb88f0837ce1e2f3a4d4ac001aae5365e 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 @@ -27,21 +27,19 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711059 7 files changed, 74 insertions(+), 2 deletions(-) diff --git a/src/marshal.list b/src/marshal.list -index 1e4d0c1b6476..3385b4759713 100644 +index 241128c3ccfe..4412cf3d5f5c 100644 --- a/src/marshal.list +++ b/src/marshal.list -@@ -1,5 +1,6 @@ - VOID:INT,INT - VOID:OBJECT,OBJECT +@@ -1,3 +1,4 @@ VOID:STRING,BOXED +VOID:STRING,STRING VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index 0aa9a3fc6b42..cef9a05be18a 100644 +index e7815b4446d1..d5fc77536e54 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10205,6 +10205,15 @@ Terminal::emit_pending_signals() +@@ -10696,6 +10696,15 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); @@ -58,7 +56,7 @@ index 0aa9a3fc6b42..cef9a05be18a 100644 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 26ac236ef4ea..abf1a38cb20d 100644 +index 18ac0714244a..ea5c9313162a 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -104,8 +104,10 @@ struct _VteTerminalClass { @@ -74,10 +72,10 @@ index 26ac236ef4ea..abf1a38cb20d 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index c47a5c4a9d2b..03570d4c5554 100644 +index c18a178af178..92ff9d07752d 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -727,6 +727,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -739,6 +739,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->child_exited = NULL; klass->encoding_changed = NULL; klass->char_size_changed = NULL; @@ -85,9 +83,9 @@ index c47a5c4a9d2b..03570d4c5554 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -802,6 +803,26 @@ vte_terminal_class_init(VteTerminalClass *klass) - G_TYPE_NONE, - 1, G_TYPE_INT); +@@ -820,6 +821,26 @@ vte_terminal_class_init(VteTerminalClass *klass) + G_OBJECT_CLASS_TYPE(klass), + g_cclosure_marshal_VOID__INTv); + /** + * VteTerminal::notification-received: @@ -113,7 +111,7 @@ index c47a5c4a9d2b..03570d4c5554 100644 * VteTerminal::window-title-changed: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index c49754ef38ee..126d29326f11 100644 +index e2515b3491ae..c175f6d7b06f 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -56,6 +56,7 @@ enum { @@ -125,10 +123,10 @@ index c49754ef38ee..126d29326f11 100644 LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 58cb0479c5c4..dd4bd37c38e1 100644 +index b0b6239e38e3..554a4506f49f 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -539,6 +539,11 @@ public: +@@ -560,6 +560,11 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -140,7 +138,7 @@ index 58cb0479c5c4..dd4bd37c38e1 100644 std::string m_window_title{}; std::string m_current_directory_uri{}; std::string m_current_file_uri{}; -@@ -1269,6 +1274,9 @@ public: +@@ -1313,6 +1318,9 @@ public: int osc) noexcept; /* OSC handlers */ @@ -151,10 +149,10 @@ index 58cb0479c5c4..dd4bd37c38e1 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 d596d8b9f56f..fcc2cc872f4c 100644 +index 9ee154778974..3688462478e5 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1334,6 +1334,33 @@ Terminal::delete_lines(vte::grid::row_t param) +@@ -1398,6 +1398,33 @@ Terminal::delete_lines(vte::grid::row_t param) m_text_deleted_flag = TRUE; } @@ -188,7 +186,7 @@ index d596d8b9f56f..fcc2cc872f4c 100644 bool Terminal::get_osc_color_index(int osc, int value, -@@ -6411,6 +6438,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6488,6 +6515,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) reset_color(VTE_HIGHLIGHT_FG, VTE_COLOR_SOURCE_ESCAPE); break; @@ -199,7 +197,7 @@ index d596d8b9f56f..fcc2cc872f4c 100644 case VTE_OSC_XTERM_SET_ICON_TITLE: case VTE_OSC_XTERM_SET_XPROPERTY: case VTE_OSC_XTERM_SET_COLOR_MOUSE_CURSOR_FG: -@@ -6451,7 +6482,6 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6528,7 +6559,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: @@ -211,7 +209,7 @@ index d596d8b9f56f..fcc2cc872f4c 100644 2.20.1 -From 4ad3660c4d2ec7752d665f6b12a46498a3b595d1 Mon Sep 17 00:00:00 2001 +From 92222d93d5a51a3bfa232b2b99c80303abbaa699 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 @@ -226,10 +224,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711059 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/vte.sh b/src/vte.sh -index 6d1a8734c479..b75c6dac6f6e 100644 +index c200493c34a6..ee010aa36505 100644 --- a/src/vte.sh +++ b/src/vte.sh -@@ -50,9 +50,11 @@ __vte_osc7 () { +@@ -50,10 +50,12 @@ __vte_osc7 () { } __vte_prompt_command() { @@ -237,6 +235,7 @@ index 6d1a8734c479..b75c6dac6f6e 100644 + command="${command//;/ }" local pwd='~' [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} + pwd="${pwd//[[:cntrl:]]}" - printf "\033]0;%s@%s:%s\033\\%s" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" + printf '\033]777;notify;Command completed;%s\033\\\033]0;%s@%s:%s\033\\%s' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" } @@ -246,7 +245,7 @@ index 6d1a8734c479..b75c6dac6f6e 100644 2.20.1 -From 2c3e7136a7ead33a49c8190ceb3c7dcc22dc9f2d Mon Sep 17 00:00:00 2001 +From a6802affd1e2d8e1869312221e4be55b2b458d28 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 @@ -282,10 +281,10 @@ index fc26c2b0dfc3..634b8ddeeb91 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 495bdcfa3768..8ae589ad2449 100644 +index d845b5ce26a4..90148baf34e3 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1671,6 +1671,14 @@ window_window_title_changed_cb(VteTerminal* terminal, +@@ -1679,6 +1679,14 @@ window_window_title_changed_cb(VteTerminal* terminal, vte_terminal_get_window_title(window->terminal)); } @@ -300,7 +299,7 @@ index 495bdcfa3768..8ae589ad2449 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -1899,6 +1907,8 @@ vteapp_window_constructed(GObject *object) +@@ -1907,6 +1915,8 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); @@ -313,7 +312,7 @@ index 495bdcfa3768..8ae589ad2449 100644 2.20.1 -From 0cb697eee07433766360a7e85b6f0d2f520a75bf Mon Sep 17 00:00:00 2001 +From 0903623fab2a9d3b4653014e44a7dd717c162b7f 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 @@ -332,10 +331,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 9ab873c17bfc..7b94f4df9a30 100644 +index 8b67f28359a4..b6a5fcfc2779 100644 --- a/doc/reference/vte-sections.txt +++ b/doc/reference/vte-sections.txt -@@ -55,6 +55,7 @@ vte_terminal_get_cursor_blink_mode +@@ -53,6 +53,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 @@ -344,10 +343,10 @@ index 9ab873c17bfc..7b94f4df9a30 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index cef9a05be18a..3ae3c8b33c00 100644 +index d5fc77536e54..8ca4ca03bcfb 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9452,6 +9452,7 @@ void +@@ -9901,6 +9901,7 @@ void Terminal::widget_scroll(GdkEventScroll *event) { gdouble delta_x, delta_y; @@ -355,7 +354,7 @@ index cef9a05be18a..3ae3c8b33c00 100644 gdouble v; gint cnt, i; int button; -@@ -9505,7 +9506,13 @@ Terminal::widget_scroll(GdkEventScroll *event) +@@ -9957,7 +9958,13 @@ Terminal::widget_scroll(GdkEventScroll *event) return; } @@ -370,7 +369,7 @@ index cef9a05be18a..3ae3c8b33c00 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -9766,6 +9773,16 @@ Terminal::decscusr_cursor_shape() +@@ -10254,6 +10261,16 @@ Terminal::decscusr_cursor_shape() } } @@ -388,10 +387,10 @@ index cef9a05be18a..3ae3c8b33c00 100644 Terminal::set_scrollback_lines(long lines) { diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index abf1a38cb20d..c8ba72023370 100644 +index ea5c9313162a..90e3e05153a3 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -296,6 +296,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, +@@ -291,6 +291,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, _VTE_PUBLIC VteCursorShape vte_terminal_get_cursor_shape(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); @@ -403,10 +402,10 @@ index abf1a38cb20d..c8ba72023370 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 03570d4c5554..b905b82b2514 100644 +index 92ff9d07752d..eb754969ac40 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -517,6 +517,9 @@ vte_terminal_get_property (GObject *object, +@@ -523,6 +523,9 @@ vte_terminal_get_property (GObject *object, case PROP_REWRAP_ON_RESIZE: g_value_set_boolean (value, vte_terminal_get_rewrap_on_resize (terminal)); break; @@ -416,7 +415,7 @@ index 03570d4c5554..b905b82b2514 100644 case PROP_SCROLLBACK_LINES: g_value_set_uint (value, vte_terminal_get_scrollback_lines(terminal)); break; -@@ -618,6 +621,9 @@ vte_terminal_set_property (GObject *object, +@@ -630,6 +633,9 @@ vte_terminal_set_property (GObject *object, case PROP_REWRAP_ON_RESIZE: vte_terminal_set_rewrap_on_resize (terminal, g_value_get_boolean (value)); break; @@ -426,7 +425,7 @@ index 03570d4c5554..b905b82b2514 100644 case PROP_SCROLLBACK_LINES: vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); break; -@@ -1562,6 +1568,21 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1693,6 +1699,21 @@ vte_terminal_class_init(VteTerminalClass *klass) TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -448,7 +447,7 @@ index 03570d4c5554..b905b82b2514 100644 /** * VteTerminal:scrollback-lines: * -@@ -4111,6 +4132,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) +@@ -4335,6 +4356,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) return IMPL(terminal)->m_row_count; } @@ -480,10 +479,10 @@ index 03570d4c5554..b905b82b2514 100644 * vte_terminal_set_scrollback_lines: * @terminal: a #VteTerminal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 126d29326f11..b2c9edfa8246 100644 +index c175f6d7b06f..5541e8a4f875 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh -@@ -86,6 +86,7 @@ enum { +@@ -88,6 +88,7 @@ enum { PROP_MOUSE_POINTER_AUTOHIDE, PROP_PTY, PROP_REWRAP_ON_RESIZE, @@ -492,10 +491,10 @@ index 126d29326f11..b2c9edfa8246 100644 PROP_SCROLL_ON_KEYSTROKE, PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index dd4bd37c38e1..9cc246338151 100644 +index 554a4506f49f..1dd2467c9bc7 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -418,6 +418,7 @@ public: +@@ -423,6 +423,7 @@ public: /* Scrolling options. */ gboolean m_scroll_on_output; gboolean m_scroll_on_keystroke; @@ -503,9 +502,9 @@ index dd4bd37c38e1..9cc246338151 100644 vte::grid::row_t m_scrollback_lines; /* Restricted scrolling */ -@@ -1147,6 +1148,7 @@ public: - bool set_mouse_autohide(bool autohide); - bool set_pty(VtePty *pty); +@@ -1191,6 +1192,7 @@ public: + bool set_pty(VtePty *pty, + bool proces_remaining = true); bool set_rewrap_on_resize(bool rewrap); + bool set_scroll_speed(unsigned int scroll_speed); bool set_scrollback_lines(long lines); @@ -515,7 +514,7 @@ index dd4bd37c38e1..9cc246338151 100644 2.20.1 -From a97c47e18b9e244200e41203f6db439aa1b93b3a Mon Sep 17 00:00:00 2001 +From 09dfe4cb1a05299526646b030be90647a88e6a7b 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 @@ -556,10 +555,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 8ae589ad2449..589bd5679acd 100644 +index 90148baf34e3..2636defdef8f 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -93,6 +93,7 @@ public: +@@ -95,6 +95,7 @@ public: int verbosity{0}; double cell_height_scale{1.0}; double cell_width_scale{1.0}; @@ -567,7 +566,7 @@ index 8ae589ad2449..589bd5679acd 100644 VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM}; VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK}; VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS}; -@@ -405,6 +406,8 @@ public: +@@ -411,6 +412,8 @@ public: "Save terminal contents to file at exit", nullptr }, { "reverse", 0, 0, G_OPTION_ARG_NONE, &reverse, "Reverse foreground/background colors", nullptr }, @@ -576,7 +575,7 @@ index 8ae589ad2449..589bd5679acd 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, -@@ -1937,6 +1940,7 @@ vteapp_window_constructed(GObject *object) +@@ -1947,6 +1950,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); @@ -588,7 +587,7 @@ index 8ae589ad2449..589bd5679acd 100644 2.20.1 -From 11361619738505e4870a1de73611a33ffe4892fb Mon Sep 17 00:00:00 2001 +From be6f135af60af8b2699d507d5a74d8753d4a61cc 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 @@ -621,10 +620,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 3ae3c8b33c00..1d5fe099530c 100644 +index 8ca4ca03bcfb..eb3cd6b33c7f 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10231,6 +10231,13 @@ Terminal::emit_pending_signals() +@@ -10722,6 +10722,13 @@ Terminal::emit_pending_signals() m_notification_received = false; } @@ -639,10 +638,10 @@ index 3ae3c8b33c00..1d5fe099530c 100644 if (m_window_title != m_window_title_pending) { m_window_title.swap(m_window_title_pending); diff --git a/src/vte.sh b/src/vte.sh -index b75c6dac6f6e..dc4a127c9902 100644 +index ee010aa36505..ee424ce70521 100644 --- a/src/vte.sh +++ b/src/vte.sh -@@ -59,7 +59,7 @@ __vte_prompt_command() { +@@ -60,7 +60,7 @@ __vte_prompt_command() { case "$TERM" in xterm*|vte*) @@ -652,7 +651,7 @@ index b75c6dac6f6e..dc4a127c9902 100644 ;; esac diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index c8ba72023370..585b3f112bda 100644 +index 90e3e05153a3..3db163051077 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -105,9 +105,10 @@ struct _VteTerminalClass { @@ -668,10 +667,10 @@ index c8ba72023370..585b3f112bda 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index b905b82b2514..bed69be640f9 100644 +index eb754969ac40..cc502bf495d8 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -734,6 +734,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -746,6 +746,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->encoding_changed = NULL; klass->char_size_changed = NULL; klass->notification_received = NULL; @@ -679,7 +678,7 @@ index b905b82b2514..bed69be640f9 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -829,6 +830,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -847,6 +848,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -704,7 +703,7 @@ index b905b82b2514..bed69be640f9 100644 * VteTerminal::window-title-changed: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index b2c9edfa8246..136ffa3b534d 100644 +index 5541e8a4f875..a4d9ac8ae1c5 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -52,6 +52,7 @@ enum { @@ -716,10 +715,10 @@ index b2c9edfa8246..136ffa3b534d 100644 SIGNAL_TEXT_INSERTED, SIGNAL_TEXT_MODIFIED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 9cc246338151..db8afddb04b0 100644 +index 1dd2467c9bc7..d2c49becaeae 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -545,6 +545,8 @@ public: +@@ -566,6 +566,8 @@ public: std::string m_notification_summary; std::string m_notification_body; @@ -729,10 +728,10 @@ index 9cc246338151..db8afddb04b0 100644 std::string m_current_directory_uri{}; std::string m_current_file_uri{}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index fcc2cc872f4c..7ce20e7d91bc 100644 +index 3688462478e5..28de93f5b3af 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1359,6 +1359,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1423,6 +1423,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, m_notification_body = *token; return; } @@ -747,7 +746,7 @@ index fcc2cc872f4c..7ce20e7d91bc 100644 2.20.1 -From 0483ee805109e64912de062ffdd08d658016d372 Mon Sep 17 00:00:00 2001 +From e2b0e5ead4c1512bf06c887ad6d4c1af537fa353 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 @@ -784,10 +783,10 @@ index c984b868246d..83af686be106 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 589bd5679acd..df0856497f73 100644 +index 2636defdef8f..2d0c48576643 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1682,6 +1682,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1690,6 +1690,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -800,7 +799,7 @@ index 589bd5679acd..df0856497f73 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -1911,6 +1917,7 @@ vteapp_window_constructed(GObject *object) +@@ -1919,6 +1925,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); @@ -812,7 +811,7 @@ index 589bd5679acd..df0856497f73 100644 2.20.1 -From 1f8b311035b6b0d2f194917db7c84c18a893052e Mon Sep 17 00:00:00 2001 +From bbec4f9fe8d0387be88edf6ef2f16ef029adfd59 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 @@ -841,10 +840,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 1d5fe099530c..459f675fd55c 100644 +index eb3cd6b33c7f..d427f0995b2b 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10238,6 +10238,13 @@ Terminal::emit_pending_signals() +@@ -10729,6 +10729,13 @@ Terminal::emit_pending_signals() m_shell_preexec = FALSE; } @@ -859,20 +858,20 @@ index 1d5fe099530c..459f675fd55c 100644 if (m_window_title != m_window_title_pending) { m_window_title.swap(m_window_title_pending); diff --git a/src/vte.sh b/src/vte.sh -index dc4a127c9902..c1d6ee2c6f1d 100644 +index ee424ce70521..331bfec3d3ba 100644 --- a/src/vte.sh +++ b/src/vte.sh -@@ -54,7 +54,7 @@ __vte_prompt_command() { - command="${command//;/ }" +@@ -55,7 +55,7 @@ __vte_prompt_command() { local pwd='~' [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} + pwd="${pwd//[[:cntrl:]]}" - printf '\033]777;notify;Command completed;%s\033\\\033]0;%s@%s:%s\033\\%s' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" + printf '\033]777;notify;Command completed;%s\033\\\033]777;precmd\033\\\033]0;%s@%s:%s\033\\%s' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" } case "$TERM" in diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 585b3f112bda..cb265294c96f 100644 +index 3db163051077..8ef9e1dcdeb4 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -105,10 +105,11 @@ struct _VteTerminalClass { @@ -889,10 +888,10 @@ index 585b3f112bda..cb265294c96f 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index bed69be640f9..d94e47e379f8 100644 +index cc502bf495d8..b93c76d00296 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -734,6 +734,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -746,6 +746,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->encoding_changed = NULL; klass->char_size_changed = NULL; klass->notification_received = NULL; @@ -900,7 +899,7 @@ index bed69be640f9..d94e47e379f8 100644 klass->shell_preexec = NULL; klass->window_title_changed = NULL; klass->icon_title_changed = NULL; -@@ -830,6 +831,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -848,6 +849,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -925,7 +924,7 @@ index bed69be640f9..d94e47e379f8 100644 * VteTerminal::shell-preexec: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 136ffa3b534d..bae75f4b1f6a 100644 +index a4d9ac8ae1c5..3d46483e3a56 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -52,6 +52,7 @@ enum { @@ -937,10 +936,10 @@ index 136ffa3b534d..bae75f4b1f6a 100644 SIGNAL_TEXT_DELETED, SIGNAL_TEXT_INSERTED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index db8afddb04b0..d81ac011dba5 100644 +index d2c49becaeae..8dd59f237d20 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -545,6 +545,7 @@ public: +@@ -566,6 +566,7 @@ public: std::string m_notification_summary; std::string m_notification_body; @@ -949,10 +948,10 @@ index db8afddb04b0..d81ac011dba5 100644 std::string m_window_title{}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 7ce20e7d91bc..8893ba53698a 100644 +index 28de93f5b3af..c0bce6995093 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1360,7 +1360,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1424,7 +1424,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, return; } @@ -967,7 +966,7 @@ index 7ce20e7d91bc..8893ba53698a 100644 2.20.1 -From 66b6900d5e188611263595db8d5cee61cccec258 Mon Sep 17 00:00:00 2001 +From 4767996ace813a6d5c8e1278cb5accd6005cfca1 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 @@ -1004,10 +1003,10 @@ index 83af686be106..300384f5c74b 100644 { print("[shell] executing command\n"); diff --git a/src/app/app.cc b/src/app/app.cc -index df0856497f73..37e06daf742f 100644 +index 2d0c48576643..e3ec0026e1dc 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1682,6 +1682,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1690,6 +1690,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -1020,7 +1019,7 @@ index df0856497f73..37e06daf742f 100644 static void shell_preexec_cb(VteTerminal *terminal) { -@@ -1917,6 +1923,7 @@ vteapp_window_constructed(GObject *object) +@@ -1925,6 +1931,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); @@ -1032,7 +1031,7 @@ index df0856497f73..37e06daf742f 100644 2.20.1 -From c28e1af61756ce2c4cffed0eec11e08928d75d92 Mon Sep 17 00:00:00 2001 +From 1470d44065d81a0d8e093b012489ba60333e8d65 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 @@ -1066,10 +1065,10 @@ agreed upon across multiple different terminal emulators [1]. 6 files changed, 127 insertions(+) diff --git a/src/vte.cc b/src/vte.cc -index 459f675fd55c..65278d45f9bf 100644 +index d427f0995b2b..2a328a37022a 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10259,6 +10259,15 @@ Terminal::emit_pending_signals() +@@ -10750,6 +10750,15 @@ Terminal::emit_pending_signals() m_window_title_changed = false; } @@ -1086,10 +1085,10 @@ index 459f675fd55c..65278d45f9bf 100644 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 cb265294c96f..32c0538f37dd 100644 +index 8ef9e1dcdeb4..a59a15a81766 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -459,6 +459,10 @@ glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); +@@ -467,6 +467,10 @@ glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); _VTE_PUBLIC const char *vte_terminal_get_window_title(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); _VTE_PUBLIC @@ -1101,7 +1100,7 @@ index cb265294c96f..32c0538f37dd 100644 _VTE_PUBLIC const char *vte_terminal_get_current_file_uri(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index d94e47e379f8..342ccfc98a9e 100644 +index b93c76d00296..e0e50ae12907 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -478,6 +478,12 @@ vte_terminal_get_property (GObject *object, @@ -1117,7 +1116,7 @@ index d94e47e379f8..342ccfc98a9e 100644 case PROP_CURRENT_DIRECTORY_URI: g_value_set_string (value, vte_terminal_get_current_directory_uri (terminal)); break; -@@ -1681,6 +1687,27 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1812,6 +1818,27 @@ vte_terminal_class_init(VteTerminalClass *klass) NULL, (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -1145,7 +1144,7 @@ index d94e47e379f8..342ccfc98a9e 100644 /** * VteTerminal:current-directory-uri: * -@@ -3556,6 +3583,44 @@ vte_terminal_get_column_count(VteTerminal *terminal) +@@ -3704,6 +3731,44 @@ vte_terminal_get_column_count(VteTerminal *terminal) return IMPL(terminal)->m_column_count; } @@ -1191,7 +1190,7 @@ index d94e47e379f8..342ccfc98a9e 100644 * vte_terminal_get_current_directory_uri: * @terminal: a #VteTerminal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index bae75f4b1f6a..d6565a9d1d16 100644 +index 3d46483e3a56..24052b15f75c 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -76,6 +76,8 @@ enum { @@ -1204,10 +1203,10 @@ index bae75f4b1f6a..d6565a9d1d16 100644 PROP_CURRENT_FILE_URI, PROP_DELETE_BINDING, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index d81ac011dba5..f0c4a455cea3 100644 +index 8dd59f237d20..be13f827a85c 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -40,6 +40,7 @@ +@@ -41,6 +41,7 @@ #include #include @@ -1215,7 +1214,7 @@ index d81ac011dba5..f0c4a455cea3 100644 #include #include -@@ -109,6 +110,18 @@ typedef enum _VteCharacterReplacement { +@@ -118,6 +119,18 @@ typedef enum _VteCharacterReplacement { VTE_CHARACTER_REPLACEMENT_BRITISH } VteCharacterReplacement; @@ -1234,7 +1233,7 @@ index d81ac011dba5..f0c4a455cea3 100644 typedef struct _VtePaletteColor { struct { vte::color::rgb color; -@@ -540,6 +553,9 @@ public: +@@ -561,6 +574,9 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -1245,10 +1244,10 @@ index d81ac011dba5..f0c4a455cea3 100644 bool m_notification_received{false}; std::string m_notification_summary; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 8893ba53698a..dcee8767b63f 100644 +index c0bce6995093..dd64310caaf7 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1342,6 +1342,37 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1406,6 +1406,37 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, if (token == endtoken) return; diff --git a/vte291.spec b/vte291.spec index 8e609fb..cacc1f7 100644 --- a/vte291.spec +++ b/vte291.spec @@ -1,13 +1,15 @@ %global apiver 2.91 +%global fribidi_version 1.0.0 +%global glib2_version 2.40.0 %global gnutls_version 3.2.7 %global gtk3_version 3.19.5 %global pango_version 1.22.0 %global pcre2_version 10.21 Name: vte291 -Version: 0.57.0 -Release: 2%{?dist} +Version: 0.57.3 +Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -20,7 +22,11 @@ Patch100: vte291-cntnr-precmd-preexec-scroll.patch BuildRequires: gcc-c++ BuildRequires: gettext +BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} +BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version} +BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version} BuildRequires: pkgconfig(gnutls) >= %{gnutls_version} +BuildRequires: pkgconfig(gobject-2.0) >= %{glib2_version} BuildRequires: gobject-introspection-devel BuildRequires: gperf BuildRequires: gtk-doc @@ -30,6 +36,8 @@ BuildRequires: pkgconfig(libpcre2-8) >= %{pcre2_version} BuildRequires: pkgconfig(pango) >= %{pango_version} BuildRequires: vala +Requires: fribidi >= %{fribidi_version} +Requires: glib2 >= %{glib2_version} Requires: gnutls%{?_isa} >= %{gnutls_version} Requires: gtk3%{?_isa} >= %{gtk3_version} Requires: pango >= %{pango_version} @@ -97,6 +105,10 @@ emulator library. %{_sysconfdir}/profile.d/vte.sh %changelog +* Tue Jul 02 2019 Debarshi Ray - 0.57.3-1 +- Update to 0.57.3 +- Rebase downstream patches + * Wed Jun 19 2019 Debarshi Ray - 0.57.0-2 - Support tracking the active container inside the terminal From a61983c67f16870d0886f095cc3a90eaa1efdddc Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 27 Jul 2019 03:12:52 +0000 Subject: [PATCH 037/164] - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index cacc1f7..bb1bd7e 100644 --- a/vte291.spec +++ b/vte291.spec @@ -9,7 +9,7 @@ Name: vte291 Version: 0.57.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -105,6 +105,9 @@ emulator library. %{_sysconfdir}/profile.d/vte.sh %changelog +* Sat Jul 27 2019 Fedora Release Engineering - 0.57.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + * Tue Jul 02 2019 Debarshi Ray - 0.57.3-1 - Update to 0.57.3 - Rebase downstream patches From 079183da226dbe2652528421ae487478d96d5ecb Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Mon, 12 Aug 2019 15:15:21 +0200 Subject: [PATCH 038/164] Update to 0.57.90 --- .gitignore | 1 + sources | 2 +- vte291.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 0342aae..5f11546 100644 --- a/.gitignore +++ b/.gitignore @@ -54,3 +54,4 @@ /vte-0.56.3.tar.xz /vte-0.57.0.tar.xz /vte-0.57.3.tar.xz +/vte-0.57.90.tar.xz diff --git a/sources b/sources index 5348c35..f33c70a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.57.3.tar.xz) = f5496fd2b24af8d8eb895adaea59ee5ed4250c12a97745e025aacebca2d709901ae84befca58a3c5f1a54014a97af460ea53f844b1b1b9e32e192cc5883ecfed +SHA512 (vte-0.57.90.tar.xz) = 1480d3f892a701188ea244ddaf6941d5f3b9a1cd37f4a897787419005b4ae76b33946857fc5f791d9109a2c16892bec90715133e7be9b442b250e953547cdcb5 diff --git a/vte291.spec b/vte291.spec index bb1bd7e..9749e9c 100644 --- a/vte291.spec +++ b/vte291.spec @@ -8,8 +8,8 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.57.3 -Release: 2%{?dist} +Version: 0.57.90 +Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -105,6 +105,9 @@ emulator library. %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Aug 12 2019 Kalev Lember - 0.57.90-1 +- Update to 0.57.90 + * Sat Jul 27 2019 Fedora Release Engineering - 0.57.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild From b067afd77f6dbc789b9844dbe4b455ed77540464 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Mon, 9 Sep 2019 21:44:05 +0200 Subject: [PATCH 039/164] Update to 0.58.0 --- .gitignore | 1 + sources | 2 +- vte291.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 5f11546..1340c2d 100644 --- a/.gitignore +++ b/.gitignore @@ -55,3 +55,4 @@ /vte-0.57.0.tar.xz /vte-0.57.3.tar.xz /vte-0.57.90.tar.xz +/vte-0.58.0.tar.xz diff --git a/sources b/sources index f33c70a..cb2b8c0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.57.90.tar.xz) = 1480d3f892a701188ea244ddaf6941d5f3b9a1cd37f4a897787419005b4ae76b33946857fc5f791d9109a2c16892bec90715133e7be9b442b250e953547cdcb5 +SHA512 (vte-0.58.0.tar.xz) = 4d0fc725e0c71921b3d235d434600ad3c0807d5c0e7bd62fb782d857254db334bb851b75382c9613a5af753b5d6a1c05b174731427a8560b9b14101b3cc38c06 diff --git a/vte291.spec b/vte291.spec index 9749e9c..ba44d68 100644 --- a/vte291.spec +++ b/vte291.spec @@ -8,13 +8,13 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.57.90 +Version: 0.58.0 Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ URL: http://www.gnome.org/ -Source0: http://download.gnome.org/sources/vte/0.57/vte-%{version}.tar.xz +Source0: http://download.gnome.org/sources/vte/0.58/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 @@ -105,6 +105,9 @@ emulator library. %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Sep 09 2019 Kalev Lember - 0.58.0-1 +- Update to 0.58.0 + * Mon Aug 12 2019 Kalev Lember - 0.57.90-1 - Update to 0.57.90 From 09b6f35fe97dff9e1643fa356b5b8692280afdee Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Fri, 4 Oct 2019 07:27:08 -0700 Subject: [PATCH 040/164] Backport fix for crash due to out of bounds cursor (#1756567) --- ...-the-cursor-remains-onscreen-when-mo.patch | 35 +++++++++++++++++++ vte291.spec | 10 +++++- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 0001-emulation-Ensure-the-cursor-remains-onscreen-when-mo.patch diff --git a/0001-emulation-Ensure-the-cursor-remains-onscreen-when-mo.patch b/0001-emulation-Ensure-the-cursor-remains-onscreen-when-mo.patch new file mode 100644 index 0000000..5f2a20f --- /dev/null +++ b/0001-emulation-Ensure-the-cursor-remains-onscreen-when-mo.patch @@ -0,0 +1,35 @@ +From ef0734c1eb775cf98db9a6e8e87700830b1a3890 Mon Sep 17 00:00:00 2001 +From: Egmont Koblinger +Date: Tue, 24 Sep 2019 13:01:54 +0200 +Subject: [PATCH] emulation: Ensure the cursor remains onscreen when moving + down + +Previously the cursor could escape from the onscreen area, resulting in +a crash. This happened when a scrolling area was defined which did not +include the bottom row, the cursor was in the terminal's bottom row and +moved downwards from there. + +https://gitlab.gnome.org/GNOME/vte/issues/176 +--- + src/vte.cc | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/vte.cc b/src/vte.cc +index 1f926511..45d480c8 100644 +--- a/src/vte.cc ++++ b/src/vte.cc +@@ -2706,8 +2706,9 @@ Terminal::cursor_down(bool explicit_sequence) + VteRowData *rowdata = ensure_row(); + _vte_row_data_fill (rowdata, &m_color_defaults, m_column_count); + } +- } else { +- /* Otherwise, just move the cursor down. */ ++ } else if (m_screen->cursor.row < m_screen->insert_delta + m_row_count - 1) { ++ /* Otherwise, just move the cursor down; unless it's already in the last ++ * physical row (which is possible with scrolling region, see #176). */ + m_screen->cursor.row++; + } + } +-- +2.23.0 + diff --git a/vte291.spec b/vte291.spec index ba44d68..080b1d5 100644 --- a/vte291.spec +++ b/vte291.spec @@ -9,7 +9,7 @@ Name: vte291 Version: 0.58.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -19,6 +19,10 @@ Source0: http://download.gnome.org/sources/vte/0.58/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 Patch100: vte291-cntnr-precmd-preexec-scroll.patch +# Backport fix for crash due to out of bounds cursor position +# https://bugzilla.redhat.com/show_bug.cgi?id=1756567 +# https://gitlab.gnome.org/GNOME/vte/issues/176 +Patch101: 0001-emulation-Ensure-the-cursor-remains-onscreen-when-mo.patch BuildRequires: gcc-c++ BuildRequires: gettext @@ -76,6 +80,7 @@ emulator library. %prep %setup -q -n vte-%{version} %patch100 -p1 -b .cntnr-precmd-preexec-scroll +%patch101 -p1 -b .cursor-crash %build %meson --buildtype=plain -Ddocs=true @@ -105,6 +110,9 @@ emulator library. %{_sysconfdir}/profile.d/vte.sh %changelog +* Fri Oct 04 2019 Adam Williamson - 0.58.0-2 +- Backport fix for crash due to out of bounds cursor position (#1756567) + * Mon Sep 09 2019 Kalev Lember - 0.58.0-1 - Update to 0.58.0 From 090e070ed06c0dc94f1ff779d7de4cf0ddbd2408 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Mon, 7 Oct 2019 22:25:11 +0200 Subject: [PATCH 041/164] Update to 0.58.1 --- .gitignore | 1 + ...-the-cursor-remains-onscreen-when-mo.patch | 35 ------------------- sources | 2 +- vte291.spec | 12 +++---- 4 files changed, 7 insertions(+), 43 deletions(-) delete mode 100644 0001-emulation-Ensure-the-cursor-remains-onscreen-when-mo.patch diff --git a/.gitignore b/.gitignore index 1340c2d..fda97b6 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,4 @@ /vte-0.57.3.tar.xz /vte-0.57.90.tar.xz /vte-0.58.0.tar.xz +/vte-0.58.1.tar.xz diff --git a/0001-emulation-Ensure-the-cursor-remains-onscreen-when-mo.patch b/0001-emulation-Ensure-the-cursor-remains-onscreen-when-mo.patch deleted file mode 100644 index 5f2a20f..0000000 --- a/0001-emulation-Ensure-the-cursor-remains-onscreen-when-mo.patch +++ /dev/null @@ -1,35 +0,0 @@ -From ef0734c1eb775cf98db9a6e8e87700830b1a3890 Mon Sep 17 00:00:00 2001 -From: Egmont Koblinger -Date: Tue, 24 Sep 2019 13:01:54 +0200 -Subject: [PATCH] emulation: Ensure the cursor remains onscreen when moving - down - -Previously the cursor could escape from the onscreen area, resulting in -a crash. This happened when a scrolling area was defined which did not -include the bottom row, the cursor was in the terminal's bottom row and -moved downwards from there. - -https://gitlab.gnome.org/GNOME/vte/issues/176 ---- - src/vte.cc | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/src/vte.cc b/src/vte.cc -index 1f926511..45d480c8 100644 ---- a/src/vte.cc -+++ b/src/vte.cc -@@ -2706,8 +2706,9 @@ Terminal::cursor_down(bool explicit_sequence) - VteRowData *rowdata = ensure_row(); - _vte_row_data_fill (rowdata, &m_color_defaults, m_column_count); - } -- } else { -- /* Otherwise, just move the cursor down. */ -+ } else if (m_screen->cursor.row < m_screen->insert_delta + m_row_count - 1) { -+ /* Otherwise, just move the cursor down; unless it's already in the last -+ * physical row (which is possible with scrolling region, see #176). */ - m_screen->cursor.row++; - } - } --- -2.23.0 - diff --git a/sources b/sources index cb2b8c0..32ae9ed 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.58.0.tar.xz) = 4d0fc725e0c71921b3d235d434600ad3c0807d5c0e7bd62fb782d857254db334bb851b75382c9613a5af753b5d6a1c05b174731427a8560b9b14101b3cc38c06 +SHA512 (vte-0.58.1.tar.xz) = 1f795731fbb7ee76c4274562d5a55668c3b8ecad5a00ff83c762b0a2517ccffb85e796e937407d46e6bdb64327759eabc5878455d1d66cb1b8ff8b6060a4b1b7 diff --git a/vte291.spec b/vte291.spec index 080b1d5..2227c9a 100644 --- a/vte291.spec +++ b/vte291.spec @@ -8,8 +8,8 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.58.0 -Release: 2%{?dist} +Version: 0.58.1 +Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -19,10 +19,6 @@ Source0: http://download.gnome.org/sources/vte/0.58/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 Patch100: vte291-cntnr-precmd-preexec-scroll.patch -# Backport fix for crash due to out of bounds cursor position -# https://bugzilla.redhat.com/show_bug.cgi?id=1756567 -# https://gitlab.gnome.org/GNOME/vte/issues/176 -Patch101: 0001-emulation-Ensure-the-cursor-remains-onscreen-when-mo.patch BuildRequires: gcc-c++ BuildRequires: gettext @@ -80,7 +76,6 @@ emulator library. %prep %setup -q -n vte-%{version} %patch100 -p1 -b .cntnr-precmd-preexec-scroll -%patch101 -p1 -b .cursor-crash %build %meson --buildtype=plain -Ddocs=true @@ -110,6 +105,9 @@ emulator library. %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Oct 07 2019 Kalev Lember - 0.58.1-1 +- Update to 0.58.1 + * Fri Oct 04 2019 Adam Williamson - 0.58.0-2 - Backport fix for crash due to out of bounds cursor position (#1756567) From 86312df4ebc5798946791e5d8f088c324de90eb2 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Mon, 14 Oct 2019 10:25:23 +0200 Subject: [PATCH 042/164] Update to 0.58.2 --- .gitignore | 1 + sources | 2 +- vte291.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index fda97b6..cec18a2 100644 --- a/.gitignore +++ b/.gitignore @@ -57,3 +57,4 @@ /vte-0.57.90.tar.xz /vte-0.58.0.tar.xz /vte-0.58.1.tar.xz +/vte-0.58.2.tar.xz diff --git a/sources b/sources index 32ae9ed..ae8ca90 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.58.1.tar.xz) = 1f795731fbb7ee76c4274562d5a55668c3b8ecad5a00ff83c762b0a2517ccffb85e796e937407d46e6bdb64327759eabc5878455d1d66cb1b8ff8b6060a4b1b7 +SHA512 (vte-0.58.2.tar.xz) = 29b1855cd38c5c0b83ab92f3419053bedf3ffb423e6b3e2b7edb960fd425dc7010dbac884c8e1630e1be8b27188e2de65831f8deb83e2781aabe8478349cd7e4 diff --git a/vte291.spec b/vte291.spec index 2227c9a..bae54a3 100644 --- a/vte291.spec +++ b/vte291.spec @@ -8,7 +8,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.58.1 +Version: 0.58.2 Release: 1%{?dist} Summary: Terminal emulator library @@ -105,6 +105,9 @@ emulator library. %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Oct 14 2019 Kalev Lember - 0.58.2-1 +- Update to 0.58.2 + * Mon Oct 07 2019 Kalev Lember - 0.58.1-1 - Update to 0.58.1 From 146206247795ff575a3317925a38ba5c972c796a Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Wed, 27 Nov 2019 16:23:25 +0100 Subject: [PATCH 043/164] Update to 0.58.3 - Avoid overriding vte's own -fno-exceptions --- .gitignore | 1 + sources | 2 +- vte291.spec | 10 +++++++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index cec18a2..9f13573 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,4 @@ /vte-0.58.0.tar.xz /vte-0.58.1.tar.xz /vte-0.58.2.tar.xz +/vte-0.58.3.tar.xz diff --git a/sources b/sources index ae8ca90..401de7a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.58.2.tar.xz) = 29b1855cd38c5c0b83ab92f3419053bedf3ffb423e6b3e2b7edb960fd425dc7010dbac884c8e1630e1be8b27188e2de65831f8deb83e2781aabe8478349cd7e4 +SHA512 (vte-0.58.3.tar.xz) = b0a38eb1cd7d923b0431af943dbdb89932833f9a2b0b8fc1fa9ee728c87418c1f5a424b2ccee661721093a80c569f3b41c721b0ba2302ba0c3a42d4c5e31aa9a diff --git a/vte291.spec b/vte291.spec index bae54a3..267ad7c 100644 --- a/vte291.spec +++ b/vte291.spec @@ -8,7 +8,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.58.2 +Version: 0.58.3 Release: 1%{?dist} Summary: Terminal emulator library @@ -78,6 +78,10 @@ emulator library. %patch100 -p1 -b .cntnr-precmd-preexec-scroll %build +# Avoid overriding vte's own -fno-exceptions +# https://gitlab.gnome.org/GNOME/gnome-build-meta/issues/207 +%global optflags %(echo %{optflags} | sed 's/-fexceptions //') + %meson --buildtype=plain -Ddocs=true %meson_build @@ -105,6 +109,10 @@ emulator library. %{_sysconfdir}/profile.d/vte.sh %changelog +* Wed Nov 27 2019 Kalev Lember - 0.58.3-1 +- Update to 0.58.3 +- Avoid overriding vte's own -fno-exceptions + * Mon Oct 14 2019 Kalev Lember - 0.58.2-1 - Update to 0.58.2 From c5eae6074c3ecc9affabf034f7aa3e7c8bf63820 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 31 Jan 2020 03:25:15 +0000 Subject: [PATCH 044/164] - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index 267ad7c..75961b0 100644 --- a/vte291.spec +++ b/vte291.spec @@ -9,7 +9,7 @@ Name: vte291 Version: 0.58.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -109,6 +109,9 @@ emulator library. %{_sysconfdir}/profile.d/vte.sh %changelog +* Fri Jan 31 2020 Fedora Release Engineering - 0.58.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Wed Nov 27 2019 Kalev Lember - 0.58.3-1 - Update to 0.58.3 - Avoid overriding vte's own -fno-exceptions From 511ade87b7959848ff135693442871910c894230 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 19 Feb 2020 16:51:38 +0100 Subject: [PATCH 045/164] Update to 0.59.0 - Rebase downstream patches --- .gitignore | 1 + sources | 2 +- vte291-cntnr-precmd-preexec-scroll.patch | 184 +++++++++++------------ vte291.spec | 10 +- 4 files changed, 101 insertions(+), 96 deletions(-) diff --git a/.gitignore b/.gitignore index 9f13573..c07a9d0 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,4 @@ /vte-0.58.1.tar.xz /vte-0.58.2.tar.xz /vte-0.58.3.tar.xz +/vte-0.59.0.tar.xz diff --git a/sources b/sources index 401de7a..5136aa4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.58.3.tar.xz) = b0a38eb1cd7d923b0431af943dbdb89932833f9a2b0b8fc1fa9ee728c87418c1f5a424b2ccee661721093a80c569f3b41c721b0ba2302ba0c3a42d4c5e31aa9a +SHA512 (vte-0.59.0.tar.xz) = 533d1e87a699137a33a6ddb82bf0f010925ba578974e1f6c87bae0b497309dd84c3cb2f5f6884f34f7fbcfad94fbaa07eb3a80387ee9f16b5f3f0ea2679e7376 diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index 2a9267f..a20c1b2 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,4 +1,4 @@ -From 71e9d26cb88f0837ce1e2f3a4d4ac001aae5365e Mon Sep 17 00:00:00 2001 +From c40936e82cf274b1fe828ec5f3ac2cc5acd6a6cf 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 @@ -36,10 +36,10 @@ index 241128c3ccfe..4412cf3d5f5c 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index e7815b4446d1..d5fc77536e54 100644 +index 45d480c83f67..afc394c6f633 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10696,6 +10696,15 @@ Terminal::emit_pending_signals() +@@ -10427,6 +10427,15 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); @@ -56,7 +56,7 @@ index e7815b4446d1..d5fc77536e54 100644 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 18ac0714244a..ea5c9313162a 100644 +index cf02367d1a18..4c69e37cf7d5 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -104,8 +104,10 @@ struct _VteTerminalClass { @@ -72,10 +72,10 @@ index 18ac0714244a..ea5c9313162a 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index c18a178af178..92ff9d07752d 100644 +index fe5d1c4134f9..12c37e5c56a8 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -739,6 +739,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -729,6 +729,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->child_exited = NULL; klass->encoding_changed = NULL; klass->char_size_changed = NULL; @@ -83,7 +83,7 @@ index c18a178af178..92ff9d07752d 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -820,6 +821,26 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -810,6 +811,26 @@ vte_terminal_class_init(VteTerminalClass *klass) G_OBJECT_CLASS_TYPE(klass), g_cclosure_marshal_VOID__INTv); @@ -123,10 +123,10 @@ index e2515b3491ae..c175f6d7b06f 100644 LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index b0b6239e38e3..554a4506f49f 100644 +index 17d1c4db4fe8..a5df13416d6e 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -560,6 +560,11 @@ public: +@@ -631,6 +631,11 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -138,7 +138,7 @@ index b0b6239e38e3..554a4506f49f 100644 std::string m_window_title{}; std::string m_current_directory_uri{}; std::string m_current_file_uri{}; -@@ -1313,6 +1318,9 @@ public: +@@ -1381,6 +1386,9 @@ public: int osc) noexcept; /* OSC handlers */ @@ -149,10 +149,10 @@ index b0b6239e38e3..554a4506f49f 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 9ee154778974..3688462478e5 100644 +index 771a413b07df..932964a1b19e 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1398,6 +1398,33 @@ Terminal::delete_lines(vte::grid::row_t param) +@@ -1397,6 +1397,33 @@ Terminal::delete_lines(vte::grid::row_t param) m_text_deleted_flag = TRUE; } @@ -186,7 +186,7 @@ index 9ee154778974..3688462478e5 100644 bool Terminal::get_osc_color_index(int osc, int value, -@@ -6488,6 +6515,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6487,6 +6514,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) reset_color(VTE_HIGHLIGHT_FG, VTE_COLOR_SOURCE_ESCAPE); break; @@ -197,7 +197,7 @@ index 9ee154778974..3688462478e5 100644 case VTE_OSC_XTERM_SET_ICON_TITLE: case VTE_OSC_XTERM_SET_XPROPERTY: case VTE_OSC_XTERM_SET_COLOR_MOUSE_CURSOR_FG: -@@ -6528,7 +6559,6 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6527,7 +6558,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,10 +206,10 @@ index 9ee154778974..3688462478e5 100644 default: break; -- -2.20.1 +2.24.1 -From 92222d93d5a51a3bfa232b2b99c80303abbaa699 Mon Sep 17 00:00:00 2001 +From 7dc608083309754da4f6801657ea42709609dbea 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 @@ -242,10 +242,10 @@ index c200493c34a6..ee010aa36505 100644 case "$TERM" in -- -2.20.1 +2.24.1 -From a6802affd1e2d8e1869312221e4be55b2b458d28 Mon Sep 17 00:00:00 2001 +From 1bf1f20f1d6fe60f0d1898011fe7c3e21a5c55c1 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 @@ -281,10 +281,10 @@ index fc26c2b0dfc3..634b8ddeeb91 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index d845b5ce26a4..90148baf34e3 100644 +index 5e9f852f19be..cc8aaee14265 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1679,6 +1679,14 @@ window_window_title_changed_cb(VteTerminal* terminal, +@@ -1673,6 +1673,14 @@ window_window_title_changed_cb(VteTerminal* terminal, vte_terminal_get_window_title(window->terminal)); } @@ -299,20 +299,20 @@ index d845b5ce26a4..90148baf34e3 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -1907,6 +1915,8 @@ vteapp_window_constructed(GObject *object) +@@ -1901,6 +1909,8 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) 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); + /* Settings */ - if (options.no_double_buffer) - gtk_widget_set_double_buffered(GTK_WIDGET(window->terminal), false); + if (options.no_double_buffer) { + G_GNUC_BEGIN_IGNORE_DEPRECATIONS; -- -2.20.1 +2.24.1 -From 0903623fab2a9d3b4653014e44a7dd717c162b7f Mon Sep 17 00:00:00 2001 +From bb1b7dba7b0137aa64443332025765a6a02f4d82 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 @@ -343,10 +343,10 @@ index 8b67f28359a4..b6a5fcfc2779 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index d5fc77536e54..8ca4ca03bcfb 100644 +index afc394c6f633..454bf3a7da23 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9901,6 +9901,7 @@ void +@@ -9632,6 +9632,7 @@ void Terminal::widget_scroll(GdkEventScroll *event) { gdouble delta_x, delta_y; @@ -354,7 +354,7 @@ index d5fc77536e54..8ca4ca03bcfb 100644 gdouble v; gint cnt, i; int button; -@@ -9957,7 +9958,13 @@ Terminal::widget_scroll(GdkEventScroll *event) +@@ -9688,7 +9689,13 @@ Terminal::widget_scroll(GdkEventScroll *event) return; } @@ -369,7 +369,7 @@ index d5fc77536e54..8ca4ca03bcfb 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -10254,6 +10261,16 @@ Terminal::decscusr_cursor_shape() +@@ -9985,6 +9992,16 @@ Terminal::decscusr_cursor_shape() } } @@ -387,7 +387,7 @@ index d5fc77536e54..8ca4ca03bcfb 100644 Terminal::set_scrollback_lines(long lines) { diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index ea5c9313162a..90e3e05153a3 100644 +index 4c69e37cf7d5..af9818d6447b 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -291,6 +291,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, @@ -402,10 +402,10 @@ index ea5c9313162a..90e3e05153a3 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 92ff9d07752d..eb754969ac40 100644 +index 12c37e5c56a8..570da86dc39d 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -523,6 +523,9 @@ vte_terminal_get_property (GObject *object, +@@ -519,6 +519,9 @@ vte_terminal_get_property (GObject *object, case PROP_REWRAP_ON_RESIZE: g_value_set_boolean (value, vte_terminal_get_rewrap_on_resize (terminal)); break; @@ -415,7 +415,7 @@ index 92ff9d07752d..eb754969ac40 100644 case PROP_SCROLLBACK_LINES: g_value_set_uint (value, vte_terminal_get_scrollback_lines(terminal)); break; -@@ -630,6 +633,9 @@ vte_terminal_set_property (GObject *object, +@@ -626,6 +629,9 @@ vte_terminal_set_property (GObject *object, case PROP_REWRAP_ON_RESIZE: vte_terminal_set_rewrap_on_resize (terminal, g_value_get_boolean (value)); break; @@ -425,7 +425,7 @@ index 92ff9d07752d..eb754969ac40 100644 case PROP_SCROLLBACK_LINES: vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); break; -@@ -1693,6 +1699,21 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1684,6 +1690,21 @@ vte_terminal_class_init(VteTerminalClass *klass) TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -447,7 +447,7 @@ index 92ff9d07752d..eb754969ac40 100644 /** * VteTerminal:scrollback-lines: * -@@ -4335,6 +4356,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) +@@ -4326,6 +4347,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) return IMPL(terminal)->m_row_count; } @@ -491,7 +491,7 @@ index c175f6d7b06f..5541e8a4f875 100644 PROP_SCROLL_ON_KEYSTROKE, PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 554a4506f49f..1dd2467c9bc7 100644 +index a5df13416d6e..e34a4c57cfaf 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -423,6 +423,7 @@ public: @@ -502,7 +502,7 @@ index 554a4506f49f..1dd2467c9bc7 100644 vte::grid::row_t m_scrollback_lines; /* Restricted scrolling */ -@@ -1191,6 +1192,7 @@ public: +@@ -1259,6 +1260,7 @@ public: bool set_pty(VtePty *pty, bool proces_remaining = true); bool set_rewrap_on_resize(bool rewrap); @@ -511,10 +511,10 @@ index 554a4506f49f..1dd2467c9bc7 100644 bool set_scroll_on_keystroke(bool scroll); bool set_scroll_on_output(bool scroll); -- -2.20.1 +2.24.1 -From 09dfe4cb1a05299526646b030be90647a88e6a7b Mon Sep 17 00:00:00 2001 +From 1d6ddc80ea7b9daa02d45f478ee99e1bc82792bf 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 @@ -555,7 +555,7 @@ 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 90148baf34e3..2636defdef8f 100644 +index cc8aaee14265..218fd7a9e8d8 100644 --- a/src/app/app.cc +++ b/src/app/app.cc @@ -95,6 +95,7 @@ public: @@ -575,7 +575,7 @@ index 90148baf34e3..2636defdef8f 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, -@@ -1947,6 +1950,7 @@ vteapp_window_constructed(GObject *object) +@@ -1944,6 +1947,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,10 +584,10 @@ index 90148baf34e3..2636defdef8f 100644 vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); -- -2.20.1 +2.24.1 -From be6f135af60af8b2699d507d5a74d8753d4a61cc Mon Sep 17 00:00:00 2001 +From 88fb27490d87bfb9daf669ea555ed0a679ce98cf 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 @@ -620,10 +620,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 8ca4ca03bcfb..eb3cd6b33c7f 100644 +index 454bf3a7da23..4d64f69f15dc 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10722,6 +10722,13 @@ Terminal::emit_pending_signals() +@@ -10453,6 +10453,13 @@ Terminal::emit_pending_signals() m_notification_received = false; } @@ -651,7 +651,7 @@ index ee010aa36505..ee424ce70521 100644 ;; esac diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 90e3e05153a3..3db163051077 100644 +index af9818d6447b..57f00989d4f6 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -105,9 +105,10 @@ struct _VteTerminalClass { @@ -667,10 +667,10 @@ index 90e3e05153a3..3db163051077 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index eb754969ac40..cc502bf495d8 100644 +index 570da86dc39d..858fea4b2e50 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -746,6 +746,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -736,6 +736,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->encoding_changed = NULL; klass->char_size_changed = NULL; klass->notification_received = NULL; @@ -678,7 +678,7 @@ index eb754969ac40..cc502bf495d8 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -847,6 +848,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -837,6 +838,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -715,10 +715,10 @@ index 5541e8a4f875..a4d9ac8ae1c5 100644 SIGNAL_TEXT_INSERTED, SIGNAL_TEXT_MODIFIED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 1dd2467c9bc7..d2c49becaeae 100644 +index e34a4c57cfaf..774eff8870a2 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -566,6 +566,8 @@ public: +@@ -637,6 +637,8 @@ public: std::string m_notification_summary; std::string m_notification_body; @@ -728,10 +728,10 @@ index 1dd2467c9bc7..d2c49becaeae 100644 std::string m_current_directory_uri{}; std::string m_current_file_uri{}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 3688462478e5..28de93f5b3af 100644 +index 932964a1b19e..3b82d914c544 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1423,6 +1423,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1422,6 +1422,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, m_notification_body = *token; return; } @@ -743,10 +743,10 @@ index 3688462478e5..28de93f5b3af 100644 bool -- -2.20.1 +2.24.1 -From e2b0e5ead4c1512bf06c887ad6d4c1af537fa353 Mon Sep 17 00:00:00 2001 +From 6d5a0397ed1023deb0c42bcfa74166f42e034a2c 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 @@ -783,10 +783,10 @@ index c984b868246d..83af686be106 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 2636defdef8f..2d0c48576643 100644 +index 218fd7a9e8d8..267ad650844c 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1690,6 +1690,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1684,6 +1684,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -799,19 +799,19 @@ index 2636defdef8f..2d0c48576643 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -1919,6 +1925,7 @@ vteapp_window_constructed(GObject *object) +@@ -1913,6 +1919,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); + g_signal_connect(window->terminal, "shell-preexec", G_CALLBACK(shell_preexec_cb), NULL); /* Settings */ - if (options.no_double_buffer) + if (options.no_double_buffer) { -- -2.20.1 +2.24.1 -From bbec4f9fe8d0387be88edf6ef2f16ef029adfd59 Mon Sep 17 00:00:00 2001 +From f17c99d8727513c643c8380097bf1690b519b369 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 @@ -840,10 +840,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index eb3cd6b33c7f..d427f0995b2b 100644 +index 4d64f69f15dc..0e6dbdf13e68 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10729,6 +10729,13 @@ Terminal::emit_pending_signals() +@@ -10460,6 +10460,13 @@ Terminal::emit_pending_signals() m_shell_preexec = FALSE; } @@ -871,7 +871,7 @@ index ee424ce70521..331bfec3d3ba 100644 case "$TERM" in diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 3db163051077..8ef9e1dcdeb4 100644 +index 57f00989d4f6..21d99e6abd93 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -105,10 +105,11 @@ struct _VteTerminalClass { @@ -888,10 +888,10 @@ index 3db163051077..8ef9e1dcdeb4 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index cc502bf495d8..b93c76d00296 100644 +index 858fea4b2e50..6c53aec2eab1 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -746,6 +746,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -736,6 +736,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->encoding_changed = NULL; klass->char_size_changed = NULL; klass->notification_received = NULL; @@ -899,7 +899,7 @@ index cc502bf495d8..b93c76d00296 100644 klass->shell_preexec = NULL; klass->window_title_changed = NULL; klass->icon_title_changed = NULL; -@@ -848,6 +849,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -838,6 +839,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -936,10 +936,10 @@ index a4d9ac8ae1c5..3d46483e3a56 100644 SIGNAL_TEXT_DELETED, SIGNAL_TEXT_INSERTED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index d2c49becaeae..8dd59f237d20 100644 +index 774eff8870a2..842755f92915 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -566,6 +566,7 @@ public: +@@ -637,6 +637,7 @@ public: std::string m_notification_summary; std::string m_notification_body; @@ -948,10 +948,10 @@ index d2c49becaeae..8dd59f237d20 100644 std::string m_window_title{}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 28de93f5b3af..c0bce6995093 100644 +index 3b82d914c544..d21181684a75 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1424,7 +1424,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1423,7 +1423,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, return; } @@ -963,10 +963,10 @@ index 28de93f5b3af..c0bce6995093 100644 } } -- -2.20.1 +2.24.1 -From 4767996ace813a6d5c8e1278cb5accd6005cfca1 Mon Sep 17 00:00:00 2001 +From 8e38fc8dc123a796ec5fc4202115ea9a09f5d2d8 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 @@ -1003,10 +1003,10 @@ index 83af686be106..300384f5c74b 100644 { print("[shell] executing command\n"); diff --git a/src/app/app.cc b/src/app/app.cc -index 2d0c48576643..e3ec0026e1dc 100644 +index 267ad650844c..eab844eabc4a 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1690,6 +1690,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1684,6 +1684,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -1019,7 +1019,7 @@ index 2d0c48576643..e3ec0026e1dc 100644 static void shell_preexec_cb(VteTerminal *terminal) { -@@ -1925,6 +1931,7 @@ vteapp_window_constructed(GObject *object) +@@ -1919,6 +1925,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); @@ -1028,10 +1028,10 @@ index 2d0c48576643..e3ec0026e1dc 100644 /* Settings */ -- -2.20.1 +2.24.1 -From 1470d44065d81a0d8e093b012489ba60333e8d65 Mon Sep 17 00:00:00 2001 +From 0ec82af9c13db70a3275467daff7aa268fea6348 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 @@ -1065,10 +1065,10 @@ agreed upon across multiple different terminal emulators [1]. 6 files changed, 127 insertions(+) diff --git a/src/vte.cc b/src/vte.cc -index d427f0995b2b..2a328a37022a 100644 +index 0e6dbdf13e68..c99d19702b10 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10750,6 +10750,15 @@ Terminal::emit_pending_signals() +@@ -10481,6 +10481,15 @@ Terminal::emit_pending_signals() m_window_title_changed = false; } @@ -1085,10 +1085,10 @@ index d427f0995b2b..2a328a37022a 100644 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 8ef9e1dcdeb4..a59a15a81766 100644 +index 21d99e6abd93..b55df3f76e50 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -467,6 +467,10 @@ glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); +@@ -462,6 +462,10 @@ glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); _VTE_PUBLIC const char *vte_terminal_get_window_title(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); _VTE_PUBLIC @@ -1100,10 +1100,10 @@ index 8ef9e1dcdeb4..a59a15a81766 100644 _VTE_PUBLIC const char *vte_terminal_get_current_file_uri(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index b93c76d00296..e0e50ae12907 100644 +index 6c53aec2eab1..2427e6bfd2a1 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -478,6 +478,12 @@ vte_terminal_get_property (GObject *object, +@@ -474,6 +474,12 @@ vte_terminal_get_property (GObject *object, case PROP_CURSOR_BLINK_MODE: g_value_set_enum (value, vte_terminal_get_cursor_blink_mode (terminal)); break; @@ -1116,7 +1116,7 @@ index b93c76d00296..e0e50ae12907 100644 case PROP_CURRENT_DIRECTORY_URI: g_value_set_string (value, vte_terminal_get_current_directory_uri (terminal)); break; -@@ -1812,6 +1818,27 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1803,6 +1809,27 @@ vte_terminal_class_init(VteTerminalClass *klass) NULL, (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -1144,7 +1144,7 @@ index b93c76d00296..e0e50ae12907 100644 /** * VteTerminal:current-directory-uri: * -@@ -3704,6 +3731,44 @@ vte_terminal_get_column_count(VteTerminal *terminal) +@@ -3699,6 +3726,44 @@ vte_terminal_get_column_count(VteTerminal *terminal) return IMPL(terminal)->m_column_count; } @@ -1203,7 +1203,7 @@ index 3d46483e3a56..24052b15f75c 100644 PROP_CURRENT_FILE_URI, PROP_DELETE_BINDING, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 8dd59f237d20..be13f827a85c 100644 +index 842755f92915..20c4bcc5d900 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -41,6 +41,7 @@ @@ -1212,8 +1212,8 @@ index 8dd59f237d20..be13f827a85c 100644 #include +#include #include + #include #include - @@ -118,6 +119,18 @@ typedef enum _VteCharacterReplacement { VTE_CHARACTER_REPLACEMENT_BRITISH } VteCharacterReplacement; @@ -1233,7 +1233,7 @@ index 8dd59f237d20..be13f827a85c 100644 typedef struct _VtePaletteColor { struct { vte::color::rgb color; -@@ -561,6 +574,9 @@ public: +@@ -632,6 +645,9 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -1244,10 +1244,10 @@ index 8dd59f237d20..be13f827a85c 100644 bool m_notification_received{false}; std::string m_notification_summary; diff --git a/src/vteseq.cc b/src/vteseq.cc -index c0bce6995093..dd64310caaf7 100644 +index d21181684a75..a521241df03f 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1406,6 +1406,37 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1405,6 +1405,37 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, if (token == endtoken) return; @@ -1286,5 +1286,5 @@ index c0bce6995093..dd64310caaf7 100644 ++token; -- -2.20.1 +2.24.1 diff --git a/vte291.spec b/vte291.spec index 75961b0..02e268d 100644 --- a/vte291.spec +++ b/vte291.spec @@ -8,13 +8,13 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.58.3 -Release: 2%{?dist} +Version: 0.59.0 +Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ URL: http://www.gnome.org/ -Source0: http://download.gnome.org/sources/vte/0.58/vte-%{version}.tar.xz +Source0: http://download.gnome.org/sources/vte/0.59/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 @@ -109,6 +109,10 @@ emulator library. %{_sysconfdir}/profile.d/vte.sh %changelog +* Wed Feb 19 2020 Debarshi Ray - 0.59.0-1 +- Update to 0.59.0 +- Rebase downstream patches + * Fri Jan 31 2020 Fedora Release Engineering - 0.58.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild From 5584541da15fc2288dfb675067a4df286114590e Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 20 Feb 2020 16:10:27 +0100 Subject: [PATCH 046/164] Update the GLib and GTK requirements No need to issue a build just for this. --- vte291.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vte291.spec b/vte291.spec index 02e268d..5f8e3f1 100644 --- a/vte291.spec +++ b/vte291.spec @@ -1,9 +1,9 @@ %global apiver 2.91 %global fribidi_version 1.0.0 -%global glib2_version 2.40.0 +%global glib2_version 2.52.0 %global gnutls_version 3.2.7 -%global gtk3_version 3.19.5 +%global gtk3_version 3.20.0 %global pango_version 1.22.0 %global pcre2_version 10.21 From 22ab67e5cbe86a5323db0caee8c50ac0109e2527 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 20 Feb 2020 16:04:04 +0100 Subject: [PATCH 047/164] Update to 0.59.91 - Rebase downstream patches --- .gitignore | 1 + sources | 2 +- vte291-cntnr-precmd-preexec-scroll.patch | 252 +++++++++++------------ vte291.spec | 16 +- 4 files changed, 143 insertions(+), 128 deletions(-) diff --git a/.gitignore b/.gitignore index c07a9d0..c26bd6d 100644 --- a/.gitignore +++ b/.gitignore @@ -60,3 +60,4 @@ /vte-0.58.2.tar.xz /vte-0.58.3.tar.xz /vte-0.59.0.tar.xz +/vte-0.59.91.tar.xz diff --git a/sources b/sources index 5136aa4..d1db3d7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.59.0.tar.xz) = 533d1e87a699137a33a6ddb82bf0f010925ba578974e1f6c87bae0b497309dd84c3cb2f5f6884f34f7fbcfad94fbaa07eb3a80387ee9f16b5f3f0ea2679e7376 +SHA512 (vte-0.59.91.tar.xz) = 29d4ec3afeb117427880fa377d92f5b185ccdeac58d4bbd9af3042bd30cb021fcd65e12dc7ae0e0febaff2863a2f3b17f5112144e063fb233789c097e5644d4e diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index a20c1b2..3e425e2 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,4 +1,4 @@ -From c40936e82cf274b1fe828ec5f3ac2cc5acd6a6cf Mon Sep 17 00:00:00 2001 +From e7e3b8b73367060135627028e6d148c5ba601cb7 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 @@ -36,10 +36,10 @@ index 241128c3ccfe..4412cf3d5f5c 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index 45d480c83f67..afc394c6f633 100644 +index c1c85f7a1f69..2e16d0cdee3e 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10427,6 +10427,15 @@ Terminal::emit_pending_signals() +@@ -10239,6 +10239,15 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); @@ -56,7 +56,7 @@ index 45d480c83f67..afc394c6f633 100644 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 cf02367d1a18..4c69e37cf7d5 100644 +index 31012518362e..6ad0987d22ca 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -104,8 +104,10 @@ struct _VteTerminalClass { @@ -72,10 +72,10 @@ index cf02367d1a18..4c69e37cf7d5 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index fe5d1c4134f9..12c37e5c56a8 100644 +index 33534b4c758e..c012bf6c54d7 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -729,6 +729,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -738,6 +738,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->child_exited = NULL; klass->encoding_changed = NULL; klass->char_size_changed = NULL; @@ -83,7 +83,7 @@ index fe5d1c4134f9..12c37e5c56a8 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -810,6 +811,26 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -819,6 +820,26 @@ vte_terminal_class_init(VteTerminalClass *klass) G_OBJECT_CLASS_TYPE(klass), g_cclosure_marshal_VOID__INTv); @@ -111,7 +111,7 @@ index fe5d1c4134f9..12c37e5c56a8 100644 * VteTerminal::window-title-changed: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index e2515b3491ae..c175f6d7b06f 100644 +index ae9fb08c310a..baf681e45b2c 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -56,6 +56,7 @@ enum { @@ -123,10 +123,10 @@ index e2515b3491ae..c175f6d7b06f 100644 LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 17d1c4db4fe8..a5df13416d6e 100644 +index 93e905270c29..ae4f705ea80d 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -631,6 +631,11 @@ public: +@@ -709,6 +709,11 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -138,7 +138,7 @@ index 17d1c4db4fe8..a5df13416d6e 100644 std::string m_window_title{}; std::string m_current_directory_uri{}; std::string m_current_file_uri{}; -@@ -1381,6 +1386,9 @@ public: +@@ -1426,6 +1431,9 @@ public: int osc) noexcept; /* OSC handlers */ @@ -149,10 +149,10 @@ index 17d1c4db4fe8..a5df13416d6e 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 771a413b07df..932964a1b19e 100644 +index f05b67e0252b..13cae0934b22 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1397,6 +1397,33 @@ Terminal::delete_lines(vte::grid::row_t param) +@@ -1377,6 +1377,33 @@ Terminal::delete_lines(vte::grid::row_t param) m_text_deleted_flag = TRUE; } @@ -186,7 +186,7 @@ index 771a413b07df..932964a1b19e 100644 bool Terminal::get_osc_color_index(int osc, int value, -@@ -6487,6 +6514,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6464,6 +6491,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) reset_color(VTE_HIGHLIGHT_FG, VTE_COLOR_SOURCE_ESCAPE); break; @@ -197,7 +197,7 @@ index 771a413b07df..932964a1b19e 100644 case VTE_OSC_XTERM_SET_ICON_TITLE: case VTE_OSC_XTERM_SET_XPROPERTY: case VTE_OSC_XTERM_SET_COLOR_MOUSE_CURSOR_FG: -@@ -6527,7 +6558,6 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6504,7 +6535,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: @@ -209,7 +209,7 @@ index 771a413b07df..932964a1b19e 100644 2.24.1 -From 7dc608083309754da4f6801657ea42709609dbea Mon Sep 17 00:00:00 2001 +From b3c6f5757073e04cf0604ba348fd69f8d0ef05de 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 @@ -220,14 +220,14 @@ singles fixes it. https://bugzilla.gnome.org/show_bug.cgi?id=711059 --- - src/vte.sh | 4 +++- + src/vte.sh.in | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) -diff --git a/src/vte.sh b/src/vte.sh -index c200493c34a6..ee010aa36505 100644 ---- a/src/vte.sh -+++ b/src/vte.sh -@@ -50,10 +50,12 @@ __vte_osc7 () { +diff --git a/src/vte.sh.in b/src/vte.sh.in +index 8b3153da0f1a..d6769de82766 100644 +--- a/src/vte.sh.in ++++ b/src/vte.sh.in +@@ -27,10 +27,12 @@ __vte_osc7 () { } __vte_prompt_command() { @@ -236,16 +236,16 @@ index c200493c34a6..ee010aa36505 100644 local pwd='~' [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} pwd="${pwd//[[:cntrl:]]}" -- printf "\033]0;%s@%s:%s\033\\%s" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" -+ printf '\033]777;notify;Command completed;%s\033\\\033]0;%s@%s:%s\033\\%s' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" +- printf "\033]0;%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${pwd}" ++ printf '\033]777;notify;Command completed;%s\033\\\033]0;%s@%s:%s\033\\' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" + __vte_osc7 } - case "$TERM" in -- 2.24.1 -From 1bf1f20f1d6fe60f0d1898011fe7c3e21a5c55c1 Mon Sep 17 00:00:00 2001 +From afde67f33dca5651cfb31612f130caac712b9fd4 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 @@ -281,10 +281,10 @@ index fc26c2b0dfc3..634b8ddeeb91 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 5e9f852f19be..cc8aaee14265 100644 +index 6257c2f1c0e8..842b0408836f 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1673,6 +1673,14 @@ window_window_title_changed_cb(VteTerminal* terminal, +@@ -1636,6 +1636,14 @@ window_window_title_changed_cb(VteTerminal* terminal, vte_terminal_get_window_title(window->terminal)); } @@ -299,7 +299,7 @@ index 5e9f852f19be..cc8aaee14265 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -1901,6 +1909,8 @@ vteapp_window_constructed(GObject *object) +@@ -1864,6 +1872,8 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); @@ -312,7 +312,7 @@ index 5e9f852f19be..cc8aaee14265 100644 2.24.1 -From bb1b7dba7b0137aa64443332025765a6a02f4d82 Mon Sep 17 00:00:00 2001 +From 763bab8df736d7f8b812a4004f4ba2401227ce05 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 @@ -331,10 +331,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 8b67f28359a4..b6a5fcfc2779 100644 +index 20067c88bae3..2cc8d70ca4f9 100644 --- a/doc/reference/vte-sections.txt +++ b/doc/reference/vte-sections.txt -@@ -53,6 +53,7 @@ vte_terminal_get_cursor_blink_mode +@@ -52,6 +52,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,10 +343,10 @@ index 8b67f28359a4..b6a5fcfc2779 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index afc394c6f633..454bf3a7da23 100644 +index 2e16d0cdee3e..ee71d6b0f1c5 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9632,6 +9632,7 @@ void +@@ -9443,6 +9443,7 @@ void Terminal::widget_scroll(GdkEventScroll *event) { gdouble delta_x, delta_y; @@ -354,13 +354,13 @@ index afc394c6f633..454bf3a7da23 100644 gdouble v; gint cnt, i; int button; -@@ -9688,7 +9689,13 @@ Terminal::widget_scroll(GdkEventScroll *event) +@@ -9499,7 +9500,13 @@ Terminal::widget_scroll(GdkEventScroll *event) return; } -- v = MAX (1., ceil (gtk_adjustment_get_page_increment (m_vadjustment) / 10.)); +- v = MAX (1., ceil (gtk_adjustment_get_page_increment (m_vadjustment.get()) / 10.)); + if (m_scroll_speed == 0) { -+ scroll_speed = ceil (gtk_adjustment_get_page_increment (m_vadjustment) / 10.); ++ scroll_speed = ceil (gtk_adjustment_get_page_increment (m_vadjustment.get()) / 10.); + } else { + scroll_speed = m_scroll_speed; + } @@ -369,7 +369,7 @@ index afc394c6f633..454bf3a7da23 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -9985,6 +9992,16 @@ Terminal::decscusr_cursor_shape() +@@ -9796,6 +9803,16 @@ Terminal::decscusr_cursor_shape() const noexcept } } @@ -387,10 +387,10 @@ index afc394c6f633..454bf3a7da23 100644 Terminal::set_scrollback_lines(long lines) { diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 4c69e37cf7d5..af9818d6447b 100644 +index 6ad0987d22ca..94febee1d494 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -291,6 +291,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, +@@ -287,6 +287,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, _VTE_PUBLIC VteCursorShape vte_terminal_get_cursor_shape(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); @@ -402,10 +402,10 @@ index 4c69e37cf7d5..af9818d6447b 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 12c37e5c56a8..570da86dc39d 100644 +index c012bf6c54d7..cbfc44670e2e 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -519,6 +519,9 @@ vte_terminal_get_property (GObject *object, +@@ -528,6 +528,9 @@ vte_terminal_get_property (GObject *object, case PROP_REWRAP_ON_RESIZE: g_value_set_boolean (value, vte_terminal_get_rewrap_on_resize (terminal)); break; @@ -415,7 +415,7 @@ index 12c37e5c56a8..570da86dc39d 100644 case PROP_SCROLLBACK_LINES: g_value_set_uint (value, vte_terminal_get_scrollback_lines(terminal)); break; -@@ -626,6 +629,9 @@ vte_terminal_set_property (GObject *object, +@@ -635,6 +638,9 @@ vte_terminal_set_property (GObject *object, case PROP_REWRAP_ON_RESIZE: vte_terminal_set_rewrap_on_resize (terminal, g_value_get_boolean (value)); break; @@ -425,7 +425,7 @@ index 12c37e5c56a8..570da86dc39d 100644 case PROP_SCROLLBACK_LINES: vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); break; -@@ -1684,6 +1690,21 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1708,6 +1714,21 @@ vte_terminal_class_init(VteTerminalClass *klass) TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -447,7 +447,7 @@ index 12c37e5c56a8..570da86dc39d 100644 /** * VteTerminal:scrollback-lines: * -@@ -4326,6 +4347,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) +@@ -4420,6 +4441,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) return IMPL(terminal)->m_row_count; } @@ -479,7 +479,7 @@ index 12c37e5c56a8..570da86dc39d 100644 * vte_terminal_set_scrollback_lines: * @terminal: a #VteTerminal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index c175f6d7b06f..5541e8a4f875 100644 +index baf681e45b2c..a9c256635948 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -88,6 +88,7 @@ enum { @@ -491,20 +491,20 @@ index c175f6d7b06f..5541e8a4f875 100644 PROP_SCROLL_ON_KEYSTROKE, PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index a5df13416d6e..e34a4c57cfaf 100644 +index ae4f705ea80d..9c0b8b454468 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -423,6 +423,7 @@ public: +@@ -487,6 +487,7 @@ public: /* Scrolling options. */ - gboolean m_scroll_on_output; - gboolean m_scroll_on_keystroke; + bool m_scroll_on_output{false}; + bool m_scroll_on_keystroke{true}; + guint m_scroll_speed; - vte::grid::row_t m_scrollback_lines; + vte::grid::row_t m_scrollback_lines{0}; /* Restricted scrolling */ -@@ -1259,6 +1260,7 @@ public: - bool set_pty(VtePty *pty, - bool proces_remaining = true); +@@ -1304,6 +1305,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); @@ -514,7 +514,7 @@ index a5df13416d6e..e34a4c57cfaf 100644 2.24.1 -From 1d6ddc80ea7b9daa02d45f478ee99e1bc82792bf Mon Sep 17 00:00:00 2001 +From 479cff28fe58bad250b07c8cecf2cf741ed3e1ae 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 @@ -555,10 +555,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 cc8aaee14265..218fd7a9e8d8 100644 +index 842b0408836f..f40495f77ecf 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -95,6 +95,7 @@ public: +@@ -97,6 +97,7 @@ public: int verbosity{0}; double cell_height_scale{1.0}; double cell_width_scale{1.0}; @@ -566,16 +566,16 @@ index cc8aaee14265..218fd7a9e8d8 100644 VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM}; VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK}; VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS}; -@@ -411,6 +412,8 @@ public: - "Save terminal contents to file at exit", nullptr }, - { "reverse", 0, 0, G_OPTION_ARG_NONE, &reverse, +@@ -415,6 +416,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 }, + { "scroll-speed", 0, 0, G_OPTION_ARG_INT, &scroll_speed, + "Specify the scroll speed", nullptr }, { "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, -@@ -1944,6 +1947,7 @@ vteapp_window_constructed(GObject *object) +@@ -1905,6 +1908,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); @@ -587,7 +587,7 @@ index cc8aaee14265..218fd7a9e8d8 100644 2.24.1 -From 88fb27490d87bfb9daf669ea555ed0a679ce98cf Mon Sep 17 00:00:00 2001 +From 5a08736420dea1ed7e784f19cf93ae19944b0aa2 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 @@ -611,7 +611,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 --- src/vte.cc | 7 +++++++ - src/vte.sh | 2 +- + src/vte.sh.in | 2 +- src/vte/vteterminal.h | 3 ++- src/vtegtk.cc | 18 ++++++++++++++++++ src/vtegtk.hh | 1 + @@ -620,10 +620,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 454bf3a7da23..4d64f69f15dc 100644 +index ee71d6b0f1c5..6c95909b2e79 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10453,6 +10453,13 @@ Terminal::emit_pending_signals() +@@ -10265,6 +10265,13 @@ Terminal::emit_pending_signals() m_notification_received = false; } @@ -637,11 +637,11 @@ index 454bf3a7da23..4d64f69f15dc 100644 if (m_window_title_changed) { if (m_window_title != m_window_title_pending) { m_window_title.swap(m_window_title_pending); -diff --git a/src/vte.sh b/src/vte.sh -index ee010aa36505..ee424ce70521 100644 ---- a/src/vte.sh -+++ b/src/vte.sh -@@ -60,7 +60,7 @@ __vte_prompt_command() { +diff --git a/src/vte.sh.in b/src/vte.sh.in +index d6769de82766..e4ff39e9d405 100644 +--- a/src/vte.sh.in ++++ b/src/vte.sh.in +@@ -38,7 +38,7 @@ __vte_prompt_command() { case "$TERM" in xterm*|vte*) @@ -651,7 +651,7 @@ index ee010aa36505..ee424ce70521 100644 ;; esac diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index af9818d6447b..57f00989d4f6 100644 +index 94febee1d494..2d757afbdcc0 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -105,9 +105,10 @@ struct _VteTerminalClass { @@ -667,10 +667,10 @@ index af9818d6447b..57f00989d4f6 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 570da86dc39d..858fea4b2e50 100644 +index cbfc44670e2e..83c8ebc37a1b 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -736,6 +736,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -745,6 +745,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->encoding_changed = NULL; klass->char_size_changed = NULL; klass->notification_received = NULL; @@ -678,7 +678,7 @@ index 570da86dc39d..858fea4b2e50 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -837,6 +838,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -846,6 +847,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -703,7 +703,7 @@ index 570da86dc39d..858fea4b2e50 100644 * VteTerminal::window-title-changed: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 5541e8a4f875..a4d9ac8ae1c5 100644 +index a9c256635948..79c528ea8243 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -52,6 +52,7 @@ enum { @@ -715,10 +715,10 @@ index 5541e8a4f875..a4d9ac8ae1c5 100644 SIGNAL_TEXT_INSERTED, SIGNAL_TEXT_MODIFIED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index e34a4c57cfaf..774eff8870a2 100644 +index 9c0b8b454468..dd98905860f4 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -637,6 +637,8 @@ public: +@@ -715,6 +715,8 @@ public: std::string m_notification_summary; std::string m_notification_body; @@ -728,10 +728,10 @@ index e34a4c57cfaf..774eff8870a2 100644 std::string m_current_directory_uri{}; std::string m_current_file_uri{}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 932964a1b19e..3b82d914c544 100644 +index 13cae0934b22..cc31e9c06364 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1422,6 +1422,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1402,6 +1402,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, m_notification_body = *token; return; } @@ -746,7 +746,7 @@ index 932964a1b19e..3b82d914c544 100644 2.24.1 -From 6d5a0397ed1023deb0c42bcfa74166f42e034a2c Mon Sep 17 00:00:00 2001 +From e6709af27700bb9fca3d856ae7ebb4a1e2095a04 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 @@ -783,10 +783,10 @@ index c984b868246d..83af686be106 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 218fd7a9e8d8..267ad650844c 100644 +index f40495f77ecf..ce480ed70aae 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1684,6 +1684,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1647,6 +1647,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -799,7 +799,7 @@ index 218fd7a9e8d8..267ad650844c 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -1913,6 +1919,7 @@ vteapp_window_constructed(GObject *object) +@@ -1876,6 +1882,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); @@ -811,7 +811,7 @@ index 218fd7a9e8d8..267ad650844c 100644 2.24.1 -From f17c99d8727513c643c8380097bf1690b519b369 Mon Sep 17 00:00:00 2001 +From 61810a3bfb4b059bb5d9c13896c82625d09d147c 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 @@ -831,7 +831,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 --- src/vte.cc | 7 +++++++ - src/vte.sh | 2 +- + src/vte.sh.in | 2 +- src/vte/vteterminal.h | 3 ++- src/vtegtk.cc | 18 ++++++++++++++++++ src/vtegtk.hh | 1 + @@ -840,10 +840,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 4d64f69f15dc..0e6dbdf13e68 100644 +index 6c95909b2e79..3d6f856fb31c 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10460,6 +10460,13 @@ Terminal::emit_pending_signals() +@@ -10272,6 +10272,13 @@ Terminal::emit_pending_signals() m_shell_preexec = FALSE; } @@ -857,21 +857,21 @@ index 4d64f69f15dc..0e6dbdf13e68 100644 if (m_window_title_changed) { if (m_window_title != m_window_title_pending) { m_window_title.swap(m_window_title_pending); -diff --git a/src/vte.sh b/src/vte.sh -index ee424ce70521..331bfec3d3ba 100644 ---- a/src/vte.sh -+++ b/src/vte.sh -@@ -55,7 +55,7 @@ __vte_prompt_command() { +diff --git a/src/vte.sh.in b/src/vte.sh.in +index e4ff39e9d405..d0b88d658607 100644 +--- a/src/vte.sh.in ++++ b/src/vte.sh.in +@@ -32,7 +32,7 @@ __vte_prompt_command() { local pwd='~' [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} pwd="${pwd//[[:cntrl:]]}" -- printf '\033]777;notify;Command completed;%s\033\\\033]0;%s@%s:%s\033\\%s' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" -+ printf '\033]777;notify;Command completed;%s\033\\\033]777;precmd\033\\\033]0;%s@%s:%s\033\\%s' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" +- printf '\033]777;notify;Command completed;%s\033\\\033]0;%s@%s:%s\033\\' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" ++ printf '\033]777;notify;Command completed;%s\033\\\033]777;precmd\033\\\033]0;%s@%s:%s\033\\' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" + __vte_osc7 } - case "$TERM" in diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 57f00989d4f6..21d99e6abd93 100644 +index 2d757afbdcc0..a75ae7ee2640 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -105,10 +105,11 @@ struct _VteTerminalClass { @@ -888,10 +888,10 @@ index 57f00989d4f6..21d99e6abd93 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 858fea4b2e50..6c53aec2eab1 100644 +index 83c8ebc37a1b..af4056299ae3 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -736,6 +736,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -745,6 +745,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->encoding_changed = NULL; klass->char_size_changed = NULL; klass->notification_received = NULL; @@ -899,7 +899,7 @@ index 858fea4b2e50..6c53aec2eab1 100644 klass->shell_preexec = NULL; klass->window_title_changed = NULL; klass->icon_title_changed = NULL; -@@ -838,6 +839,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -847,6 +848,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -924,7 +924,7 @@ index 858fea4b2e50..6c53aec2eab1 100644 * VteTerminal::shell-preexec: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index a4d9ac8ae1c5..3d46483e3a56 100644 +index 79c528ea8243..534298ada75c 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -52,6 +52,7 @@ enum { @@ -936,10 +936,10 @@ index a4d9ac8ae1c5..3d46483e3a56 100644 SIGNAL_TEXT_DELETED, SIGNAL_TEXT_INSERTED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 774eff8870a2..842755f92915 100644 +index dd98905860f4..6b1feb377df7 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -637,6 +637,7 @@ public: +@@ -715,6 +715,7 @@ public: std::string m_notification_summary; std::string m_notification_body; @@ -948,10 +948,10 @@ index 774eff8870a2..842755f92915 100644 std::string m_window_title{}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 3b82d914c544..d21181684a75 100644 +index cc31e9c06364..06170cc58ab6 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1423,7 +1423,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1403,7 +1403,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, return; } @@ -966,7 +966,7 @@ index 3b82d914c544..d21181684a75 100644 2.24.1 -From 8e38fc8dc123a796ec5fc4202115ea9a09f5d2d8 Mon Sep 17 00:00:00 2001 +From 89bb0922590820b86ced74be1181104dadca19a7 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 @@ -1003,10 +1003,10 @@ index 83af686be106..300384f5c74b 100644 { print("[shell] executing command\n"); diff --git a/src/app/app.cc b/src/app/app.cc -index 267ad650844c..eab844eabc4a 100644 +index ce480ed70aae..9583b1a83481 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1684,6 +1684,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1647,6 +1647,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -1019,7 +1019,7 @@ index 267ad650844c..eab844eabc4a 100644 static void shell_preexec_cb(VteTerminal *terminal) { -@@ -1919,6 +1925,7 @@ vteapp_window_constructed(GObject *object) +@@ -1882,6 +1888,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); @@ -1031,7 +1031,7 @@ index 267ad650844c..eab844eabc4a 100644 2.24.1 -From 0ec82af9c13db70a3275467daff7aa268fea6348 Mon Sep 17 00:00:00 2001 +From 2edbaae5c6169164ae6f5a427433fb208d725874 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 @@ -1065,10 +1065,10 @@ agreed upon across multiple different terminal emulators [1]. 6 files changed, 127 insertions(+) diff --git a/src/vte.cc b/src/vte.cc -index 0e6dbdf13e68..c99d19702b10 100644 +index 3d6f856fb31c..9d1c9711838d 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10481,6 +10481,15 @@ Terminal::emit_pending_signals() +@@ -10293,6 +10293,15 @@ Terminal::emit_pending_signals() m_window_title_changed = false; } @@ -1085,10 +1085,10 @@ index 0e6dbdf13e68..c99d19702b10 100644 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 21d99e6abd93..b55df3f76e50 100644 +index a75ae7ee2640..53de9c737000 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -462,6 +462,10 @@ glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); +@@ -458,6 +458,10 @@ glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); _VTE_PUBLIC const char *vte_terminal_get_window_title(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); _VTE_PUBLIC @@ -1100,10 +1100,10 @@ index 21d99e6abd93..b55df3f76e50 100644 _VTE_PUBLIC const char *vte_terminal_get_current_file_uri(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 6c53aec2eab1..2427e6bfd2a1 100644 +index af4056299ae3..de5f96ff25c2 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -474,6 +474,12 @@ vte_terminal_get_property (GObject *object, +@@ -483,6 +483,12 @@ vte_terminal_get_property (GObject *object, case PROP_CURSOR_BLINK_MODE: g_value_set_enum (value, vte_terminal_get_cursor_blink_mode (terminal)); break; @@ -1116,7 +1116,7 @@ index 6c53aec2eab1..2427e6bfd2a1 100644 case PROP_CURRENT_DIRECTORY_URI: g_value_set_string (value, vte_terminal_get_current_directory_uri (terminal)); break; -@@ -1803,6 +1809,27 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1827,6 +1833,27 @@ vte_terminal_class_init(VteTerminalClass *klass) NULL, (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -1144,7 +1144,7 @@ index 6c53aec2eab1..2427e6bfd2a1 100644 /** * VteTerminal:current-directory-uri: * -@@ -3699,6 +3726,44 @@ vte_terminal_get_column_count(VteTerminal *terminal) +@@ -3797,6 +3824,44 @@ vte_terminal_get_column_count(VteTerminal *terminal) return IMPL(terminal)->m_column_count; } @@ -1190,7 +1190,7 @@ index 6c53aec2eab1..2427e6bfd2a1 100644 * vte_terminal_get_current_directory_uri: * @terminal: a #VteTerminal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 3d46483e3a56..24052b15f75c 100644 +index 534298ada75c..66d2f1425fad 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -76,6 +76,8 @@ enum { @@ -1203,19 +1203,19 @@ index 3d46483e3a56..24052b15f75c 100644 PROP_CURRENT_FILE_URI, PROP_DELETE_BINDING, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 842755f92915..20c4bcc5d900 100644 +index 6b1feb377df7..2329d7fd4c13 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -41,6 +41,7 @@ - +@@ -61,6 +61,7 @@ #include #include + #include +#include #include #include #include -@@ -118,6 +119,18 @@ typedef enum _VteCharacterReplacement { - VTE_CHARACTER_REPLACEMENT_BRITISH +@@ -98,6 +99,18 @@ typedef enum _VteCharacterReplacement { + VTE_CHARACTER_REPLACEMENT_LINE_DRAWING } VteCharacterReplacement; +struct VteContainer { @@ -1233,7 +1233,7 @@ index 842755f92915..20c4bcc5d900 100644 typedef struct _VtePaletteColor { struct { vte::color::rgb color; -@@ -632,6 +645,9 @@ public: +@@ -710,6 +723,9 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -1244,10 +1244,10 @@ index 842755f92915..20c4bcc5d900 100644 bool m_notification_received{false}; std::string m_notification_summary; diff --git a/src/vteseq.cc b/src/vteseq.cc -index d21181684a75..a521241df03f 100644 +index 06170cc58ab6..cee7e2b702ea 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1405,6 +1405,37 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1385,6 +1385,37 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, if (token == endtoken) return; diff --git a/vte291.spec b/vte291.spec index 5f8e3f1..c32ccc2 100644 --- a/vte291.spec +++ b/vte291.spec @@ -4,11 +4,13 @@ %global glib2_version 2.52.0 %global gnutls_version 3.2.7 %global gtk3_version 3.20.0 +%global icu_uc_version 4.8 +%global libsystemd_version 220 %global pango_version 1.22.0 %global pcre2_version 10.21 Name: vte291 -Version: 0.59.0 +Version: 0.59.91 Release: 1%{?dist} Summary: Terminal emulator library @@ -32,16 +34,21 @@ BuildRequires: gperf BuildRequires: gtk-doc BuildRequires: meson BuildRequires: pkgconfig(gtk+-3.0) >= %{gtk3_version} +BuildRequires: pkgconfig(icu-uc) >= %{icu_uc_version} BuildRequires: pkgconfig(libpcre2-8) >= %{pcre2_version} +BuildRequires: pkgconfig(libsystemd) >= %{libsystemd_version} BuildRequires: pkgconfig(pango) >= %{pango_version} +BuildRequires: systemd-rpm-macros BuildRequires: vala Requires: fribidi >= %{fribidi_version} Requires: glib2 >= %{glib2_version} Requires: gnutls%{?_isa} >= %{gnutls_version} Requires: gtk3%{?_isa} >= %{gtk3_version} +Requires: libicu%{?_isa} >= %{icu_uc_version} Requires: pango >= %{pango_version} Requires: pcre2%{?_isa} >= %{pcre2_version} +Requires: systemd >= %{libsystemd_version} Requires: vte-profile Conflicts: gnome-terminal < 3.20.1-2 @@ -95,6 +102,8 @@ emulator library. %doc NEWS %{_libdir}/libvte-%{apiver}.so.0* %{_libdir}/girepository-1.0/ +%{_libexecdir}/vte-urlencode-cwd +%{_userunitdir}/vte-spawn-.scope.d %files devel %{_bindir}/vte-%{apiver} @@ -106,9 +115,14 @@ emulator library. %{_datadir}/vala/ %files -n vte-profile +%{_sysconfdir}/profile.d/vte.csh %{_sysconfdir}/profile.d/vte.sh %changelog +* Thu Feb 20 2020 Debarshi Ray - 0.59.91-1 +- Update to 0.59.91 +- Rebase downstream patches + * Wed Feb 19 2020 Debarshi Ray - 0.59.0-1 - Update to 0.59.0 - Rebase downstream patches From e6f69da250ecfa37ef0557e23c7ed854a4fe6a63 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 2 Mar 2020 13:57:28 +0100 Subject: [PATCH 048/164] Update to 0.59.92 --- .gitignore | 1 + sources | 2 +- vte291-cntnr-precmd-preexec-scroll.patch | 92 ++++++++++++------------ vte291.spec | 5 +- 4 files changed, 52 insertions(+), 48 deletions(-) diff --git a/.gitignore b/.gitignore index c26bd6d..bc2a27a 100644 --- a/.gitignore +++ b/.gitignore @@ -61,3 +61,4 @@ /vte-0.58.3.tar.xz /vte-0.59.0.tar.xz /vte-0.59.91.tar.xz +/vte-0.59.92.tar.xz diff --git a/sources b/sources index d1db3d7..23b88fc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.59.91.tar.xz) = 29d4ec3afeb117427880fa377d92f5b185ccdeac58d4bbd9af3042bd30cb021fcd65e12dc7ae0e0febaff2863a2f3b17f5112144e063fb233789c097e5644d4e +SHA512 (vte-0.59.92.tar.xz) = e9df213be334e4328765ac426a9adb69252f751c930bf74a78475ed6859521e4540a35d6bc0203d81905e85d269faff08812a6bbbd9d6f9c836ccd04f082bad1 diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index 3e425e2..2978ea3 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,4 +1,4 @@ -From e7e3b8b73367060135627028e6d148c5ba601cb7 Mon Sep 17 00:00:00 2001 +From 0bdf015c691dc093abb6fabe15af1017c2e7dd49 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 @@ -36,10 +36,10 @@ index 241128c3ccfe..4412cf3d5f5c 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index c1c85f7a1f69..2e16d0cdee3e 100644 +index 0977ff6c3c19..838cb6523c5c 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10239,6 +10239,15 @@ Terminal::emit_pending_signals() +@@ -10238,6 +10238,15 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); @@ -72,7 +72,7 @@ index 31012518362e..6ad0987d22ca 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 33534b4c758e..c012bf6c54d7 100644 +index 8edb9d9bec08..11875dfee613 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -738,6 +738,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -149,7 +149,7 @@ index 93e905270c29..ae4f705ea80d 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 f05b67e0252b..13cae0934b22 100644 +index 2d00ceec5509..2b69ca2c14f0 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc @@ -1377,6 +1377,33 @@ Terminal::delete_lines(vte::grid::row_t param) @@ -209,7 +209,7 @@ index f05b67e0252b..13cae0934b22 100644 2.24.1 -From b3c6f5757073e04cf0604ba348fd69f8d0ef05de Mon Sep 17 00:00:00 2001 +From b3852a8ddf9e58fe5de0a8efd5ad7ab1785c284a 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 @@ -245,7 +245,7 @@ index 8b3153da0f1a..d6769de82766 100644 2.24.1 -From afde67f33dca5651cfb31612f130caac712b9fd4 Mon Sep 17 00:00:00 2001 +From 0cf97482e460ad2f687413306704bad40f826d43 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 @@ -281,10 +281,10 @@ index fc26c2b0dfc3..634b8ddeeb91 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 6257c2f1c0e8..842b0408836f 100644 +index 0c7eed5d18f1..6086c0a65db2 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1636,6 +1636,14 @@ window_window_title_changed_cb(VteTerminal* terminal, +@@ -1639,6 +1639,14 @@ window_window_title_changed_cb(VteTerminal* terminal, vte_terminal_get_window_title(window->terminal)); } @@ -299,7 +299,7 @@ index 6257c2f1c0e8..842b0408836f 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -1864,6 +1872,8 @@ vteapp_window_constructed(GObject *object) +@@ -1871,6 +1879,8 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); @@ -312,7 +312,7 @@ index 6257c2f1c0e8..842b0408836f 100644 2.24.1 -From 763bab8df736d7f8b812a4004f4ba2401227ce05 Mon Sep 17 00:00:00 2001 +From b3873aa4ed2dc7b33f4dd746bc5ce84662703908 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 @@ -343,10 +343,10 @@ index 20067c88bae3..2cc8d70ca4f9 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index 2e16d0cdee3e..ee71d6b0f1c5 100644 +index 838cb6523c5c..8123db6b2c65 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9443,6 +9443,7 @@ void +@@ -9442,6 +9442,7 @@ void Terminal::widget_scroll(GdkEventScroll *event) { gdouble delta_x, delta_y; @@ -354,7 +354,7 @@ index 2e16d0cdee3e..ee71d6b0f1c5 100644 gdouble v; gint cnt, i; int button; -@@ -9499,7 +9500,13 @@ Terminal::widget_scroll(GdkEventScroll *event) +@@ -9498,7 +9499,13 @@ Terminal::widget_scroll(GdkEventScroll *event) return; } @@ -369,7 +369,7 @@ index 2e16d0cdee3e..ee71d6b0f1c5 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -9796,6 +9803,16 @@ Terminal::decscusr_cursor_shape() const noexcept +@@ -9795,6 +9802,16 @@ Terminal::decscusr_cursor_shape() const noexcept } } @@ -402,7 +402,7 @@ index 6ad0987d22ca..94febee1d494 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index c012bf6c54d7..cbfc44670e2e 100644 +index 11875dfee613..c6051aa7ae7f 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -528,6 +528,9 @@ vte_terminal_get_property (GObject *object, @@ -447,7 +447,7 @@ index c012bf6c54d7..cbfc44670e2e 100644 /** * VteTerminal:scrollback-lines: * -@@ -4420,6 +4441,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) +@@ -4428,6 +4449,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) return IMPL(terminal)->m_row_count; } @@ -514,7 +514,7 @@ index ae4f705ea80d..9c0b8b454468 100644 2.24.1 -From 479cff28fe58bad250b07c8cecf2cf741ed3e1ae Mon Sep 17 00:00:00 2001 +From 8525c3b3986791f60bf42c880db1762dafe794c9 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 @@ -555,10 +555,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 842b0408836f..f40495f77ecf 100644 +index 6086c0a65db2..0c7a70bf6da5 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -97,6 +97,7 @@ public: +@@ -98,6 +98,7 @@ public: int verbosity{0}; double cell_height_scale{1.0}; double cell_width_scale{1.0}; @@ -566,7 +566,7 @@ index 842b0408836f..f40495f77ecf 100644 VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM}; VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK}; VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS}; -@@ -415,6 +416,8 @@ public: +@@ -418,6 +419,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 +575,7 @@ index 842b0408836f..f40495f77ecf 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, -@@ -1905,6 +1908,7 @@ vteapp_window_constructed(GObject *object) +@@ -1912,6 +1915,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); @@ -587,7 +587,7 @@ index 842b0408836f..f40495f77ecf 100644 2.24.1 -From 5a08736420dea1ed7e784f19cf93ae19944b0aa2 Mon Sep 17 00:00:00 2001 +From 2f1b77d36bdfa55bf16e8c02d3beef3b39e9a941 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 @@ -620,10 +620,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index ee71d6b0f1c5..6c95909b2e79 100644 +index 8123db6b2c65..f6a3989cbd79 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10265,6 +10265,13 @@ Terminal::emit_pending_signals() +@@ -10264,6 +10264,13 @@ Terminal::emit_pending_signals() m_notification_received = false; } @@ -667,7 +667,7 @@ index 94febee1d494..2d757afbdcc0 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index cbfc44670e2e..83c8ebc37a1b 100644 +index c6051aa7ae7f..888da0c188d8 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -745,6 +745,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -728,7 +728,7 @@ index 9c0b8b454468..dd98905860f4 100644 std::string m_current_directory_uri{}; std::string m_current_file_uri{}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 13cae0934b22..cc31e9c06364 100644 +index 2b69ca2c14f0..d8866cbeb225 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc @@ -1402,6 +1402,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, @@ -746,7 +746,7 @@ index 13cae0934b22..cc31e9c06364 100644 2.24.1 -From e6709af27700bb9fca3d856ae7ebb4a1e2095a04 Mon Sep 17 00:00:00 2001 +From e526a2f09a2336aa6c37c7deb6dc21cae065384c 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 @@ -783,10 +783,10 @@ index c984b868246d..83af686be106 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index f40495f77ecf..ce480ed70aae 100644 +index 0c7a70bf6da5..2dece3ddb724 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1647,6 +1647,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1650,6 +1650,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -799,7 +799,7 @@ index f40495f77ecf..ce480ed70aae 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -1876,6 +1882,7 @@ vteapp_window_constructed(GObject *object) +@@ -1883,6 +1889,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); @@ -811,7 +811,7 @@ index f40495f77ecf..ce480ed70aae 100644 2.24.1 -From 61810a3bfb4b059bb5d9c13896c82625d09d147c Mon Sep 17 00:00:00 2001 +From c2a395714922a8eafb82908330e3e689677627e0 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 @@ -840,10 +840,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 6c95909b2e79..3d6f856fb31c 100644 +index f6a3989cbd79..4d51005fb6c4 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10272,6 +10272,13 @@ Terminal::emit_pending_signals() +@@ -10271,6 +10271,13 @@ Terminal::emit_pending_signals() m_shell_preexec = FALSE; } @@ -888,7 +888,7 @@ index 2d757afbdcc0..a75ae7ee2640 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 83c8ebc37a1b..af4056299ae3 100644 +index 888da0c188d8..47b7df4febf2 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -745,6 +745,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -948,7 +948,7 @@ index dd98905860f4..6b1feb377df7 100644 std::string m_window_title{}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index cc31e9c06364..06170cc58ab6 100644 +index d8866cbeb225..f6669f853204 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc @@ -1403,7 +1403,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, @@ -966,7 +966,7 @@ index cc31e9c06364..06170cc58ab6 100644 2.24.1 -From 89bb0922590820b86ced74be1181104dadca19a7 Mon Sep 17 00:00:00 2001 +From 0eeb69db7fa1834f4a199c10b3d677e4d0723b44 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 @@ -1003,10 +1003,10 @@ index 83af686be106..300384f5c74b 100644 { print("[shell] executing command\n"); diff --git a/src/app/app.cc b/src/app/app.cc -index ce480ed70aae..9583b1a83481 100644 +index 2dece3ddb724..960aadc3cdc8 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1647,6 +1647,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1650,6 +1650,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -1019,7 +1019,7 @@ index ce480ed70aae..9583b1a83481 100644 static void shell_preexec_cb(VteTerminal *terminal) { -@@ -1882,6 +1888,7 @@ vteapp_window_constructed(GObject *object) +@@ -1889,6 +1895,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); @@ -1031,7 +1031,7 @@ index ce480ed70aae..9583b1a83481 100644 2.24.1 -From 2edbaae5c6169164ae6f5a427433fb208d725874 Mon Sep 17 00:00:00 2001 +From b925363b7286ab2b0cd4260f807681151ab44004 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 @@ -1065,10 +1065,10 @@ agreed upon across multiple different terminal emulators [1]. 6 files changed, 127 insertions(+) diff --git a/src/vte.cc b/src/vte.cc -index 3d6f856fb31c..9d1c9711838d 100644 +index 4d51005fb6c4..f83ef111b9d9 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10293,6 +10293,15 @@ Terminal::emit_pending_signals() +@@ -10292,6 +10292,15 @@ Terminal::emit_pending_signals() m_window_title_changed = false; } @@ -1100,7 +1100,7 @@ index a75ae7ee2640..53de9c737000 100644 _VTE_PUBLIC const char *vte_terminal_get_current_file_uri(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index af4056299ae3..de5f96ff25c2 100644 +index 47b7df4febf2..2e4bd1a692dc 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -483,6 +483,12 @@ vte_terminal_get_property (GObject *object, @@ -1144,7 +1144,7 @@ index af4056299ae3..de5f96ff25c2 100644 /** * VteTerminal:current-directory-uri: * -@@ -3797,6 +3824,44 @@ vte_terminal_get_column_count(VteTerminal *terminal) +@@ -3805,6 +3832,44 @@ vte_terminal_get_column_count(VteTerminal *terminal) return IMPL(terminal)->m_column_count; } @@ -1244,7 +1244,7 @@ index 6b1feb377df7..2329d7fd4c13 100644 bool m_notification_received{false}; std::string m_notification_summary; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 06170cc58ab6..cee7e2b702ea 100644 +index f6669f853204..2b9dd9df820a 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc @@ -1385,6 +1385,37 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, diff --git a/vte291.spec b/vte291.spec index c32ccc2..5cbbf7d 100644 --- a/vte291.spec +++ b/vte291.spec @@ -10,7 +10,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.59.91 +Version: 0.59.92 Release: 1%{?dist} Summary: Terminal emulator library @@ -119,6 +119,9 @@ emulator library. %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Mar 02 2020 Debarshi Ray - 0.59.92-1 +- Update to 0.59.92 + * Thu Feb 20 2020 Debarshi Ray - 0.59.91-1 - Update to 0.59.91 - Rebase downstream patches From 6f61f635c79d1d80265286701d589a3cb4238155 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 2 Mar 2020 14:57:26 +0100 Subject: [PATCH 049/164] Replace C1 controls with C0 to emit OSC 777 from PS0 C1 controls are supported by fewer terminals, and using them here causes a problem in Alacritty (and presumably quite a few others) if it's launched from a VTE-based terminal. See: https://github.com/jwilm/alacritty/issues/3105. Support for C1 controls might also get removed from VTE itself. See: https://gitlab.gnome.org/GNOME/vte/issues/209. Note that there was a typo in the commit message of the patch that introduced support for preeexec notifications from an interactive shell. While it was correct in saying that it's using C1 controls, because C0 was causing spurious characters to show up, the C0 example was wrongly using C1 controls. https://bugzilla.redhat.com/show_bug.cgi?id=1783802 --- vte291-cntnr-precmd-preexec-scroll.patch | 20 ++++++++------------ vte291.spec | 5 ++++- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index 2978ea3..ffa3bee 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -587,7 +587,7 @@ index 6086c0a65db2..0c7a70bf6da5 100644 2.24.1 -From 2f1b77d36bdfa55bf16e8c02d3beef3b39e9a941 Mon Sep 17 00:00:00 2001 +From 03909347c77ca2e36a3aa599a3130f9e4f03336d 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 @@ -603,10 +603,6 @@ Examples of such hooks are Bash's PS0 and Zsh's preexec. The OSC 777 escape sequence is taken from Enlightenment's Terminology: https://phab.enlightenment.org/T1765 -Currently, using C0 controls to emit OSC 777 from PS0 (ie., -PS0=$(printf "\u009D777;preexec\u009C")) causes spurious characters to -show up. C1 controls don't seem to suffer from this problem. - https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 --- @@ -638,7 +634,7 @@ index 8123db6b2c65..f6a3989cbd79 100644 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 d6769de82766..e4ff39e9d405 100644 +index d6769de82766..c7a3b07f9ea4 100644 --- a/src/vte.sh.in +++ b/src/vte.sh.in @@ -38,7 +38,7 @@ __vte_prompt_command() { @@ -646,7 +642,7 @@ index d6769de82766..e4ff39e9d405 100644 case "$TERM" in xterm*|vte*) - [ -n "$BASH_VERSION" ] && PROMPT_COMMAND="__vte_prompt_command" -+ [ -n "$BASH_VERSION" ] && PROMPT_COMMAND="__vte_prompt_command" && PS0=$(printf "\u009D777;preexec\u009C") ++ [ -n "$BASH_VERSION" ] && PROMPT_COMMAND="__vte_prompt_command" && PS0=$(printf "\033]777;preexec\033\\") [ -n "$ZSH_VERSION" ] && precmd_functions+=(__vte_osc7) ;; esac @@ -746,7 +742,7 @@ index 2b69ca2c14f0..d8866cbeb225 100644 2.24.1 -From e526a2f09a2336aa6c37c7deb6dc21cae065384c Mon Sep 17 00:00:00 2001 +From 2dbec5425751745e9d7042293a3fbefa07cc3a1c 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 @@ -811,7 +807,7 @@ index 0c7a70bf6da5..2dece3ddb724 100644 2.24.1 -From c2a395714922a8eafb82908330e3e689677627e0 Mon Sep 17 00:00:00 2001 +From 2838c5729961f4aca45a4ad0d55dd8845a30bb7a 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 @@ -858,7 +854,7 @@ index f6a3989cbd79..4d51005fb6c4 100644 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 e4ff39e9d405..d0b88d658607 100644 +index c7a3b07f9ea4..4cff7dd1fb71 100644 --- a/src/vte.sh.in +++ b/src/vte.sh.in @@ -32,7 +32,7 @@ __vte_prompt_command() { @@ -966,7 +962,7 @@ index d8866cbeb225..f6669f853204 100644 2.24.1 -From 0eeb69db7fa1834f4a199c10b3d677e4d0723b44 Mon Sep 17 00:00:00 2001 +From a7d3d63f068ac0dc12069b24697cd706838e3109 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 @@ -1031,7 +1027,7 @@ index 2dece3ddb724..960aadc3cdc8 100644 2.24.1 -From b925363b7286ab2b0cd4260f807681151ab44004 Mon Sep 17 00:00:00 2001 +From 90c2ae926f1eb2c3066c6e56679767bd5fa03bc1 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 diff --git a/vte291.spec b/vte291.spec index 5cbbf7d..ab90214 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ Name: vte291 Version: 0.59.92 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -119,6 +119,9 @@ emulator library. %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Mar 02 2020 Debarshi Ray - 0.59.92-2 +- Replace C1 controls with C0 to emit OSC 777 from PS0 (RH #1783802) + * Mon Mar 02 2020 Debarshi Ray - 0.59.92-1 - Update to 0.59.92 From 820fc6f43a095a7f0c5f3052f4b0d689dbbb1aba Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 6 Mar 2020 14:43:28 +0100 Subject: [PATCH 050/164] Update to 0.60.0 --- .gitignore | 1 + sources | 2 +- vte291-cntnr-precmd-preexec-scroll.patch | 20 ++++++++++---------- vte291.spec | 9 ++++++--- 4 files changed, 18 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index bc2a27a..9bf3471 100644 --- a/.gitignore +++ b/.gitignore @@ -62,3 +62,4 @@ /vte-0.59.0.tar.xz /vte-0.59.91.tar.xz /vte-0.59.92.tar.xz +/vte-0.60.0.tar.xz diff --git a/sources b/sources index 23b88fc..6dae662 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.59.92.tar.xz) = e9df213be334e4328765ac426a9adb69252f751c930bf74a78475ed6859521e4540a35d6bc0203d81905e85d269faff08812a6bbbd9d6f9c836ccd04f082bad1 +SHA512 (vte-0.60.0.tar.xz) = 8c1a80ba90fa1c1f4b5ec1a1d3793af79c04fbbad4acecba094db79771555b1689017864bd81bee4366f9ef363f629f20731bac998d994b9bfa37ee59e9e58b0 diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index ffa3bee..144c8a9 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,4 +1,4 @@ -From 0bdf015c691dc093abb6fabe15af1017c2e7dd49 Mon Sep 17 00:00:00 2001 +From c8ba0093065c94914b89a3f9fb9e4376ad58b7f2 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 @@ -209,7 +209,7 @@ index 2d00ceec5509..2b69ca2c14f0 100644 2.24.1 -From b3852a8ddf9e58fe5de0a8efd5ad7ab1785c284a Mon Sep 17 00:00:00 2001 +From c7e4f1adf7865025daa196ccb6b4344d6a79db55 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 @@ -245,7 +245,7 @@ index 8b3153da0f1a..d6769de82766 100644 2.24.1 -From 0cf97482e460ad2f687413306704bad40f826d43 Mon Sep 17 00:00:00 2001 +From 25d0ab5656a5daeac72514c9f1c92ece170e1b19 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 @@ -312,7 +312,7 @@ index 0c7eed5d18f1..6086c0a65db2 100644 2.24.1 -From b3873aa4ed2dc7b33f4dd746bc5ce84662703908 Mon Sep 17 00:00:00 2001 +From 9c4c531996654981621bfcd781402e9c9ababc5f 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 @@ -514,7 +514,7 @@ index ae4f705ea80d..9c0b8b454468 100644 2.24.1 -From 8525c3b3986791f60bf42c880db1762dafe794c9 Mon Sep 17 00:00:00 2001 +From c7f5fe00027643b36beb0c2908bd63cfa03a3266 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 @@ -587,7 +587,7 @@ index 6086c0a65db2..0c7a70bf6da5 100644 2.24.1 -From 03909347c77ca2e36a3aa599a3130f9e4f03336d Mon Sep 17 00:00:00 2001 +From 58a73ba12f34b285c4170eabf38d2b6dd0fc6fe3 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 @@ -742,7 +742,7 @@ index 2b69ca2c14f0..d8866cbeb225 100644 2.24.1 -From 2dbec5425751745e9d7042293a3fbefa07cc3a1c Mon Sep 17 00:00:00 2001 +From 96eae43fc1a6a767744c261ad7184ebf03d70a6d 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 @@ -807,7 +807,7 @@ index 0c7a70bf6da5..2dece3ddb724 100644 2.24.1 -From 2838c5729961f4aca45a4ad0d55dd8845a30bb7a Mon Sep 17 00:00:00 2001 +From 700985c7f169165329f44274636c048151c80d92 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 @@ -962,7 +962,7 @@ index d8866cbeb225..f6669f853204 100644 2.24.1 -From a7d3d63f068ac0dc12069b24697cd706838e3109 Mon Sep 17 00:00:00 2001 +From 2f4739dc840d8acddf15d7fa60594e04c24a17b2 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 @@ -1027,7 +1027,7 @@ index 2dece3ddb724..960aadc3cdc8 100644 2.24.1 -From 90c2ae926f1eb2c3066c6e56679767bd5fa03bc1 Mon Sep 17 00:00:00 2001 +From 89b06b1062b1af6fa43d6ea34d8da57f8038abcc 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 diff --git a/vte291.spec b/vte291.spec index ab90214..e8125b8 100644 --- a/vte291.spec +++ b/vte291.spec @@ -10,13 +10,13 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.59.92 -Release: 2%{?dist} +Version: 0.60.0 +Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ URL: http://www.gnome.org/ -Source0: http://download.gnome.org/sources/vte/0.59/vte-%{version}.tar.xz +Source0: http://download.gnome.org/sources/vte/0.60/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 @@ -119,6 +119,9 @@ emulator library. %{_sysconfdir}/profile.d/vte.sh %changelog +* Fri Mar 06 2020 Debarshi Ray - 0.60.0-1 +- Update to 0.60.0 + * Mon Mar 02 2020 Debarshi Ray - 0.59.92-2 - Replace C1 controls with C0 to emit OSC 777 from PS0 (RH #1783802) From afc27ec56b14ae1cfb595a7eb233e7fb308a83a2 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Sat, 21 Mar 2020 18:24:36 +0100 Subject: [PATCH 051/164] Move vte-urlencode-cwd to vte-profile subpackage https://bugzilla.redhat.com/show_bug.cgi?id=1815769 --- vte291.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/vte291.spec b/vte291.spec index e8125b8..34eb3d1 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ Name: vte291 Version: 0.60.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -102,7 +102,6 @@ emulator library. %doc NEWS %{_libdir}/libvte-%{apiver}.so.0* %{_libdir}/girepository-1.0/ -%{_libexecdir}/vte-urlencode-cwd %{_userunitdir}/vte-spawn-.scope.d %files devel @@ -115,10 +114,14 @@ emulator library. %{_datadir}/vala/ %files -n vte-profile +%{_libexecdir}/vte-urlencode-cwd %{_sysconfdir}/profile.d/vte.csh %{_sysconfdir}/profile.d/vte.sh %changelog +* Sat Mar 21 2020 Kalev Lember - 0.60.0-2 +- Move vte-urlencode-cwd to vte-profile subpackage (#1815769) + * Fri Mar 06 2020 Debarshi Ray - 0.60.0-1 - Update to 0.60.0 From 104f60b53e6fd940bed6933cd517773c59b13258 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Tue, 31 Mar 2020 18:51:56 +0200 Subject: [PATCH 052/164] Update to 0.60.1 --- .gitignore | 1 + sources | 2 +- vte291.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 9bf3471..759efe7 100644 --- a/.gitignore +++ b/.gitignore @@ -63,3 +63,4 @@ /vte-0.59.91.tar.xz /vte-0.59.92.tar.xz /vte-0.60.0.tar.xz +/vte-0.60.1.tar.xz diff --git a/sources b/sources index 6dae662..2cc5db2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.60.0.tar.xz) = 8c1a80ba90fa1c1f4b5ec1a1d3793af79c04fbbad4acecba094db79771555b1689017864bd81bee4366f9ef363f629f20731bac998d994b9bfa37ee59e9e58b0 +SHA512 (vte-0.60.1.tar.xz) = 123a8fcc14f4dba450411f95f43eb60108fee95c328d0e7331c9366d96ba2caa548dece3e95a8b779dda19d322d6879d02abc6ac68e36450e4e72f17a0963c30 diff --git a/vte291.spec b/vte291.spec index 34eb3d1..0e64e91 100644 --- a/vte291.spec +++ b/vte291.spec @@ -10,8 +10,8 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.60.0 -Release: 2%{?dist} +Version: 0.60.1 +Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -119,6 +119,9 @@ emulator library. %{_sysconfdir}/profile.d/vte.sh %changelog +* Tue Mar 31 2020 Kalev Lember - 0.60.1-1 +- Update to 0.60.1 + * Sat Mar 21 2020 Kalev Lember - 0.60.0-2 - Move vte-urlencode-cwd to vte-profile subpackage (#1815769) From 89a86276e6652c6c48fc1b7b8ab724e0cf0ee0fb Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Tue, 31 Mar 2020 21:01:49 +0200 Subject: [PATCH 053/164] Improve legibility when using colours from the system theme https://gitlab.gnome.org/GNOME/gtk/-/issues/2524 https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1535 https://gitlab.gnome.org/GNOME/vte/-/issues/226 --- vte291-cntnr-precmd-preexec-scroll.patch | 227 +++++++++++++++++++---- vte291.spec | 6 +- 2 files changed, 193 insertions(+), 40 deletions(-) diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index 144c8a9..5548b6c 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,7 +1,7 @@ -From c8ba0093065c94914b89a3f9fb9e4376ad58b7f2 Mon Sep 17 00:00:00 2001 +From 100b3f8acecf8c68201d6bbb7fc05e9475d8d401 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/12] Add sequences and signals for desktop notification Add sequences OSC 777 ; notify ; SUMMARY ; BODY BEL @@ -36,10 +36,10 @@ index 241128c3ccfe..4412cf3d5f5c 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index 0977ff6c3c19..838cb6523c5c 100644 +index cba606e853a4..ae49a07d7376 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10238,6 +10238,15 @@ Terminal::emit_pending_signals() +@@ -10239,6 +10239,15 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); @@ -72,7 +72,7 @@ index 31012518362e..6ad0987d22ca 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 8edb9d9bec08..11875dfee613 100644 +index 5808a210d3d4..005423567073 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -738,6 +738,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -209,10 +209,10 @@ index 2d00ceec5509..2b69ca2c14f0 100644 2.24.1 -From c7e4f1adf7865025daa196ccb6b4344d6a79db55 Mon Sep 17 00:00:00 2001 +From 2a509fab63f42995d4b0f77bac4a9d79e508880e 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/12] 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 @@ -245,10 +245,10 @@ index 8b3153da0f1a..d6769de82766 100644 2.24.1 -From 25d0ab5656a5daeac72514c9f1c92ece170e1b19 Mon Sep 17 00:00:00 2001 +From 268e1f1f5e71822b9e43ae4bfeea43710de32152 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/12] Test the notification-received signal --- bindings/vala/app.vala | 7 +++++++ @@ -312,10 +312,10 @@ index 0c7eed5d18f1..6086c0a65db2 100644 2.24.1 -From 9c4c531996654981621bfcd781402e9c9ababc5f Mon Sep 17 00:00:00 2001 +From 4756e38cc2678467d08245c192fd86b3b01049da 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/12] 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. @@ -343,10 +343,10 @@ index 20067c88bae3..2cc8d70ca4f9 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index 838cb6523c5c..8123db6b2c65 100644 +index ae49a07d7376..8fad2b477950 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9442,6 +9442,7 @@ void +@@ -9443,6 +9443,7 @@ void Terminal::widget_scroll(GdkEventScroll *event) { gdouble delta_x, delta_y; @@ -354,7 +354,7 @@ index 838cb6523c5c..8123db6b2c65 100644 gdouble v; gint cnt, i; int button; -@@ -9498,7 +9499,13 @@ Terminal::widget_scroll(GdkEventScroll *event) +@@ -9499,7 +9500,13 @@ Terminal::widget_scroll(GdkEventScroll *event) return; } @@ -369,7 +369,7 @@ index 838cb6523c5c..8123db6b2c65 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -9795,6 +9802,16 @@ Terminal::decscusr_cursor_shape() const noexcept +@@ -9796,6 +9803,16 @@ Terminal::decscusr_cursor_shape() const noexcept } } @@ -402,7 +402,7 @@ index 6ad0987d22ca..94febee1d494 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 11875dfee613..c6051aa7ae7f 100644 +index 005423567073..ecd004a814e7 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -528,6 +528,9 @@ vte_terminal_get_property (GObject *object, @@ -447,7 +447,7 @@ index 11875dfee613..c6051aa7ae7f 100644 /** * VteTerminal:scrollback-lines: * -@@ -4428,6 +4449,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) +@@ -4434,6 +4455,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) return IMPL(terminal)->m_row_count; } @@ -514,10 +514,10 @@ index ae4f705ea80d..9c0b8b454468 100644 2.24.1 -From c7f5fe00027643b36beb0c2908bd63cfa03a3266 Mon Sep 17 00:00:00 2001 +From 4a319241ad18071b85acea28f929b332d00e24da 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/12] Test the scroll-speed property https://bugzilla.redhat.com/show_bug.cgi?id=1103380 --- @@ -587,10 +587,10 @@ index 6086c0a65db2..0c7a70bf6da5 100644 2.24.1 -From 58a73ba12f34b285c4170eabf38d2b6dd0fc6fe3 Mon Sep 17 00:00:00 2001 +From 1df88d4cb8ebdbcac0ad55c43ed17e91b7396ea6 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/12] Support preexec notifications from an interactive shell Add sequences OSC 777 ; preexec BEL @@ -616,10 +616,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 8123db6b2c65..f6a3989cbd79 100644 +index 8fad2b477950..b103f3cee0ce 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10264,6 +10264,13 @@ Terminal::emit_pending_signals() +@@ -10265,6 +10265,13 @@ Terminal::emit_pending_signals() m_notification_received = false; } @@ -663,7 +663,7 @@ index 94febee1d494..2d757afbdcc0 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index c6051aa7ae7f..888da0c188d8 100644 +index ecd004a814e7..1b3e2690164f 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -745,6 +745,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -742,10 +742,10 @@ index 2b69ca2c14f0..d8866cbeb225 100644 2.24.1 -From 96eae43fc1a6a767744c261ad7184ebf03d70a6d Mon Sep 17 00:00:00 2001 +From f2581b1532eebc4bcfc2337eb367abfd5599dd0c 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/12] Test the shell-preexec signal https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 @@ -807,10 +807,10 @@ index 0c7a70bf6da5..2dece3ddb724 100644 2.24.1 -From 700985c7f169165329f44274636c048151c80d92 Mon Sep 17 00:00:00 2001 +From cee3f876af49aa199955e557001a57b317f93634 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/12] Support precmd notifications from an interactive shell Add sequences OSC 777 ; precmd BEL @@ -836,10 +836,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index f6a3989cbd79..4d51005fb6c4 100644 +index b103f3cee0ce..1bda2bfbca39 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10271,6 +10271,13 @@ Terminal::emit_pending_signals() +@@ -10272,6 +10272,13 @@ Terminal::emit_pending_signals() m_shell_preexec = FALSE; } @@ -884,7 +884,7 @@ index 2d757afbdcc0..a75ae7ee2640 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 888da0c188d8..47b7df4febf2 100644 +index 1b3e2690164f..0d61f90cda76 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -745,6 +745,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -962,10 +962,10 @@ index d8866cbeb225..f6669f853204 100644 2.24.1 -From 2f4739dc840d8acddf15d7fa60594e04c24a17b2 Mon Sep 17 00:00:00 2001 +From 827f0406565cad98f835909451a854c7f8f3ead1 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/12] Test the shell-precmd signal https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 @@ -1027,10 +1027,10 @@ index 2dece3ddb724..960aadc3cdc8 100644 2.24.1 -From 89b06b1062b1af6fa43d6ea34d8da57f8038abcc Mon Sep 17 00:00:00 2001 +From 55c7d02eaad2bc37bc18c46152825fb2959f2db0 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/12] Support tracking the active container inside the terminal Add sequences @@ -1061,10 +1061,10 @@ agreed upon across multiple different terminal emulators [1]. 6 files changed, 127 insertions(+) diff --git a/src/vte.cc b/src/vte.cc -index 4d51005fb6c4..f83ef111b9d9 100644 +index 1bda2bfbca39..aeca73d55934 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10292,6 +10292,15 @@ Terminal::emit_pending_signals() +@@ -10293,6 +10293,15 @@ Terminal::emit_pending_signals() m_window_title_changed = false; } @@ -1096,7 +1096,7 @@ index a75ae7ee2640..53de9c737000 100644 _VTE_PUBLIC const char *vte_terminal_get_current_file_uri(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 47b7df4febf2..2e4bd1a692dc 100644 +index 0d61f90cda76..15a7f1ab1ce0 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -483,6 +483,12 @@ vte_terminal_get_property (GObject *object, @@ -1140,7 +1140,7 @@ index 47b7df4febf2..2e4bd1a692dc 100644 /** * VteTerminal:current-directory-uri: * -@@ -3805,6 +3832,44 @@ vte_terminal_get_column_count(VteTerminal *terminal) +@@ -3811,6 +3838,44 @@ vte_terminal_get_column_count(VteTerminal *terminal) return IMPL(terminal)->m_column_count; } @@ -1284,3 +1284,152 @@ index f6669f853204..2b9dd9df820a 100644 -- 2.24.1 + +From e2c44d1e7cf544f26dddfe7ea21452eb53800b83 Mon Sep 17 00:00:00 2001 +From: Jakub Steiner +Date: Thu, 2 Apr 2020 18:20:44 +0200 +Subject: [PATCH 11/12] widget: Improve legibility when using colours from the + system theme + +https://gitlab.gnome.org/GNOME/vte/-/issues/225 +--- + src/vtegtk.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/vtegtk.cc b/src/vtegtk.cc +index 15a7f1ab1ce0..5999272c0648 100644 +--- a/src/vtegtk.cc ++++ b/src/vtegtk.cc +@@ -1922,7 +1922,7 @@ vte_terminal_class_init(VteTerminalClass *klass) + "VteTerminal, " VTE_TERMINAL_CSS_NAME " {\n" + "padding: 1px 1px 1px 1px;\n" + "background-color: @theme_base_color;\n" +- "color: @theme_fg_color;\n" ++ "color: @theme_text_color;\n" + "}\n", + -1, NULL); + +-- +2.24.1 + + +From 68d735ef2649df34f4a283d70555a88f04231ecc Mon Sep 17 00:00:00 2001 +From: Jakub Steiner +Date: Tue, 31 Mar 2020 20:55:23 +0200 +Subject: [PATCH 12/12] widget: Improve legibility by tweaking the system + theme's base colour + +Some changes by Debarshi Ray. + +https://gitlab.gnome.org/GNOME/vte/-/issues/226 +--- + src/vtegtk.cc | 67 ++++++++++++++++++++++++++++++++++++++++++++------- + 1 file changed, 58 insertions(+), 9 deletions(-) + +diff --git a/src/vtegtk.cc b/src/vtegtk.cc +index 5999272c0648..a54c85b42e9d 100644 +--- a/src/vtegtk.cc ++++ b/src/vtegtk.cc +@@ -73,7 +73,8 @@ + #define VTE_TERMINAL_CSS_NAME "vte-terminal" + + struct _VteTerminalClassPrivate { +- GtkStyleProvider *style_provider; ++ GtkStyleProvider *style_provider_dark; ++ GtkStyleProvider *style_provider_light; + }; + + #ifdef VTE_DEBUG +@@ -127,6 +128,41 @@ valid_color(GdkRGBA const* color) + color->alpha >= 0. && color->alpha <= 1.; + } + ++static void ++vte_terminal_theme_update (VteTerminal *terminal) ++{ ++ GtkSettings *settings; ++ GtkStyleContext *context; ++ gboolean application_prefer_dark_theme; ++ ++ settings = gtk_settings_get_default (); ++ g_object_get (settings, "gtk-application-prefer-dark-theme", &application_prefer_dark_theme, nullptr); ++ ++ context = gtk_widget_get_style_context (&terminal->widget); ++ ++ if (application_prefer_dark_theme) { ++ gtk_style_context_remove_provider (context, ++ VTE_TERMINAL_GET_CLASS (terminal)->priv->style_provider_light); ++ ++ gtk_style_context_add_provider (context, ++ VTE_TERMINAL_GET_CLASS (terminal)->priv->style_provider_dark, ++ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); ++ } else { ++ gtk_style_context_remove_provider (context, ++ VTE_TERMINAL_GET_CLASS (terminal)->priv->style_provider_dark); ++ ++ gtk_style_context_add_provider (context, ++ VTE_TERMINAL_GET_CLASS (terminal)->priv->style_provider_light, ++ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); ++ } ++} ++ ++static void ++vte_terminal_theme_changed (VteTerminal *terminal) ++{ ++ vte_terminal_theme_update (terminal); ++} ++ + static void + vte_terminal_set_hadjustment(VteTerminal *terminal, + GtkAdjustment *adjustment) +@@ -392,14 +428,18 @@ static void + vte_terminal_init(VteTerminal *terminal) + { + void *place; +- GtkStyleContext *context; ++ GtkSettings *settings; + + _vte_debug_print(VTE_DEBUG_LIFECYCLE, "vte_terminal_init()\n"); + +- context = gtk_widget_get_style_context(&terminal->widget); +- gtk_style_context_add_provider (context, +- VTE_TERMINAL_GET_CLASS (terminal)->priv->style_provider, +- GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); ++ vte_terminal_theme_update (terminal); ++ ++ settings = gtk_settings_get_default (); ++ g_signal_connect_object (settings, ++ "notify::gtk-application-prefer-dark-theme", ++ G_CALLBACK (vte_terminal_theme_changed), ++ terminal, ++ G_CONNECT_SWAPPED); + + /* Initialize private data. NOTE: place is zeroed */ + place = vte_terminal_get_instance_private(terminal); +@@ -1917,11 +1957,20 @@ vte_terminal_class_init(VteTerminalClass *klass) + + klass->priv = G_TYPE_CLASS_GET_PRIVATE (klass, VTE_TYPE_TERMINAL, VteTerminalClassPrivate); + +- klass->priv->style_provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); +- gtk_css_provider_load_from_data (GTK_CSS_PROVIDER (klass->priv->style_provider), ++ klass->priv->style_provider_dark = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); ++ gtk_css_provider_load_from_data (GTK_CSS_PROVIDER (klass->priv->style_provider_dark), ++ "VteTerminal, " VTE_TERMINAL_CSS_NAME " {\n" ++ "padding: 1px 1px 1px 1px;\n" ++ "background-color: shade(@theme_base_color, 0.67);\n" ++ "color: @theme_text_color;\n" ++ "}\n", ++ -1, NULL); ++ ++ klass->priv->style_provider_light = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); ++ gtk_css_provider_load_from_data (GTK_CSS_PROVIDER (klass->priv->style_provider_light), + "VteTerminal, " VTE_TERMINAL_CSS_NAME " {\n" + "padding: 1px 1px 1px 1px;\n" +- "background-color: @theme_base_color;\n" ++ "background-color: shade(@theme_base_color, 1.1);\n" + "color: @theme_text_color;\n" + "}\n", + -1, NULL); +-- +2.24.1 + diff --git a/vte291.spec b/vte291.spec index 0e64e91..f01101a 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ Name: vte291 Version: 0.60.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -20,6 +20,7 @@ Source0: http://download.gnome.org/sources/vte/0.60/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 +# https://gitlab.gnome.org/GNOME/vte/-/issues/226 Patch100: vte291-cntnr-precmd-preexec-scroll.patch BuildRequires: gcc-c++ @@ -119,6 +120,9 @@ emulator library. %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Apr 06 2020 Debarshi Ray - 0.60.1-2 +- Improve legibility when using colours from the system theme + * Tue Mar 31 2020 Kalev Lember - 0.60.1-1 - Update to 0.60.1 From b3dd0f68a1716e2f4df083d6aeba552b80ec9403 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Mon, 6 Apr 2020 23:50:21 +0200 Subject: [PATCH 054/164] Fix flatpak module build --- vte291.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/vte291.spec b/vte291.spec index f01101a..aa8ec0a 100644 --- a/vte291.spec +++ b/vte291.spec @@ -84,6 +84,10 @@ emulator library. %prep %setup -q -n vte-%{version} %patch100 -p1 -b .cntnr-precmd-preexec-scroll +%if 0%{?flatpak} +# Install user units where systemd macros expect them +sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build +%endif %build # Avoid overriding vte's own -fno-exceptions From 88550b88926410261481e5b644bb3216dc9cf4fa Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Mon, 27 Apr 2020 10:52:16 +0200 Subject: [PATCH 055/164] Update to 0.60.2 --- .gitignore | 1 + sources | 2 +- vte291.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 759efe7..b990801 100644 --- a/.gitignore +++ b/.gitignore @@ -64,3 +64,4 @@ /vte-0.59.92.tar.xz /vte-0.60.0.tar.xz /vte-0.60.1.tar.xz +/vte-0.60.2.tar.xz diff --git a/sources b/sources index 2cc5db2..5550e9a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.60.1.tar.xz) = 123a8fcc14f4dba450411f95f43eb60108fee95c328d0e7331c9366d96ba2caa548dece3e95a8b779dda19d322d6879d02abc6ac68e36450e4e72f17a0963c30 +SHA512 (vte-0.60.2.tar.xz) = 801ac727cab33d2c3f4ba4d86bf7f19a82628acd2739196f24c85d038ba6bcc6a67239aac09141b8e0119a67f199ff8a8c653641a8e9aea1e8ab68bfd16017db diff --git a/vte291.spec b/vte291.spec index aa8ec0a..bad199f 100644 --- a/vte291.spec +++ b/vte291.spec @@ -10,8 +10,8 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.60.1 -Release: 2%{?dist} +Version: 0.60.2 +Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -124,6 +124,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Apr 27 2020 Kalev Lember - 0.60.2-1 +- Update to 0.60.2 + * Mon Apr 06 2020 Debarshi Ray - 0.60.1-2 - Improve legibility when using colours from the system theme From 6a31daaa7d6446c47018a9bb4e5ec345be19e0b6 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Sat, 16 May 2020 08:28:38 +0100 Subject: [PATCH 056/164] Rebuild for ICU 67 --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index bad199f..517a0e9 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ Name: vte291 Version: 0.60.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -124,6 +124,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Sat May 16 2020 Pete Walter - 0.60.2-2 +- Rebuild for ICU 67 + * Mon Apr 27 2020 Kalev Lember - 0.60.2-1 - Update to 0.60.2 From 44471338e05d8d8423ac6f0fdc9af353fef3285e Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Thu, 4 Jun 2020 10:21:57 +0200 Subject: [PATCH 057/164] Update to 0.60.3 --- .gitignore | 1 + sources | 2 +- vte291.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index b990801..40fdae6 100644 --- a/.gitignore +++ b/.gitignore @@ -65,3 +65,4 @@ /vte-0.60.0.tar.xz /vte-0.60.1.tar.xz /vte-0.60.2.tar.xz +/vte-0.60.3.tar.xz diff --git a/sources b/sources index 5550e9a..a2dc3c9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.60.2.tar.xz) = 801ac727cab33d2c3f4ba4d86bf7f19a82628acd2739196f24c85d038ba6bcc6a67239aac09141b8e0119a67f199ff8a8c653641a8e9aea1e8ab68bfd16017db +SHA512 (vte-0.60.3.tar.xz) = 3694fe711e0b3eb9d6ba37ad8036f5d3cca4265635ed7afcde750a8445b17f820d1c55b557d0ea1c8a5a45e5408915d8da2ffd65b4d397c6582f288812ae1f18 diff --git a/vte291.spec b/vte291.spec index 517a0e9..1a19b62 100644 --- a/vte291.spec +++ b/vte291.spec @@ -10,8 +10,8 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.60.2 -Release: 2%{?dist} +Version: 0.60.3 +Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -124,6 +124,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Thu Jun 04 2020 Kalev Lember - 0.60.3-1 +- Update to 0.60.3 + * Sat May 16 2020 Pete Walter - 0.60.2-2 - Rebuild for ICU 67 From 3bef72c9cb2e13669e77e410cddef7718b782c9a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 29 Jul 2020 13:54:44 +0000 Subject: [PATCH 058/164] - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index 1a19b62..2ed10b0 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ Name: vte291 Version: 0.60.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -124,6 +124,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Wed Jul 29 2020 Fedora Release Engineering - 0.60.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Thu Jun 04 2020 Kalev Lember - 0.60.3-1 - Update to 0.60.3 From b6699a27104a86ef4fb26a7da050df8f6baddba3 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 24 Sep 2020 15:36:06 +0200 Subject: [PATCH 059/164] Update to 0.61.90 - Rebase downstream patches - VTE no longer insists on -fno-exceptions: https://gitlab.gnome.org/GNOME/vte/-/issues/185 --- .gitignore | 1 + sources | 2 +- vte291-cntnr-precmd-preexec-scroll.patch | 431 ++++++++--------------- vte291.spec | 18 +- 4 files changed, 157 insertions(+), 295 deletions(-) diff --git a/.gitignore b/.gitignore index 40fdae6..0a6c777 100644 --- a/.gitignore +++ b/.gitignore @@ -66,3 +66,4 @@ /vte-0.60.1.tar.xz /vte-0.60.2.tar.xz /vte-0.60.3.tar.xz +/vte-0.61.90.tar.xz diff --git a/sources b/sources index a2dc3c9..a91aa1c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.60.3.tar.xz) = 3694fe711e0b3eb9d6ba37ad8036f5d3cca4265635ed7afcde750a8445b17f820d1c55b557d0ea1c8a5a45e5408915d8da2ffd65b4d397c6582f288812ae1f18 +SHA512 (vte-0.61.90.tar.xz) = a52d9afc0c60f4d3d6724d3e196c58fa40aec0bb5c4650affdc103abe02ecd452cccb4b8f7dfb2f6f041033cea96fd84018b7727f83a4764ec90cc7987d6245b diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index 5548b6c..d8cdd0d 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,7 +1,7 @@ -From 100b3f8acecf8c68201d6bbb7fc05e9475d8d401 Mon Sep 17 00:00:00 2001 +From 7e648254324c8b66480f341758428528022c7a04 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 -Subject: [PATCH 01/12] Add sequences and signals for desktop notification +Subject: [PATCH 01/10] Add sequences and signals for desktop notification Add sequences OSC 777 ; notify ; SUMMARY ; BODY BEL @@ -36,17 +36,17 @@ index 241128c3ccfe..4412cf3d5f5c 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index cba606e853a4..ae49a07d7376 100644 +index f8592985ee68..f16adef1b943 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10239,6 +10239,15 @@ Terminal::emit_pending_signals() +@@ -10199,6 +10199,15 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); + if (m_notification_received) { + _vte_debug_print (VTE_DEBUG_SIGNALS, + "Emitting `notification-received'.\n"); -+ g_signal_emit(object, signals[SIGNAL_NOTIFICATION_RECEIVED], 0, ++ g_signal_emit(freezer.get(), signals[SIGNAL_NOTIFICATION_RECEIVED], 0, + m_notification_summary.c_str(), + m_notification_body.c_str()); + m_notification_received = false; @@ -56,7 +56,7 @@ index cba606e853a4..ae49a07d7376 100644 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 31012518362e..6ad0987d22ca 100644 +index d5e96535a867..71c4c66cc4ee 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -104,8 +104,10 @@ struct _VteTerminalClass { @@ -72,10 +72,10 @@ index 31012518362e..6ad0987d22ca 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 5808a210d3d4..005423567073 100644 +index 936b38b947a0..15fcff186df1 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -738,6 +738,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -928,6 +928,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->child_exited = NULL; klass->encoding_changed = NULL; klass->char_size_changed = NULL; @@ -83,7 +83,7 @@ index 5808a210d3d4..005423567073 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -819,6 +820,26 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1009,6 +1010,26 @@ vte_terminal_class_init(VteTerminalClass *klass) G_OBJECT_CLASS_TYPE(klass), g_cclosure_marshal_VOID__INTv); @@ -111,7 +111,7 @@ index 5808a210d3d4..005423567073 100644 * VteTerminal::window-title-changed: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index ae9fb08c310a..baf681e45b2c 100644 +index cb207e57f928..b44dfd13a054 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -56,6 +56,7 @@ enum { @@ -123,10 +123,10 @@ index ae9fb08c310a..baf681e45b2c 100644 LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 93e905270c29..ae4f705ea80d 100644 +index 8c510912f2f6..3f0bc1546c65 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -709,6 +709,11 @@ public: +@@ -934,6 +934,11 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -138,7 +138,7 @@ index 93e905270c29..ae4f705ea80d 100644 std::string m_window_title{}; std::string m_current_directory_uri{}; std::string m_current_file_uri{}; -@@ -1426,6 +1431,9 @@ public: +@@ -1652,6 +1657,9 @@ public: int osc) noexcept; /* OSC handlers */ @@ -149,10 +149,10 @@ index 93e905270c29..ae4f705ea80d 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 2d00ceec5509..2b69ca2c14f0 100644 +index f2d1e5244827..8dc3af82c11c 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1377,6 +1377,33 @@ Terminal::delete_lines(vte::grid::row_t param) +@@ -1378,6 +1378,33 @@ Terminal::delete_lines(vte::grid::row_t param) m_text_deleted_flag = TRUE; } @@ -186,7 +186,7 @@ index 2d00ceec5509..2b69ca2c14f0 100644 bool Terminal::get_osc_color_index(int osc, int value, -@@ -6464,6 +6491,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6579,6 +6606,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) reset_color(VTE_HIGHLIGHT_FG, VTE_COLOR_SOURCE_ESCAPE); break; @@ -197,7 +197,7 @@ index 2d00ceec5509..2b69ca2c14f0 100644 case VTE_OSC_XTERM_SET_ICON_TITLE: case VTE_OSC_XTERM_SET_XPROPERTY: case VTE_OSC_XTERM_SET_COLOR_MOUSE_CURSOR_FG: -@@ -6504,7 +6535,6 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6619,7 +6650,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 +206,13 @@ index 2d00ceec5509..2b69ca2c14f0 100644 default: break; -- -2.24.1 +2.25.4 -From 2a509fab63f42995d4b0f77bac4a9d79e508880e Mon Sep 17 00:00:00 2001 +From eb960a4300cf363c9beaafc8a01b9855d7764ad6 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 -Subject: [PATCH 02/12] vte.sh: Emit OSC 777 from PROMPT_COMMAND +Subject: [PATCH 02/10] 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 @@ -242,13 +242,13 @@ index 8b3153da0f1a..d6769de82766 100644 } -- -2.24.1 +2.25.4 -From 268e1f1f5e71822b9e43ae4bfeea43710de32152 Mon Sep 17 00:00:00 2001 +From cffffda11171e0e38f90d31b45fcb6b8b68478dd Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 -Subject: [PATCH 03/12] Test the notification-received signal +Subject: [PATCH 03/10] Test the notification-received signal --- bindings/vala/app.vala | 7 +++++++ @@ -281,10 +281,10 @@ index fc26c2b0dfc3..634b8ddeeb91 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 0c7eed5d18f1..6086c0a65db2 100644 +index a615fd5bddb9..53a685aa6cb4 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1639,6 +1639,14 @@ window_window_title_changed_cb(VteTerminal* terminal, +@@ -1856,6 +1856,14 @@ window_window_title_changed_cb(VteTerminal* terminal, vte_terminal_get_window_title(window->terminal)); } @@ -299,7 +299,7 @@ index 0c7eed5d18f1..6086c0a65db2 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -1871,6 +1879,8 @@ vteapp_window_constructed(GObject *object) +@@ -2091,6 +2099,8 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); @@ -309,13 +309,13 @@ index 0c7eed5d18f1..6086c0a65db2 100644 if (options.no_double_buffer) { G_GNUC_BEGIN_IGNORE_DEPRECATIONS; -- -2.24.1 +2.25.4 -From 4756e38cc2678467d08245c192fd86b3b01049da Mon Sep 17 00:00:00 2001 +From dc045526e3b97ed71cdb02b49b78726c7bce2ceb Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 -Subject: [PATCH 04/12] Add a property to configure the scroll speed +Subject: [PATCH 04/10] 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,7 +331,7 @@ 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 20067c88bae3..2cc8d70ca4f9 100644 +index 28c1c9585ebc..c2205630249d 100644 --- a/doc/reference/vte-sections.txt +++ b/doc/reference/vte-sections.txt @@ -52,6 +52,7 @@ vte_terminal_get_cursor_blink_mode @@ -343,19 +343,19 @@ index 20067c88bae3..2cc8d70ca4f9 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index ae49a07d7376..8fad2b477950 100644 +index f16adef1b943..2cb2ac1c4d4c 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9443,6 +9443,7 @@ void - Terminal::widget_scroll(GdkEventScroll *event) +@@ -9392,6 +9392,7 @@ vte_cairo_get_clip_region (cairo_t *cr) + bool + Terminal::widget_mouse_scroll(MouseEvent const& event) { - gdouble delta_x, delta_y; + gdouble scroll_speed; gdouble v; gint cnt, i; int button; -@@ -9499,7 +9500,13 @@ Terminal::widget_scroll(GdkEventScroll *event) - return; +@@ -9448,7 +9449,13 @@ Terminal::widget_mouse_scroll(MouseEvent const& event) + return true; } - v = MAX (1., ceil (gtk_adjustment_get_page_increment (m_vadjustment.get()) / 10.)); @@ -369,7 +369,7 @@ index ae49a07d7376..8fad2b477950 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -9796,6 +9803,16 @@ Terminal::decscusr_cursor_shape() const noexcept +@@ -9751,6 +9758,16 @@ Terminal::decscusr_cursor_shape() const noexcept } } @@ -387,12 +387,12 @@ index ae49a07d7376..8fad2b477950 100644 Terminal::set_scrollback_lines(long lines) { diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 6ad0987d22ca..94febee1d494 100644 +index 71c4c66cc4ee..203c77e08c57 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -287,6 +287,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, +@@ -306,6 +306,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, _VTE_PUBLIC - VteCursorShape vte_terminal_get_cursor_shape(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); + VteCursorShape vte_terminal_get_cursor_shape(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); +_VTE_PUBLIC +void vte_terminal_set_scroll_speed(VteTerminal *terminal, @@ -402,10 +402,10 @@ index 6ad0987d22ca..94febee1d494 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 005423567073..ecd004a814e7 100644 +index 15fcff186df1..b9a3a2156cf6 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -528,6 +528,9 @@ vte_terminal_get_property (GObject *object, +@@ -706,6 +706,9 @@ try case PROP_REWRAP_ON_RESIZE: g_value_set_boolean (value, vte_terminal_get_rewrap_on_resize (terminal)); break; @@ -415,7 +415,7 @@ index 005423567073..ecd004a814e7 100644 case PROP_SCROLLBACK_LINES: g_value_set_uint (value, vte_terminal_get_scrollback_lines(terminal)); break; -@@ -635,6 +638,9 @@ vte_terminal_set_property (GObject *object, +@@ -821,6 +824,9 @@ try case PROP_REWRAP_ON_RESIZE: vte_terminal_set_rewrap_on_resize (terminal, g_value_get_boolean (value)); break; @@ -425,7 +425,7 @@ index 005423567073..ecd004a814e7 100644 case PROP_SCROLLBACK_LINES: vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); break; -@@ -1708,6 +1714,21 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1915,6 +1921,21 @@ vte_terminal_class_init(VteTerminalClass *klass) TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -447,8 +447,8 @@ index 005423567073..ecd004a814e7 100644 /** * VteTerminal:scrollback-lines: * -@@ -4434,6 +4455,30 @@ vte_terminal_get_row_count(VteTerminal *terminal) - return IMPL(terminal)->m_row_count; +@@ -5310,6 +5331,30 @@ catch (...) + return -1; } +/** @@ -479,10 +479,10 @@ index 005423567073..ecd004a814e7 100644 * vte_terminal_set_scrollback_lines: * @terminal: a #VteTerminal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index baf681e45b2c..a9c256635948 100644 +index b44dfd13a054..30b917786b5b 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh -@@ -88,6 +88,7 @@ enum { +@@ -89,6 +89,7 @@ enum { PROP_MOUSE_POINTER_AUTOHIDE, PROP_PTY, PROP_REWRAP_ON_RESIZE, @@ -491,10 +491,10 @@ index baf681e45b2c..a9c256635948 100644 PROP_SCROLL_ON_KEYSTROKE, PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index ae4f705ea80d..9c0b8b454468 100644 +index 3f0bc1546c65..f934a59b9008 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -487,6 +487,7 @@ public: +@@ -697,6 +697,7 @@ public: /* Scrolling options. */ bool m_scroll_on_output{false}; bool m_scroll_on_keystroke{true}; @@ -502,7 +502,7 @@ index ae4f705ea80d..9c0b8b454468 100644 vte::grid::row_t m_scrollback_lines{0}; /* Restricted scrolling */ -@@ -1304,6 +1305,7 @@ public: +@@ -1528,6 +1529,7 @@ public: bool set_input_enabled(bool enabled); bool set_mouse_autohide(bool autohide); bool set_rewrap_on_resize(bool rewrap); @@ -511,13 +511,13 @@ index ae4f705ea80d..9c0b8b454468 100644 bool set_scroll_on_keystroke(bool scroll); bool set_scroll_on_output(bool scroll); -- -2.24.1 +2.25.4 -From 4a319241ad18071b85acea28f929b332d00e24da Mon Sep 17 00:00:00 2001 +From f18dfdc26541e79ec3591cdf3cc9fc413f9b6514 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 -Subject: [PATCH 05/12] Test the scroll-speed property +Subject: [PATCH 05/10] Test the scroll-speed property https://bugzilla.redhat.com/show_bug.cgi?id=1103380 --- @@ -555,10 +555,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 6086c0a65db2..0c7a70bf6da5 100644 +index 53a685aa6cb4..ebc50c17fe54 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -98,6 +98,7 @@ public: +@@ -109,6 +109,7 @@ public: int verbosity{0}; double cell_height_scale{1.0}; double cell_width_scale{1.0}; @@ -566,7 +566,7 @@ index 6086c0a65db2..0c7a70bf6da5 100644 VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM}; VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK}; VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS}; -@@ -418,6 +419,8 @@ public: +@@ -572,6 +573,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 }, @@ -574,8 +574,8 @@ index 6086c0a65db2..0c7a70bf6da5 100644 + "Specify the scroll speed", nullptr }, { "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, -@@ -1912,6 +1915,7 @@ vteapp_window_constructed(GObject *object) + { "sixel", 0, G_OPTION_FLAG_REVERSE, G_OPTION_ARG_NONE, &no_sixel, +@@ -2133,6 +2136,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 +584,13 @@ index 6086c0a65db2..0c7a70bf6da5 100644 vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); -- -2.24.1 +2.25.4 -From 1df88d4cb8ebdbcac0ad55c43ed17e91b7396ea6 Mon Sep 17 00:00:00 2001 +From 7934c3f70ffe08d51678257e17e2dddacd9e083c Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 -Subject: [PATCH 06/12] Support preexec notifications from an interactive shell +Subject: [PATCH 06/10] Support preexec notifications from an interactive shell Add sequences OSC 777 ; preexec BEL @@ -616,17 +616,17 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 8fad2b477950..b103f3cee0ce 100644 +index 2cb2ac1c4d4c..153dba7580c0 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10265,6 +10265,13 @@ Terminal::emit_pending_signals() +@@ -10225,6 +10225,13 @@ Terminal::emit_pending_signals() m_notification_received = false; } + if (m_shell_preexec) { + _vte_debug_print (VTE_DEBUG_SIGNALS, + "Emitting `shell-preexec'.\n"); -+ g_signal_emit(object, signals[SIGNAL_SHELL_PREEXEC], 0); ++ g_signal_emit(freezer.get(), signals[SIGNAL_SHELL_PREEXEC], 0); + m_shell_preexec = FALSE; + } + @@ -647,7 +647,7 @@ index d6769de82766..c7a3b07f9ea4 100644 ;; esac diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 94febee1d494..2d757afbdcc0 100644 +index 203c77e08c57..5668ac7d71df 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -105,9 +105,10 @@ struct _VteTerminalClass { @@ -663,10 +663,10 @@ index 94febee1d494..2d757afbdcc0 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index ecd004a814e7..1b3e2690164f 100644 +index b9a3a2156cf6..bdaadf6f43d4 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -745,6 +745,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -935,6 +935,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->encoding_changed = NULL; klass->char_size_changed = NULL; klass->notification_received = NULL; @@ -674,7 +674,7 @@ index ecd004a814e7..1b3e2690164f 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -846,6 +847,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1036,6 +1037,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -699,7 +699,7 @@ index ecd004a814e7..1b3e2690164f 100644 * VteTerminal::window-title-changed: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index a9c256635948..79c528ea8243 100644 +index 30b917786b5b..d3ad1435ae53 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -52,6 +52,7 @@ enum { @@ -711,10 +711,10 @@ index a9c256635948..79c528ea8243 100644 SIGNAL_TEXT_INSERTED, SIGNAL_TEXT_MODIFIED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 9c0b8b454468..dd98905860f4 100644 +index f934a59b9008..ae2b989a9652 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -715,6 +715,8 @@ public: +@@ -940,6 +940,8 @@ public: std::string m_notification_summary; std::string m_notification_body; @@ -724,10 +724,10 @@ index 9c0b8b454468..dd98905860f4 100644 std::string m_current_directory_uri{}; std::string m_current_file_uri{}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 2b69ca2c14f0..d8866cbeb225 100644 +index 8dc3af82c11c..a7c964500f7c 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1402,6 +1402,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1403,6 +1403,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, m_notification_body = *token; return; } @@ -739,13 +739,13 @@ index 2b69ca2c14f0..d8866cbeb225 100644 bool -- -2.24.1 +2.25.4 -From f2581b1532eebc4bcfc2337eb367abfd5599dd0c Mon Sep 17 00:00:00 2001 +From dd0f90272d03424cca458068a87f971a593b5c85 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 20 Apr 2018 18:21:53 +0200 -Subject: [PATCH 07/12] Test the shell-preexec signal +Subject: [PATCH 07/10] Test the shell-preexec signal https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 @@ -779,10 +779,10 @@ index c984b868246d..83af686be106 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 0c7a70bf6da5..2dece3ddb724 100644 +index ebc50c17fe54..dbfe3ef5b9b1 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1650,6 +1650,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1867,6 +1867,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -795,7 +795,7 @@ index 0c7a70bf6da5..2dece3ddb724 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -1883,6 +1889,7 @@ vteapp_window_constructed(GObject *object) +@@ -2103,6 +2109,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 +804,13 @@ index 0c7a70bf6da5..2dece3ddb724 100644 /* Settings */ if (options.no_double_buffer) { -- -2.24.1 +2.25.4 -From cee3f876af49aa199955e557001a57b317f93634 Mon Sep 17 00:00:00 2001 +From 2356a5c19f4b954446170f41dc1cb7dcdbbbc374 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:20:30 +0200 -Subject: [PATCH 08/12] Support precmd notifications from an interactive shell +Subject: [PATCH 08/10] Support precmd notifications from an interactive shell Add sequences OSC 777 ; precmd BEL @@ -836,17 +836,17 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index b103f3cee0ce..1bda2bfbca39 100644 +index 153dba7580c0..a9e4b2602fa7 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10272,6 +10272,13 @@ Terminal::emit_pending_signals() +@@ -10232,6 +10232,13 @@ Terminal::emit_pending_signals() m_shell_preexec = FALSE; } + if (m_shell_precmd) { + _vte_debug_print (VTE_DEBUG_SIGNALS, + "Emitting `shell-precmd'.\n"); -+ g_signal_emit(object, signals[SIGNAL_SHELL_PRECMD], 0); ++ g_signal_emit(freezer.get(), signals[SIGNAL_SHELL_PRECMD], 0); + m_shell_precmd = FALSE; + } + @@ -867,7 +867,7 @@ index c7a3b07f9ea4..4cff7dd1fb71 100644 } diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 2d757afbdcc0..a75ae7ee2640 100644 +index 5668ac7d71df..cbd2a77f9f29 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -105,10 +105,11 @@ struct _VteTerminalClass { @@ -884,10 +884,10 @@ index 2d757afbdcc0..a75ae7ee2640 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 1b3e2690164f..0d61f90cda76 100644 +index bdaadf6f43d4..0b62760e5205 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -745,6 +745,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -935,6 +935,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->encoding_changed = NULL; klass->char_size_changed = NULL; klass->notification_received = NULL; @@ -895,7 +895,7 @@ index 1b3e2690164f..0d61f90cda76 100644 klass->shell_preexec = NULL; klass->window_title_changed = NULL; klass->icon_title_changed = NULL; -@@ -847,6 +848,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1037,6 +1038,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -920,7 +920,7 @@ index 1b3e2690164f..0d61f90cda76 100644 * VteTerminal::shell-preexec: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 79c528ea8243..534298ada75c 100644 +index d3ad1435ae53..85c2a38d61ec 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -52,6 +52,7 @@ enum { @@ -932,10 +932,10 @@ index 79c528ea8243..534298ada75c 100644 SIGNAL_TEXT_DELETED, SIGNAL_TEXT_INSERTED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index dd98905860f4..6b1feb377df7 100644 +index ae2b989a9652..cbf1582f8b9a 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -715,6 +715,7 @@ public: +@@ -940,6 +940,7 @@ public: std::string m_notification_summary; std::string m_notification_body; @@ -944,10 +944,10 @@ index dd98905860f4..6b1feb377df7 100644 std::string m_window_title{}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index d8866cbeb225..f6669f853204 100644 +index a7c964500f7c..45d6dc3d2389 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1403,7 +1403,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1404,7 +1404,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, return; } @@ -959,13 +959,13 @@ index d8866cbeb225..f6669f853204 100644 } } -- -2.24.1 +2.25.4 -From 827f0406565cad98f835909451a854c7f8f3ead1 Mon Sep 17 00:00:00 2001 +From 252e0e2c469f32456052159a10a171bf9a819386 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:30:48 +0200 -Subject: [PATCH 09/12] Test the shell-precmd signal +Subject: [PATCH 09/10] Test the shell-precmd signal https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 @@ -999,10 +999,10 @@ index 83af686be106..300384f5c74b 100644 { print("[shell] executing command\n"); diff --git a/src/app/app.cc b/src/app/app.cc -index 2dece3ddb724..960aadc3cdc8 100644 +index dbfe3ef5b9b1..b01367a12646 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1650,6 +1650,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1867,6 +1867,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -1015,7 +1015,7 @@ index 2dece3ddb724..960aadc3cdc8 100644 static void shell_preexec_cb(VteTerminal *terminal) { -@@ -1889,6 +1895,7 @@ vteapp_window_constructed(GObject *object) +@@ -2109,6 +2115,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 +1024,13 @@ index 2dece3ddb724..960aadc3cdc8 100644 /* Settings */ -- -2.24.1 +2.25.4 -From 55c7d02eaad2bc37bc18c46152825fb2959f2db0 Mon Sep 17 00:00:00 2001 +From cfc2e11c554404945ab7ca964ec5df777415861a Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 10 Jun 2019 20:30:18 +0200 -Subject: [PATCH 10/12] Support tracking the active container inside the +Subject: [PATCH 10/10] Support tracking the active container inside the terminal Add sequences @@ -1052,19 +1052,19 @@ 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 | 9 +++++ src/vte/vteterminal.h | 4 +++ - src/vtegtk.cc | 65 +++++++++++++++++++++++++++++++++++++++++++ + src/vtegtk.cc | 77 +++++++++++++++++++++++++++++++++++++++++++ src/vtegtk.hh | 2 ++ - src/vteinternal.hh | 16 +++++++++++ - src/vteseq.cc | 31 +++++++++++++++++++++ - 6 files changed, 127 insertions(+) + src/vteinternal.hh | 16 +++++++++ + src/vteseq.cc | 31 +++++++++++++++++ + 6 files changed, 139 insertions(+) diff --git a/src/vte.cc b/src/vte.cc -index 1bda2bfbca39..aeca73d55934 100644 +index a9e4b2602fa7..170493a19c2e 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10293,6 +10293,15 @@ Terminal::emit_pending_signals() +@@ -10253,6 +10253,15 @@ Terminal::emit_pending_signals() m_window_title_changed = false; } @@ -1072,8 +1072,8 @@ index 1bda2bfbca39..aeca73d55934 100644 + _vte_debug_print(VTE_DEBUG_SIGNALS, + "Notifying `current-container-name' and `current-container-runtime'.\n"); + -+ g_object_notify_by_pspec(object, pspecs[PROP_CURRENT_CONTAINER_NAME]); -+ g_object_notify_by_pspec(object, pspecs[PROP_CURRENT_CONTAINER_RUNTIME]); ++ 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; + } + @@ -1081,25 +1081,25 @@ index 1bda2bfbca39..aeca73d55934 100644 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 a75ae7ee2640..53de9c737000 100644 +index cbd2a77f9f29..15aa421a0c68 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -458,6 +458,10 @@ glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); +@@ -484,6 +484,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_GNUC_NONNULL(1); + const char *vte_terminal_get_window_title(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); _VTE_PUBLIC -+const char *vte_terminal_get_current_container_name(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); ++const char *vte_terminal_get_current_container_name(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); +_VTE_PUBLIC -+const char *vte_terminal_get_current_container_runtime(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); ++const char *vte_terminal_get_current_container_runtime(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); +_VTE_PUBLIC - const char *vte_terminal_get_current_directory_uri(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); + const char *vte_terminal_get_current_directory_uri(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); _VTE_PUBLIC - const char *vte_terminal_get_current_file_uri(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); + 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 0d61f90cda76..15a7f1ab1ce0 100644 +index 0b62760e5205..2fecdcde1a36 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -483,6 +483,12 @@ vte_terminal_get_property (GObject *object, +@@ -658,6 +658,12 @@ try case PROP_CURSOR_BLINK_MODE: g_value_set_enum (value, vte_terminal_get_cursor_blink_mode (terminal)); break; @@ -1112,7 +1112,7 @@ index 0d61f90cda76..15a7f1ab1ce0 100644 case PROP_CURRENT_DIRECTORY_URI: g_value_set_string (value, vte_terminal_get_current_directory_uri (terminal)); break; -@@ -1827,6 +1833,27 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -2034,6 +2040,27 @@ vte_terminal_class_init(VteTerminalClass *klass) NULL, (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -1140,8 +1140,8 @@ index 0d61f90cda76..15a7f1ab1ce0 100644 /** * VteTerminal:current-directory-uri: * -@@ -3811,6 +3838,44 @@ vte_terminal_get_column_count(VteTerminal *terminal) - return IMPL(terminal)->m_column_count; +@@ -4517,6 +4544,56 @@ catch (...) + return -1; } +/** @@ -1152,7 +1152,8 @@ index 0d61f90cda76..15a7f1ab1ce0 100644 + * container, or %NULL + */ +const char * -+vte_terminal_get_current_container_name(VteTerminal *terminal) ++vte_terminal_get_current_container_name(VteTerminal *terminal) noexcept ++try +{ + g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL); + auto impl = IMPL(terminal); @@ -1162,6 +1163,11 @@ index 0d61f90cda76..15a7f1ab1ce0 100644 + const VteContainer &container = impl->m_containers.top(); + return container.m_name.c_str(); +} ++catch (...) ++{ ++ vte::log_exception(); ++ return NULL; ++} + +/** + * vte_terminal_get_current_container_runtime: @@ -1171,7 +1177,8 @@ index 0d61f90cda76..15a7f1ab1ce0 100644 + * toolset used to set up the current container, or %NULL + */ +const char * -+vte_terminal_get_current_container_runtime(VteTerminal *terminal) ++vte_terminal_get_current_container_runtime(VteTerminal *terminal) noexcept ++try +{ + g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL); + auto impl = IMPL(terminal); @@ -1181,12 +1188,17 @@ index 0d61f90cda76..15a7f1ab1ce0 100644 + const VteContainer &container = impl->m_containers.top(); + return container.m_runtime.c_str(); +} ++catch (...) ++{ ++ vte::log_exception(); ++ return NULL; ++} + /** * vte_terminal_get_current_directory_uri: * @terminal: a #VteTerminal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 534298ada75c..66d2f1425fad 100644 +index 85c2a38d61ec..a258902a3092 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -76,6 +76,8 @@ enum { @@ -1199,10 +1211,10 @@ index 534298ada75c..66d2f1425fad 100644 PROP_CURRENT_FILE_URI, PROP_DELETE_BINDING, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 6b1feb377df7..2329d7fd4c13 100644 +index cbf1582f8b9a..10b38ffbf5f5 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -61,6 +61,7 @@ +@@ -57,6 +57,7 @@ #include #include #include @@ -1210,7 +1222,7 @@ index 6b1feb377df7..2329d7fd4c13 100644 #include #include #include -@@ -98,6 +99,18 @@ typedef enum _VteCharacterReplacement { +@@ -95,6 +96,18 @@ typedef enum _VteCharacterReplacement { VTE_CHARACTER_REPLACEMENT_LINE_DRAWING } VteCharacterReplacement; @@ -1229,7 +1241,7 @@ index 6b1feb377df7..2329d7fd4c13 100644 typedef struct _VtePaletteColor { struct { vte::color::rgb color; -@@ -710,6 +723,9 @@ public: +@@ -935,6 +948,9 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -1240,10 +1252,10 @@ index 6b1feb377df7..2329d7fd4c13 100644 bool m_notification_received{false}; std::string m_notification_summary; diff --git a/src/vteseq.cc b/src/vteseq.cc -index f6669f853204..2b9dd9df820a 100644 +index 45d6dc3d2389..447e80608072 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1385,6 +1385,37 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1386,6 +1386,37 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, if (token == endtoken) return; @@ -1282,154 +1294,5 @@ index f6669f853204..2b9dd9df820a 100644 ++token; -- -2.24.1 - - -From e2c44d1e7cf544f26dddfe7ea21452eb53800b83 Mon Sep 17 00:00:00 2001 -From: Jakub Steiner -Date: Thu, 2 Apr 2020 18:20:44 +0200 -Subject: [PATCH 11/12] widget: Improve legibility when using colours from the - system theme - -https://gitlab.gnome.org/GNOME/vte/-/issues/225 ---- - src/vtegtk.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 15a7f1ab1ce0..5999272c0648 100644 ---- a/src/vtegtk.cc -+++ b/src/vtegtk.cc -@@ -1922,7 +1922,7 @@ vte_terminal_class_init(VteTerminalClass *klass) - "VteTerminal, " VTE_TERMINAL_CSS_NAME " {\n" - "padding: 1px 1px 1px 1px;\n" - "background-color: @theme_base_color;\n" -- "color: @theme_fg_color;\n" -+ "color: @theme_text_color;\n" - "}\n", - -1, NULL); - --- -2.24.1 - - -From 68d735ef2649df34f4a283d70555a88f04231ecc Mon Sep 17 00:00:00 2001 -From: Jakub Steiner -Date: Tue, 31 Mar 2020 20:55:23 +0200 -Subject: [PATCH 12/12] widget: Improve legibility by tweaking the system - theme's base colour - -Some changes by Debarshi Ray. - -https://gitlab.gnome.org/GNOME/vte/-/issues/226 ---- - src/vtegtk.cc | 67 ++++++++++++++++++++++++++++++++++++++++++++------- - 1 file changed, 58 insertions(+), 9 deletions(-) - -diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 5999272c0648..a54c85b42e9d 100644 ---- a/src/vtegtk.cc -+++ b/src/vtegtk.cc -@@ -73,7 +73,8 @@ - #define VTE_TERMINAL_CSS_NAME "vte-terminal" - - struct _VteTerminalClassPrivate { -- GtkStyleProvider *style_provider; -+ GtkStyleProvider *style_provider_dark; -+ GtkStyleProvider *style_provider_light; - }; - - #ifdef VTE_DEBUG -@@ -127,6 +128,41 @@ valid_color(GdkRGBA const* color) - color->alpha >= 0. && color->alpha <= 1.; - } - -+static void -+vte_terminal_theme_update (VteTerminal *terminal) -+{ -+ GtkSettings *settings; -+ GtkStyleContext *context; -+ gboolean application_prefer_dark_theme; -+ -+ settings = gtk_settings_get_default (); -+ g_object_get (settings, "gtk-application-prefer-dark-theme", &application_prefer_dark_theme, nullptr); -+ -+ context = gtk_widget_get_style_context (&terminal->widget); -+ -+ if (application_prefer_dark_theme) { -+ gtk_style_context_remove_provider (context, -+ VTE_TERMINAL_GET_CLASS (terminal)->priv->style_provider_light); -+ -+ gtk_style_context_add_provider (context, -+ VTE_TERMINAL_GET_CLASS (terminal)->priv->style_provider_dark, -+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); -+ } else { -+ gtk_style_context_remove_provider (context, -+ VTE_TERMINAL_GET_CLASS (terminal)->priv->style_provider_dark); -+ -+ gtk_style_context_add_provider (context, -+ VTE_TERMINAL_GET_CLASS (terminal)->priv->style_provider_light, -+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); -+ } -+} -+ -+static void -+vte_terminal_theme_changed (VteTerminal *terminal) -+{ -+ vte_terminal_theme_update (terminal); -+} -+ - static void - vte_terminal_set_hadjustment(VteTerminal *terminal, - GtkAdjustment *adjustment) -@@ -392,14 +428,18 @@ static void - vte_terminal_init(VteTerminal *terminal) - { - void *place; -- GtkStyleContext *context; -+ GtkSettings *settings; - - _vte_debug_print(VTE_DEBUG_LIFECYCLE, "vte_terminal_init()\n"); - -- context = gtk_widget_get_style_context(&terminal->widget); -- gtk_style_context_add_provider (context, -- VTE_TERMINAL_GET_CLASS (terminal)->priv->style_provider, -- GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); -+ vte_terminal_theme_update (terminal); -+ -+ settings = gtk_settings_get_default (); -+ g_signal_connect_object (settings, -+ "notify::gtk-application-prefer-dark-theme", -+ G_CALLBACK (vte_terminal_theme_changed), -+ terminal, -+ G_CONNECT_SWAPPED); - - /* Initialize private data. NOTE: place is zeroed */ - place = vte_terminal_get_instance_private(terminal); -@@ -1917,11 +1957,20 @@ vte_terminal_class_init(VteTerminalClass *klass) - - klass->priv = G_TYPE_CLASS_GET_PRIVATE (klass, VTE_TYPE_TERMINAL, VteTerminalClassPrivate); - -- klass->priv->style_provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); -- gtk_css_provider_load_from_data (GTK_CSS_PROVIDER (klass->priv->style_provider), -+ klass->priv->style_provider_dark = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); -+ gtk_css_provider_load_from_data (GTK_CSS_PROVIDER (klass->priv->style_provider_dark), -+ "VteTerminal, " VTE_TERMINAL_CSS_NAME " {\n" -+ "padding: 1px 1px 1px 1px;\n" -+ "background-color: shade(@theme_base_color, 0.67);\n" -+ "color: @theme_text_color;\n" -+ "}\n", -+ -1, NULL); -+ -+ klass->priv->style_provider_light = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); -+ gtk_css_provider_load_from_data (GTK_CSS_PROVIDER (klass->priv->style_provider_light), - "VteTerminal, " VTE_TERMINAL_CSS_NAME " {\n" - "padding: 1px 1px 1px 1px;\n" -- "background-color: @theme_base_color;\n" -+ "background-color: shade(@theme_base_color, 1.1);\n" - "color: @theme_text_color;\n" - "}\n", - -1, NULL); --- -2.24.1 +2.25.4 diff --git a/vte291.spec b/vte291.spec index 2ed10b0..ed922fb 100644 --- a/vte291.spec +++ b/vte291.spec @@ -3,24 +3,23 @@ %global fribidi_version 1.0.0 %global glib2_version 2.52.0 %global gnutls_version 3.2.7 -%global gtk3_version 3.20.0 +%global gtk3_version 3.24.22 %global icu_uc_version 4.8 %global libsystemd_version 220 %global pango_version 1.22.0 %global pcre2_version 10.21 Name: vte291 -Version: 0.60.3 -Release: 2%{?dist} +Version: 0.61.90 +Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ URL: http://www.gnome.org/ -Source0: http://download.gnome.org/sources/vte/0.60/vte-%{version}.tar.xz +Source0: http://download.gnome.org/sources/vte/0.61/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 -# https://gitlab.gnome.org/GNOME/vte/-/issues/226 Patch100: vte291-cntnr-precmd-preexec-scroll.patch BuildRequires: gcc-c++ @@ -90,10 +89,6 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %endif %build -# Avoid overriding vte's own -fno-exceptions -# https://gitlab.gnome.org/GNOME/gnome-build-meta/issues/207 -%global optflags %(echo %{optflags} | sed 's/-fexceptions //') - %meson --buildtype=plain -Ddocs=true %meson_build @@ -104,7 +99,6 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %files -f vte-%{apiver}.lang %license COPYING.GPL3 -%doc NEWS %{_libdir}/libvte-%{apiver}.so.0* %{_libdir}/girepository-1.0/ %{_userunitdir}/vte-spawn-.scope.d @@ -124,6 +118,10 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Thu Sep 24 2020 Debarshi Ray - 0.61.90-1 +- Update to 0.61.90 +- Rebase downstream patches + * Wed Jul 29 2020 Fedora Release Engineering - 0.60.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild From 7bf35123df11aa1d3559c2bde3d94c6038831504 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 24 Sep 2020 16:39:35 +0200 Subject: [PATCH 060/164] Update to 0.61.91 --- .gitignore | 1 + sources | 2 +- vte291-cntnr-precmd-preexec-scroll.patch | 140 +++++++++++------------ vte291.spec | 5 +- 4 files changed, 76 insertions(+), 72 deletions(-) diff --git a/.gitignore b/.gitignore index 0a6c777..2611fb4 100644 --- a/.gitignore +++ b/.gitignore @@ -67,3 +67,4 @@ /vte-0.60.2.tar.xz /vte-0.60.3.tar.xz /vte-0.61.90.tar.xz +/vte-0.61.91.tar.xz diff --git a/sources b/sources index a91aa1c..8cd9b65 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.61.90.tar.xz) = a52d9afc0c60f4d3d6724d3e196c58fa40aec0bb5c4650affdc103abe02ecd452cccb4b8f7dfb2f6f041033cea96fd84018b7727f83a4764ec90cc7987d6245b +SHA512 (vte-0.61.91.tar.xz) = b8a308075257b2ad6aa237634ee875a68f441d28d4aa4d50675bbaa704f92746a7baa63d540fe41b81d557fa053f272e8f5d1a496bb3f833036df50489e9231c diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index d8cdd0d..a0b4df8 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,4 +1,4 @@ -From 7e648254324c8b66480f341758428528022c7a04 Mon Sep 17 00:00:00 2001 +From 1c0f5edf03d42df964391c6fb127438ebcece6a4 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 @@ -36,10 +36,10 @@ index 241128c3ccfe..4412cf3d5f5c 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index f8592985ee68..f16adef1b943 100644 +index 829e6630dbb0..120f2e97b3fd 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10199,6 +10199,15 @@ Terminal::emit_pending_signals() +@@ -10135,6 +10135,15 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); @@ -72,7 +72,7 @@ index d5e96535a867..71c4c66cc4ee 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 936b38b947a0..15fcff186df1 100644 +index 39f1c0bafa3a..40df2dd5d794 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -928,6 +928,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -123,10 +123,10 @@ index cb207e57f928..b44dfd13a054 100644 LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 8c510912f2f6..3f0bc1546c65 100644 +index bc75888e61c2..6148faeb2ab3 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -934,6 +934,11 @@ public: +@@ -917,6 +917,11 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -138,7 +138,7 @@ index 8c510912f2f6..3f0bc1546c65 100644 std::string m_window_title{}; std::string m_current_directory_uri{}; std::string m_current_file_uri{}; -@@ -1652,6 +1657,9 @@ public: +@@ -1633,6 +1638,9 @@ public: int osc) noexcept; /* OSC handlers */ @@ -149,10 +149,10 @@ index 8c510912f2f6..3f0bc1546c65 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 f2d1e5244827..8dc3af82c11c 100644 +index ba9a2df6b9c4..c765b0bfb1f4 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1378,6 +1378,33 @@ Terminal::delete_lines(vte::grid::row_t param) +@@ -1377,6 +1377,33 @@ Terminal::delete_lines(vte::grid::row_t param) m_text_deleted_flag = TRUE; } @@ -186,7 +186,7 @@ index f2d1e5244827..8dc3af82c11c 100644 bool Terminal::get_osc_color_index(int osc, int value, -@@ -6579,6 +6606,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6475,6 +6502,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) reset_color(VTE_HIGHLIGHT_FG, VTE_COLOR_SOURCE_ESCAPE); break; @@ -197,7 +197,7 @@ index f2d1e5244827..8dc3af82c11c 100644 case VTE_OSC_XTERM_SET_ICON_TITLE: case VTE_OSC_XTERM_SET_XPROPERTY: case VTE_OSC_XTERM_SET_COLOR_MOUSE_CURSOR_FG: -@@ -6619,7 +6650,6 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6515,7 +6546,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: @@ -209,7 +209,7 @@ index f2d1e5244827..8dc3af82c11c 100644 2.25.4 -From eb960a4300cf363c9beaafc8a01b9855d7764ad6 Mon Sep 17 00:00:00 2001 +From 69480414919fd217993f52da52424ee8fa5bc069 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 @@ -245,7 +245,7 @@ index 8b3153da0f1a..d6769de82766 100644 2.25.4 -From cffffda11171e0e38f90d31b45fcb6b8b68478dd Mon Sep 17 00:00:00 2001 +From 0945dfbbbc9692bddffcaabc62093ca1b638b73d 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 @@ -281,10 +281,10 @@ index fc26c2b0dfc3..634b8ddeeb91 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index a615fd5bddb9..53a685aa6cb4 100644 +index d8bfe9e13826..e95f58cd3bac 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1856,6 +1856,14 @@ window_window_title_changed_cb(VteTerminal* terminal, +@@ -1851,6 +1851,14 @@ window_window_title_changed_cb(VteTerminal* terminal, vte_terminal_get_window_title(window->terminal)); } @@ -299,7 +299,7 @@ index a615fd5bddb9..53a685aa6cb4 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2091,6 +2099,8 @@ vteapp_window_constructed(GObject *object) +@@ -2086,6 +2094,8 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); @@ -312,7 +312,7 @@ index a615fd5bddb9..53a685aa6cb4 100644 2.25.4 -From dc045526e3b97ed71cdb02b49b78726c7bce2ceb Mon Sep 17 00:00:00 2001 +From 6f26140f748c3c8874df2ac1ccafa1f9ae7284ca 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 @@ -331,7 +331,7 @@ 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 28c1c9585ebc..c2205630249d 100644 +index c222e7fdff0b..6da5eff30715 100644 --- a/doc/reference/vte-sections.txt +++ b/doc/reference/vte-sections.txt @@ -52,6 +52,7 @@ vte_terminal_get_cursor_blink_mode @@ -343,10 +343,10 @@ index 28c1c9585ebc..c2205630249d 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index f16adef1b943..2cb2ac1c4d4c 100644 +index 120f2e97b3fd..7d73943c314d 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9392,6 +9392,7 @@ vte_cairo_get_clip_region (cairo_t *cr) +@@ -9334,6 +9334,7 @@ vte_cairo_get_clip_region (cairo_t *cr) bool Terminal::widget_mouse_scroll(MouseEvent const& event) { @@ -354,7 +354,7 @@ index f16adef1b943..2cb2ac1c4d4c 100644 gdouble v; gint cnt, i; int button; -@@ -9448,7 +9449,13 @@ Terminal::widget_mouse_scroll(MouseEvent const& event) +@@ -9390,7 +9391,13 @@ Terminal::widget_mouse_scroll(MouseEvent const& event) return true; } @@ -369,7 +369,7 @@ index f16adef1b943..2cb2ac1c4d4c 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -9751,6 +9758,16 @@ Terminal::decscusr_cursor_shape() const noexcept +@@ -9693,6 +9700,16 @@ Terminal::decscusr_cursor_shape() const noexcept } } @@ -402,7 +402,7 @@ 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 15fcff186df1..b9a3a2156cf6 100644 +index 40df2dd5d794..89dc2e2666ea 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -706,6 +706,9 @@ try @@ -425,7 +425,7 @@ index 15fcff186df1..b9a3a2156cf6 100644 case PROP_SCROLLBACK_LINES: vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); break; -@@ -1915,6 +1921,21 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1911,6 +1917,21 @@ vte_terminal_class_init(VteTerminalClass *klass) TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -447,7 +447,7 @@ index 15fcff186df1..b9a3a2156cf6 100644 /** * VteTerminal:scrollback-lines: * -@@ -5310,6 +5331,30 @@ catch (...) +@@ -5298,6 +5319,30 @@ catch (...) return -1; } @@ -491,10 +491,10 @@ index b44dfd13a054..30b917786b5b 100644 PROP_SCROLL_ON_KEYSTROKE, PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 3f0bc1546c65..f934a59b9008 100644 +index 6148faeb2ab3..ea09af2ce036 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -697,6 +697,7 @@ public: +@@ -696,6 +696,7 @@ public: /* Scrolling options. */ bool m_scroll_on_output{false}; bool m_scroll_on_keystroke{true}; @@ -502,7 +502,7 @@ index 3f0bc1546c65..f934a59b9008 100644 vte::grid::row_t m_scrollback_lines{0}; /* Restricted scrolling */ -@@ -1528,6 +1529,7 @@ public: +@@ -1511,6 +1512,7 @@ public: bool set_input_enabled(bool enabled); bool set_mouse_autohide(bool autohide); bool set_rewrap_on_resize(bool rewrap); @@ -514,7 +514,7 @@ index 3f0bc1546c65..f934a59b9008 100644 2.25.4 -From f18dfdc26541e79ec3591cdf3cc9fc413f9b6514 Mon Sep 17 00:00:00 2001 +From a1084e232709f85dcb7f4cb09a0c83162d97b670 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 @@ -555,10 +555,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 53a685aa6cb4..ebc50c17fe54 100644 +index e95f58cd3bac..52893c87414a 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -109,6 +109,7 @@ public: +@@ -108,6 +108,7 @@ public: int verbosity{0}; double cell_height_scale{1.0}; double cell_width_scale{1.0}; @@ -566,7 +566,7 @@ index 53a685aa6cb4..ebc50c17fe54 100644 VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM}; VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK}; VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS}; -@@ -572,6 +573,8 @@ public: +@@ -569,6 +570,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 }, @@ -574,8 +574,8 @@ index 53a685aa6cb4..ebc50c17fe54 100644 + "Specify the scroll speed", nullptr }, { "scrollback-lines", 'n', 0, G_OPTION_ARG_INT, &scrollback_lines, "Specify the number of scrollback-lines (-1 for infinite)", nullptr }, - { "sixel", 0, G_OPTION_FLAG_REVERSE, G_OPTION_ARG_NONE, &no_sixel, -@@ -2133,6 +2136,7 @@ vteapp_window_constructed(GObject *object) + { "transparent", 'T', 0, G_OPTION_ARG_INT, &transparency_percent, +@@ -2127,6 +2130,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); @@ -587,7 +587,7 @@ index 53a685aa6cb4..ebc50c17fe54 100644 2.25.4 -From 7934c3f70ffe08d51678257e17e2dddacd9e083c Mon Sep 17 00:00:00 2001 +From 41f965b47879874d85954173ce162e728e24098d 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 @@ -616,10 +616,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 2cb2ac1c4d4c..153dba7580c0 100644 +index 7d73943c314d..8bc9807db3f8 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10225,6 +10225,13 @@ Terminal::emit_pending_signals() +@@ -10161,6 +10161,13 @@ Terminal::emit_pending_signals() m_notification_received = false; } @@ -663,7 +663,7 @@ index 203c77e08c57..5668ac7d71df 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index b9a3a2156cf6..bdaadf6f43d4 100644 +index 89dc2e2666ea..dfcf7e8a10ef 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -935,6 +935,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -711,10 +711,10 @@ index 30b917786b5b..d3ad1435ae53 100644 SIGNAL_TEXT_INSERTED, SIGNAL_TEXT_MODIFIED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index f934a59b9008..ae2b989a9652 100644 +index ea09af2ce036..9046ef2dd2b0 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -940,6 +940,8 @@ public: +@@ -923,6 +923,8 @@ public: std::string m_notification_summary; std::string m_notification_body; @@ -724,10 +724,10 @@ index f934a59b9008..ae2b989a9652 100644 std::string m_current_directory_uri{}; std::string m_current_file_uri{}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 8dc3af82c11c..a7c964500f7c 100644 +index c765b0bfb1f4..ad5935063bd9 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1403,6 +1403,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1402,6 +1402,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, m_notification_body = *token; return; } @@ -742,7 +742,7 @@ index 8dc3af82c11c..a7c964500f7c 100644 2.25.4 -From dd0f90272d03424cca458068a87f971a593b5c85 Mon Sep 17 00:00:00 2001 +From 4a3ab7db68ab1b60eb47920e4053c45854bbaebe 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 @@ -779,10 +779,10 @@ index c984b868246d..83af686be106 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index ebc50c17fe54..dbfe3ef5b9b1 100644 +index 52893c87414a..3ef597e97365 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1867,6 +1867,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1862,6 +1862,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -795,7 +795,7 @@ index ebc50c17fe54..dbfe3ef5b9b1 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2103,6 +2109,7 @@ vteapp_window_constructed(GObject *object) +@@ -2098,6 +2104,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); @@ -807,7 +807,7 @@ index ebc50c17fe54..dbfe3ef5b9b1 100644 2.25.4 -From 2356a5c19f4b954446170f41dc1cb7dcdbbbc374 Mon Sep 17 00:00:00 2001 +From 98239553f462dcb9416ccf1f8b62a220e9e90596 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 @@ -836,10 +836,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 153dba7580c0..a9e4b2602fa7 100644 +index 8bc9807db3f8..2b9aa866738d 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10232,6 +10232,13 @@ Terminal::emit_pending_signals() +@@ -10168,6 +10168,13 @@ Terminal::emit_pending_signals() m_shell_preexec = FALSE; } @@ -884,7 +884,7 @@ index 5668ac7d71df..cbd2a77f9f29 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index bdaadf6f43d4..0b62760e5205 100644 +index dfcf7e8a10ef..8b2292277f9d 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -935,6 +935,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -932,10 +932,10 @@ index d3ad1435ae53..85c2a38d61ec 100644 SIGNAL_TEXT_DELETED, SIGNAL_TEXT_INSERTED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index ae2b989a9652..cbf1582f8b9a 100644 +index 9046ef2dd2b0..8affbcba7397 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -940,6 +940,7 @@ public: +@@ -923,6 +923,7 @@ public: std::string m_notification_summary; std::string m_notification_body; @@ -944,10 +944,10 @@ index ae2b989a9652..cbf1582f8b9a 100644 std::string m_window_title{}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index a7c964500f7c..45d6dc3d2389 100644 +index ad5935063bd9..4b66681d713c 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1404,7 +1404,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1403,7 +1403,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, return; } @@ -962,7 +962,7 @@ index a7c964500f7c..45d6dc3d2389 100644 2.25.4 -From 252e0e2c469f32456052159a10a171bf9a819386 Mon Sep 17 00:00:00 2001 +From 138e0737dcddf4b67d53f0097093273840b8fc8a 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 @@ -999,10 +999,10 @@ index 83af686be106..300384f5c74b 100644 { print("[shell] executing command\n"); diff --git a/src/app/app.cc b/src/app/app.cc -index dbfe3ef5b9b1..b01367a12646 100644 +index 3ef597e97365..e1b10ca43b2c 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1867,6 +1867,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1862,6 +1862,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -1015,7 +1015,7 @@ index dbfe3ef5b9b1..b01367a12646 100644 static void shell_preexec_cb(VteTerminal *terminal) { -@@ -2109,6 +2115,7 @@ vteapp_window_constructed(GObject *object) +@@ -2104,6 +2110,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); @@ -1027,7 +1027,7 @@ index dbfe3ef5b9b1..b01367a12646 100644 2.25.4 -From cfc2e11c554404945ab7ca964ec5df777415861a Mon Sep 17 00:00:00 2001 +From e8ec1f5a08a7bec85ecd49bc66541cc973ff2bb2 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 @@ -1061,10 +1061,10 @@ agreed upon across multiple different terminal emulators [1]. 6 files changed, 139 insertions(+) diff --git a/src/vte.cc b/src/vte.cc -index a9e4b2602fa7..170493a19c2e 100644 +index 2b9aa866738d..3c907a800546 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10253,6 +10253,15 @@ Terminal::emit_pending_signals() +@@ -10189,6 +10189,15 @@ Terminal::emit_pending_signals() m_window_title_changed = false; } @@ -1096,7 +1096,7 @@ 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 0b62760e5205..2fecdcde1a36 100644 +index 8b2292277f9d..187a83a9b243 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -658,6 +658,12 @@ try @@ -1112,7 +1112,7 @@ index 0b62760e5205..2fecdcde1a36 100644 case PROP_CURRENT_DIRECTORY_URI: g_value_set_string (value, vte_terminal_get_current_directory_uri (terminal)); break; -@@ -2034,6 +2040,27 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -2030,6 +2036,27 @@ vte_terminal_class_init(VteTerminalClass *klass) NULL, (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -1140,7 +1140,7 @@ index 0b62760e5205..2fecdcde1a36 100644 /** * VteTerminal:current-directory-uri: * -@@ -4517,6 +4544,56 @@ catch (...) +@@ -4505,6 +4532,56 @@ catch (...) return -1; } @@ -1211,10 +1211,10 @@ index 85c2a38d61ec..a258902a3092 100644 PROP_CURRENT_FILE_URI, PROP_DELETE_BINDING, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index cbf1582f8b9a..10b38ffbf5f5 100644 +index 8affbcba7397..f2fc1ecd2abf 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -57,6 +57,7 @@ +@@ -56,6 +56,7 @@ #include #include #include @@ -1222,7 +1222,7 @@ index cbf1582f8b9a..10b38ffbf5f5 100644 #include #include #include -@@ -95,6 +96,18 @@ typedef enum _VteCharacterReplacement { +@@ -94,6 +95,18 @@ typedef enum _VteCharacterReplacement { VTE_CHARACTER_REPLACEMENT_LINE_DRAWING } VteCharacterReplacement; @@ -1241,7 +1241,7 @@ index cbf1582f8b9a..10b38ffbf5f5 100644 typedef struct _VtePaletteColor { struct { vte::color::rgb color; -@@ -935,6 +948,9 @@ public: +@@ -918,6 +931,9 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -1252,10 +1252,10 @@ index cbf1582f8b9a..10b38ffbf5f5 100644 bool m_notification_received{false}; std::string m_notification_summary; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 45d6dc3d2389..447e80608072 100644 +index 4b66681d713c..6e7cb8741696 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1386,6 +1386,37 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1385,6 +1385,37 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, if (token == endtoken) return; diff --git a/vte291.spec b/vte291.spec index ed922fb..16daef2 100644 --- a/vte291.spec +++ b/vte291.spec @@ -10,7 +10,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.61.90 +Version: 0.61.91 Release: 1%{?dist} Summary: Terminal emulator library @@ -118,6 +118,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Thu Sep 24 2020 Debarshi Ray - 0.61.91-1 +- Update to 0.61.91 + * Thu Sep 24 2020 Debarshi Ray - 0.61.90-1 - Update to 0.61.90 - Rebase downstream patches From a1c1e6f7789cad5da04fa9009118094468d8c00e Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 24 Sep 2020 16:59:02 +0200 Subject: [PATCH 061/164] Update to 0.62.0 --- .gitignore | 1 + sources | 2 +- vte291-cntnr-precmd-preexec-scroll.patch | 20 ++++++++++---------- vte291.spec | 7 +++++-- 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 2611fb4..1cbad67 100644 --- a/.gitignore +++ b/.gitignore @@ -68,3 +68,4 @@ /vte-0.60.3.tar.xz /vte-0.61.90.tar.xz /vte-0.61.91.tar.xz +/vte-0.62.0.tar.xz diff --git a/sources b/sources index 8cd9b65..6058959 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.61.91.tar.xz) = b8a308075257b2ad6aa237634ee875a68f441d28d4aa4d50675bbaa704f92746a7baa63d540fe41b81d557fa053f272e8f5d1a496bb3f833036df50489e9231c +SHA512 (vte-0.62.0.tar.xz) = 8942809d20ff845142dce8cf48b4eb6f9e4f333dc2647cceb0538112d5e10096ff836f24da1f0c34cc4bbee4f6c585c3feab33934c257887a82d6c67bce11402 diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index a0b4df8..f7952c7 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,4 +1,4 @@ -From 1c0f5edf03d42df964391c6fb127438ebcece6a4 Mon Sep 17 00:00:00 2001 +From 7732c66ff591db4abd29b0049210ba51dcced05e 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 @@ -209,7 +209,7 @@ index ba9a2df6b9c4..c765b0bfb1f4 100644 2.25.4 -From 69480414919fd217993f52da52424ee8fa5bc069 Mon Sep 17 00:00:00 2001 +From 2415aa05c467d94374a07e96ef74f745495de6c9 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 @@ -245,7 +245,7 @@ index 8b3153da0f1a..d6769de82766 100644 2.25.4 -From 0945dfbbbc9692bddffcaabc62093ca1b638b73d Mon Sep 17 00:00:00 2001 +From 17c87dc0f59794ab02a625cfd30c7474e43bdc6a 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 @@ -312,7 +312,7 @@ index d8bfe9e13826..e95f58cd3bac 100644 2.25.4 -From 6f26140f748c3c8874df2ac1ccafa1f9ae7284ca Mon Sep 17 00:00:00 2001 +From 4fbba287eb67ad302aff6c598cc41baa68ecfba6 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 @@ -514,7 +514,7 @@ index 6148faeb2ab3..ea09af2ce036 100644 2.25.4 -From a1084e232709f85dcb7f4cb09a0c83162d97b670 Mon Sep 17 00:00:00 2001 +From 6a85099ce760dbff74bca28b1ab3d9dbc56b598a 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 @@ -587,7 +587,7 @@ index e95f58cd3bac..52893c87414a 100644 2.25.4 -From 41f965b47879874d85954173ce162e728e24098d Mon Sep 17 00:00:00 2001 +From 829701c17f1ff9184ac57ad7735debdba29e572c 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 @@ -742,7 +742,7 @@ index c765b0bfb1f4..ad5935063bd9 100644 2.25.4 -From 4a3ab7db68ab1b60eb47920e4053c45854bbaebe Mon Sep 17 00:00:00 2001 +From 1ee06b19cde77b35baf5883880d6c7ce536aa1e0 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 @@ -807,7 +807,7 @@ index 52893c87414a..3ef597e97365 100644 2.25.4 -From 98239553f462dcb9416ccf1f8b62a220e9e90596 Mon Sep 17 00:00:00 2001 +From 1e89814a216da1dafba5279d5f0e5e6e454d1e6f 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 @@ -962,7 +962,7 @@ index ad5935063bd9..4b66681d713c 100644 2.25.4 -From 138e0737dcddf4b67d53f0097093273840b8fc8a Mon Sep 17 00:00:00 2001 +From e88805186217466bda2cf81057787cdadbb126e8 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 @@ -1027,7 +1027,7 @@ index 3ef597e97365..e1b10ca43b2c 100644 2.25.4 -From e8ec1f5a08a7bec85ecd49bc66541cc973ff2bb2 Mon Sep 17 00:00:00 2001 +From e3789b09dec37e654d0c79f88c7e818e737f704d 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 diff --git a/vte291.spec b/vte291.spec index 16daef2..6cba313 100644 --- a/vte291.spec +++ b/vte291.spec @@ -10,13 +10,13 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.61.91 +Version: 0.62.0 Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ URL: http://www.gnome.org/ -Source0: http://download.gnome.org/sources/vte/0.61/vte-%{version}.tar.xz +Source0: http://download.gnome.org/sources/vte/0.62/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 @@ -118,6 +118,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Thu Sep 24 2020 Debarshi Ray - 0.62.0-1 +- Update to 0.62.0 + * Thu Sep 24 2020 Debarshi Ray - 0.61.91-1 - Update to 0.61.91 From 623150318ddb9a9a5797b4b9f74e6bb5d7ad7715 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 8 Oct 2020 15:09:03 +0200 Subject: [PATCH 062/164] Update to 0.62.1 - Rebase downstream patches --- .gitignore | 1 + sources | 2 +- vte291-cntnr-precmd-preexec-scroll.patch | 92 ++++++++++++------------ vte291.spec | 6 +- 4 files changed, 53 insertions(+), 48 deletions(-) diff --git a/.gitignore b/.gitignore index 1cbad67..2601051 100644 --- a/.gitignore +++ b/.gitignore @@ -69,3 +69,4 @@ /vte-0.61.90.tar.xz /vte-0.61.91.tar.xz /vte-0.62.0.tar.xz +/vte-0.62.1.tar.xz diff --git a/sources b/sources index 6058959..226c877 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.62.0.tar.xz) = 8942809d20ff845142dce8cf48b4eb6f9e4f333dc2647cceb0538112d5e10096ff836f24da1f0c34cc4bbee4f6c585c3feab33934c257887a82d6c67bce11402 +SHA512 (vte-0.62.1.tar.xz) = 2f8f76953e0ea6c604357ab08630d3822a252051d8997cf7714553fec1688735468726bfd74e03f122dd1c8d0717e511ec7ec1e5463a086bd407afc6f7df91cf diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index f7952c7..59ad6b5 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,4 +1,4 @@ -From 7732c66ff591db4abd29b0049210ba51dcced05e Mon Sep 17 00:00:00 2001 +From 0728f06f528c1ba77a8671c529e44fbabd9c8980 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 @@ -36,7 +36,7 @@ index 241128c3ccfe..4412cf3d5f5c 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index 829e6630dbb0..120f2e97b3fd 100644 +index c33b27c45023..01c7dd7eebc4 100644 --- a/src/vte.cc +++ b/src/vte.cc @@ -10135,6 +10135,15 @@ Terminal::emit_pending_signals() @@ -72,10 +72,10 @@ index d5e96535a867..71c4c66cc4ee 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 39f1c0bafa3a..40df2dd5d794 100644 +index f7a65f72b68e..30e0af0f8015 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -928,6 +928,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -934,6 +934,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->child_exited = NULL; klass->encoding_changed = NULL; klass->char_size_changed = NULL; @@ -83,7 +83,7 @@ index 39f1c0bafa3a..40df2dd5d794 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -1009,6 +1010,26 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1015,6 +1016,26 @@ vte_terminal_class_init(VteTerminalClass *klass) G_OBJECT_CLASS_TYPE(klass), g_cclosure_marshal_VOID__INTv); @@ -123,7 +123,7 @@ index cb207e57f928..b44dfd13a054 100644 LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index bc75888e61c2..6148faeb2ab3 100644 +index 333f858c164e..7608eecc38d9 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -917,6 +917,11 @@ public: @@ -138,7 +138,7 @@ index bc75888e61c2..6148faeb2ab3 100644 std::string m_window_title{}; std::string m_current_directory_uri{}; std::string m_current_file_uri{}; -@@ -1633,6 +1638,9 @@ public: +@@ -1634,6 +1639,9 @@ public: int osc) noexcept; /* OSC handlers */ @@ -209,7 +209,7 @@ index ba9a2df6b9c4..c765b0bfb1f4 100644 2.25.4 -From 2415aa05c467d94374a07e96ef74f745495de6c9 Mon Sep 17 00:00:00 2001 +From 4c3bce7d70e208bee0f36d64a540ade9975c3ce7 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 @@ -224,7 +224,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 8b3153da0f1a..d6769de82766 100644 +index a12e254b6cba..f7c4fdeff30b 100644 --- a/src/vte.sh.in +++ b/src/vte.sh.in @@ -27,10 +27,12 @@ __vte_osc7 () { @@ -245,7 +245,7 @@ index 8b3153da0f1a..d6769de82766 100644 2.25.4 -From 17c87dc0f59794ab02a625cfd30c7474e43bdc6a Mon Sep 17 00:00:00 2001 +From 5171a84e95ad20048dcb1683c149711430002149 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 @@ -312,7 +312,7 @@ index d8bfe9e13826..e95f58cd3bac 100644 2.25.4 -From 4fbba287eb67ad302aff6c598cc41baa68ecfba6 Mon Sep 17 00:00:00 2001 +From ed262358646832779ee0eb5afa0a8a7a6c1c2adf 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 @@ -343,7 +343,7 @@ index c222e7fdff0b..6da5eff30715 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index 120f2e97b3fd..7d73943c314d 100644 +index 01c7dd7eebc4..af73288b9f20 100644 --- a/src/vte.cc +++ b/src/vte.cc @@ -9334,6 +9334,7 @@ vte_cairo_get_clip_region (cairo_t *cr) @@ -402,10 +402,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 40df2dd5d794..89dc2e2666ea 100644 +index 30e0af0f8015..bf88b9481981 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -706,6 +706,9 @@ try +@@ -712,6 +712,9 @@ try case PROP_REWRAP_ON_RESIZE: g_value_set_boolean (value, vte_terminal_get_rewrap_on_resize (terminal)); break; @@ -415,7 +415,7 @@ index 40df2dd5d794..89dc2e2666ea 100644 case PROP_SCROLLBACK_LINES: g_value_set_uint (value, vte_terminal_get_scrollback_lines(terminal)); break; -@@ -821,6 +824,9 @@ try +@@ -827,6 +830,9 @@ try case PROP_REWRAP_ON_RESIZE: vte_terminal_set_rewrap_on_resize (terminal, g_value_get_boolean (value)); break; @@ -425,7 +425,7 @@ index 40df2dd5d794..89dc2e2666ea 100644 case PROP_SCROLLBACK_LINES: vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); break; -@@ -1911,6 +1917,21 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1917,6 +1923,21 @@ vte_terminal_class_init(VteTerminalClass *klass) TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -447,7 +447,7 @@ index 40df2dd5d794..89dc2e2666ea 100644 /** * VteTerminal:scrollback-lines: * -@@ -5298,6 +5319,30 @@ catch (...) +@@ -5324,6 +5345,30 @@ catch (...) return -1; } @@ -491,7 +491,7 @@ index b44dfd13a054..30b917786b5b 100644 PROP_SCROLL_ON_KEYSTROKE, PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 6148faeb2ab3..ea09af2ce036 100644 +index 7608eecc38d9..79ea9e7f0da0 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -696,6 +696,7 @@ public: @@ -502,7 +502,7 @@ index 6148faeb2ab3..ea09af2ce036 100644 vte::grid::row_t m_scrollback_lines{0}; /* Restricted scrolling */ -@@ -1511,6 +1512,7 @@ public: +@@ -1512,6 +1513,7 @@ public: bool set_input_enabled(bool enabled); bool set_mouse_autohide(bool autohide); bool set_rewrap_on_resize(bool rewrap); @@ -514,7 +514,7 @@ index 6148faeb2ab3..ea09af2ce036 100644 2.25.4 -From 6a85099ce760dbff74bca28b1ab3d9dbc56b598a Mon Sep 17 00:00:00 2001 +From 73e7009c342747fbb3bdbef322811e09467dab9b 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 @@ -587,7 +587,7 @@ index e95f58cd3bac..52893c87414a 100644 2.25.4 -From 829701c17f1ff9184ac57ad7735debdba29e572c Mon Sep 17 00:00:00 2001 +From 2fe27cbe7cbb120e9055284c9e7e34423e5add49 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 @@ -616,7 +616,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 7d73943c314d..8bc9807db3f8 100644 +index af73288b9f20..d77d27967b50 100644 --- a/src/vte.cc +++ b/src/vte.cc @@ -10161,6 +10161,13 @@ Terminal::emit_pending_signals() @@ -634,16 +634,16 @@ index 7d73943c314d..8bc9807db3f8 100644 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 d6769de82766..c7a3b07f9ea4 100644 +index f7c4fdeff30b..ec094db032c7 100644 --- a/src/vte.sh.in +++ b/src/vte.sh.in @@ -38,7 +38,7 @@ __vte_prompt_command() { case "$TERM" in xterm*|vte*) -- [ -n "$BASH_VERSION" ] && PROMPT_COMMAND="__vte_prompt_command" -+ [ -n "$BASH_VERSION" ] && PROMPT_COMMAND="__vte_prompt_command" && PS0=$(printf "\033]777;preexec\033\\") - [ -n "$ZSH_VERSION" ] && precmd_functions+=(__vte_osc7) +- [ -n "${BASH_VERSION:-}" ] && PROMPT_COMMAND="__vte_prompt_command" ++ [ -n "${BASH_VERSION:-}" ] && PROMPT_COMMAND="__vte_prompt_command" && PS0=$(printf "\033]777;preexec\033\\") + [ -n "${ZSH_VERSION:-}" ] && precmd_functions+=(__vte_osc7) ;; esac diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h @@ -663,10 +663,10 @@ index 203c77e08c57..5668ac7d71df 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 89dc2e2666ea..dfcf7e8a10ef 100644 +index bf88b9481981..df247f27c038 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -935,6 +935,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -941,6 +941,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->encoding_changed = NULL; klass->char_size_changed = NULL; klass->notification_received = NULL; @@ -674,7 +674,7 @@ index 89dc2e2666ea..dfcf7e8a10ef 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -1036,6 +1037,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1042,6 +1043,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -711,7 +711,7 @@ index 30b917786b5b..d3ad1435ae53 100644 SIGNAL_TEXT_INSERTED, SIGNAL_TEXT_MODIFIED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index ea09af2ce036..9046ef2dd2b0 100644 +index 79ea9e7f0da0..009500a3ffc6 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -923,6 +923,8 @@ public: @@ -742,7 +742,7 @@ index c765b0bfb1f4..ad5935063bd9 100644 2.25.4 -From 1ee06b19cde77b35baf5883880d6c7ce536aa1e0 Mon Sep 17 00:00:00 2001 +From 62b4dec7a7493f531de60ee814596176f3b9c082 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 @@ -807,7 +807,7 @@ index 52893c87414a..3ef597e97365 100644 2.25.4 -From 1e89814a216da1dafba5279d5f0e5e6e454d1e6f Mon Sep 17 00:00:00 2001 +From ce908501de9d32ab9d3e0cc600058e104bec2130 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 @@ -836,7 +836,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 8bc9807db3f8..2b9aa866738d 100644 +index d77d27967b50..54654c8589ab 100644 --- a/src/vte.cc +++ b/src/vte.cc @@ -10168,6 +10168,13 @@ Terminal::emit_pending_signals() @@ -854,7 +854,7 @@ index 8bc9807db3f8..2b9aa866738d 100644 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 c7a3b07f9ea4..4cff7dd1fb71 100644 +index ec094db032c7..18bb266e8d87 100644 --- a/src/vte.sh.in +++ b/src/vte.sh.in @@ -32,7 +32,7 @@ __vte_prompt_command() { @@ -884,10 +884,10 @@ index 5668ac7d71df..cbd2a77f9f29 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index dfcf7e8a10ef..8b2292277f9d 100644 +index df247f27c038..afccd6d85c65 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -935,6 +935,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -941,6 +941,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->encoding_changed = NULL; klass->char_size_changed = NULL; klass->notification_received = NULL; @@ -895,7 +895,7 @@ index dfcf7e8a10ef..8b2292277f9d 100644 klass->shell_preexec = NULL; klass->window_title_changed = NULL; klass->icon_title_changed = NULL; -@@ -1037,6 +1038,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1043,6 +1044,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -932,7 +932,7 @@ index d3ad1435ae53..85c2a38d61ec 100644 SIGNAL_TEXT_DELETED, SIGNAL_TEXT_INSERTED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 9046ef2dd2b0..8affbcba7397 100644 +index 009500a3ffc6..18ffeaf3a270 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -923,6 +923,7 @@ public: @@ -962,7 +962,7 @@ index ad5935063bd9..4b66681d713c 100644 2.25.4 -From e88805186217466bda2cf81057787cdadbb126e8 Mon Sep 17 00:00:00 2001 +From c57e30715838cb9d6eb0d4390867746bea0c42d5 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 @@ -1027,7 +1027,7 @@ index 3ef597e97365..e1b10ca43b2c 100644 2.25.4 -From e3789b09dec37e654d0c79f88c7e818e737f704d Mon Sep 17 00:00:00 2001 +From 3e049907ff0981ba235df9b97b56828cb814fb76 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 @@ -1061,7 +1061,7 @@ agreed upon across multiple different terminal emulators [1]. 6 files changed, 139 insertions(+) diff --git a/src/vte.cc b/src/vte.cc -index 2b9aa866738d..3c907a800546 100644 +index 54654c8589ab..b5f1258bbd99 100644 --- a/src/vte.cc +++ b/src/vte.cc @@ -10189,6 +10189,15 @@ Terminal::emit_pending_signals() @@ -1096,10 +1096,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 8b2292277f9d..187a83a9b243 100644 +index afccd6d85c65..242d6d979ddc 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -658,6 +658,12 @@ try +@@ -664,6 +664,12 @@ try case PROP_CURSOR_BLINK_MODE: g_value_set_enum (value, vte_terminal_get_cursor_blink_mode (terminal)); break; @@ -1112,7 +1112,7 @@ index 8b2292277f9d..187a83a9b243 100644 case PROP_CURRENT_DIRECTORY_URI: g_value_set_string (value, vte_terminal_get_current_directory_uri (terminal)); break; -@@ -2030,6 +2036,27 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -2036,6 +2042,27 @@ vte_terminal_class_init(VteTerminalClass *klass) NULL, (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -1140,7 +1140,7 @@ index 8b2292277f9d..187a83a9b243 100644 /** * VteTerminal:current-directory-uri: * -@@ -4505,6 +4532,56 @@ catch (...) +@@ -4531,6 +4558,56 @@ catch (...) return -1; } @@ -1211,7 +1211,7 @@ index 85c2a38d61ec..a258902a3092 100644 PROP_CURRENT_FILE_URI, PROP_DELETE_BINDING, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 8affbcba7397..f2fc1ecd2abf 100644 +index 18ffeaf3a270..f6b98f670ad5 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -56,6 +56,7 @@ diff --git a/vte291.spec b/vte291.spec index 6cba313..36f6971 100644 --- a/vte291.spec +++ b/vte291.spec @@ -10,7 +10,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.62.0 +Version: 0.62.1 Release: 1%{?dist} Summary: Terminal emulator library @@ -118,6 +118,10 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Thu Oct 08 2020 Debarshi Ray - 0.62.1-1 +- Update to 0.62.1 +- Rebase downstream patches + * Thu Sep 24 2020 Debarshi Ray - 0.62.0-1 - Update to 0.62.0 From 7855b397b093cac06224cf728ca3962faebfe9c8 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Tue, 3 Nov 2020 08:31:12 -0700 Subject: [PATCH 063/164] Fix bogus volatile caught by gcc-11 --- vte291-gcc11.patch | 13 +++++++++++++ vte291.spec | 7 ++++++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 vte291-gcc11.patch diff --git a/vte291-gcc11.patch b/vte291-gcc11.patch new file mode 100644 index 0000000..971b56c --- /dev/null +++ b/vte291-gcc11.patch @@ -0,0 +1,13 @@ +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 36f6971..db1ca95 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ Name: vte291 Version: 0.62.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -21,6 +21,7 @@ Source0: http://download.gnome.org/sources/vte/0.62/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 Patch100: vte291-cntnr-precmd-preexec-scroll.patch +Patch101: %{name}-gcc11.patch BuildRequires: gcc-c++ BuildRequires: gettext @@ -83,6 +84,7 @@ emulator library. %prep %setup -q -n vte-%{version} %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 @@ -118,6 +120,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Tue Nov 03 2020 Jeff Law - 0.62.1-2 +- Fix bogus volatile caught by gcc-11 + * Thu Oct 08 2020 Debarshi Ray - 0.62.1-1 - Update to 0.62.1 - Rebase downstream patches From de2838742197f182c406b37f031e58dac12ebad4 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 16 Dec 2020 21:03:30 +0100 Subject: [PATCH 064/164] Accommodate 'sudo toolbox' when tracking the active container --- vte291-cntnr-precmd-preexec-scroll.patch | 204 +++++++++++++++-------- vte291.spec | 5 +- 2 files changed, 143 insertions(+), 66 deletions(-) diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index 59ad6b5..e86ce01 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,4 +1,4 @@ -From 0728f06f528c1ba77a8671c529e44fbabd9c8980 Mon Sep 17 00:00:00 2001 +From 8d4a539a20142a3944e12f029ded76a27749296c 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 @@ -36,10 +36,10 @@ index 241128c3ccfe..4412cf3d5f5c 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index c33b27c45023..01c7dd7eebc4 100644 +index 2614e5b4d20f..ac54d8791ba2 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10135,6 +10135,15 @@ Terminal::emit_pending_signals() +@@ -10143,6 +10143,15 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); @@ -72,7 +72,7 @@ index d5e96535a867..71c4c66cc4ee 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index f7a65f72b68e..30e0af0f8015 100644 +index 41de14ba1019..09a18439277f 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -934,6 +934,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -206,10 +206,10 @@ index ba9a2df6b9c4..c765b0bfb1f4 100644 default: break; -- -2.25.4 +2.29.2 -From 4c3bce7d70e208bee0f36d64a540ade9975c3ce7 Mon Sep 17 00:00:00 2001 +From e75a6e2b9b4a1789ab7c2c1572e13c38dc73daf5 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 @@ -242,10 +242,10 @@ index a12e254b6cba..f7c4fdeff30b 100644 } -- -2.25.4 +2.29.2 -From 5171a84e95ad20048dcb1683c149711430002149 Mon Sep 17 00:00:00 2001 +From d726c0779babba159dc01a1dd20c0a6678dbd4dc 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 @@ -281,10 +281,10 @@ index fc26c2b0dfc3..634b8ddeeb91 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index d8bfe9e13826..e95f58cd3bac 100644 +index 6453ef8516f9..65521e1f4177 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1851,6 +1851,14 @@ window_window_title_changed_cb(VteTerminal* terminal, +@@ -1862,6 +1862,14 @@ window_window_title_changed_cb(VteTerminal* terminal, vte_terminal_get_window_title(window->terminal)); } @@ -299,7 +299,7 @@ index d8bfe9e13826..e95f58cd3bac 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2086,6 +2094,8 @@ vteapp_window_constructed(GObject *object) +@@ -2097,6 +2105,8 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); @@ -309,10 +309,10 @@ index d8bfe9e13826..e95f58cd3bac 100644 if (options.no_double_buffer) { G_GNUC_BEGIN_IGNORE_DEPRECATIONS; -- -2.25.4 +2.29.2 -From ed262358646832779ee0eb5afa0a8a7a6c1c2adf Mon Sep 17 00:00:00 2001 +From f3ec33fc7a644aa9a8d640af16e8ef87a7db5db7 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 @@ -343,10 +343,10 @@ index c222e7fdff0b..6da5eff30715 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index 01c7dd7eebc4..af73288b9f20 100644 +index ac54d8791ba2..68fc4bf8f448 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9334,6 +9334,7 @@ vte_cairo_get_clip_region (cairo_t *cr) +@@ -9342,6 +9342,7 @@ vte_cairo_get_clip_region (cairo_t *cr) bool Terminal::widget_mouse_scroll(MouseEvent const& event) { @@ -354,7 +354,7 @@ index 01c7dd7eebc4..af73288b9f20 100644 gdouble v; gint cnt, i; int button; -@@ -9390,7 +9391,13 @@ Terminal::widget_mouse_scroll(MouseEvent const& event) +@@ -9398,7 +9399,13 @@ Terminal::widget_mouse_scroll(MouseEvent const& event) return true; } @@ -369,7 +369,7 @@ index 01c7dd7eebc4..af73288b9f20 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -9693,6 +9700,16 @@ Terminal::decscusr_cursor_shape() const noexcept +@@ -9701,6 +9708,16 @@ Terminal::decscusr_cursor_shape() const noexcept } } @@ -402,7 +402,7 @@ 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 30e0af0f8015..bf88b9481981 100644 +index 09a18439277f..934e0ab2bd37 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -712,6 +712,9 @@ try @@ -447,7 +447,7 @@ index 30e0af0f8015..bf88b9481981 100644 /** * VteTerminal:scrollback-lines: * -@@ -5324,6 +5345,30 @@ catch (...) +@@ -5323,6 +5344,30 @@ catch (...) return -1; } @@ -511,10 +511,10 @@ index 7608eecc38d9..79ea9e7f0da0 100644 bool set_scroll_on_keystroke(bool scroll); bool set_scroll_on_output(bool scroll); -- -2.25.4 +2.29.2 -From 73e7009c342747fbb3bdbef322811e09467dab9b Mon Sep 17 00:00:00 2001 +From 9538e23477d7e99909961f7ea5868f9c19c043e1 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 @@ -555,7 +555,7 @@ 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 e95f58cd3bac..52893c87414a 100644 +index 65521e1f4177..28e934d9d9c0 100644 --- a/src/app/app.cc +++ b/src/app/app.cc @@ -108,6 +108,7 @@ public: @@ -566,7 +566,7 @@ index e95f58cd3bac..52893c87414a 100644 VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM}; VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK}; VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS}; -@@ -569,6 +570,8 @@ public: +@@ -580,6 +581,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 +575,7 @@ index e95f58cd3bac..52893c87414a 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, -@@ -2127,6 +2130,7 @@ vteapp_window_constructed(GObject *object) +@@ -2138,6 +2141,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,10 +584,10 @@ index e95f58cd3bac..52893c87414a 100644 vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); -- -2.25.4 +2.29.2 -From 2fe27cbe7cbb120e9055284c9e7e34423e5add49 Mon Sep 17 00:00:00 2001 +From 8e616fea1e377e03d5f3cbac0786df5e76da896d 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 @@ -616,10 +616,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index af73288b9f20..d77d27967b50 100644 +index 68fc4bf8f448..09068deebdf2 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10161,6 +10161,13 @@ Terminal::emit_pending_signals() +@@ -10169,6 +10169,13 @@ Terminal::emit_pending_signals() m_notification_received = false; } @@ -663,7 +663,7 @@ index 203c77e08c57..5668ac7d71df 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index bf88b9481981..df247f27c038 100644 +index 934e0ab2bd37..0bba24ee534f 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -941,6 +941,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -739,10 +739,10 @@ index c765b0bfb1f4..ad5935063bd9 100644 bool -- -2.25.4 +2.29.2 -From 62b4dec7a7493f531de60ee814596176f3b9c082 Mon Sep 17 00:00:00 2001 +From c7c410786da41bf9bbcdf8ca1be21dcf0d89637d 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 @@ -779,10 +779,10 @@ index c984b868246d..83af686be106 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 52893c87414a..3ef597e97365 100644 +index 28e934d9d9c0..c9f7b5637d16 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1862,6 +1862,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1873,6 +1873,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -795,7 +795,7 @@ index 52893c87414a..3ef597e97365 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2098,6 +2104,7 @@ vteapp_window_constructed(GObject *object) +@@ -2109,6 +2115,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,10 +804,10 @@ index 52893c87414a..3ef597e97365 100644 /* Settings */ if (options.no_double_buffer) { -- -2.25.4 +2.29.2 -From ce908501de9d32ab9d3e0cc600058e104bec2130 Mon Sep 17 00:00:00 2001 +From 034f0a8ae047af6d6a2ee9c443b6686a4eff3018 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 @@ -836,10 +836,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index d77d27967b50..54654c8589ab 100644 +index 09068deebdf2..6d3d3c5a2854 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10168,6 +10168,13 @@ Terminal::emit_pending_signals() +@@ -10176,6 +10176,13 @@ Terminal::emit_pending_signals() m_shell_preexec = FALSE; } @@ -884,7 +884,7 @@ index 5668ac7d71df..cbd2a77f9f29 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index df247f27c038..afccd6d85c65 100644 +index 0bba24ee534f..4e0bc3a68464 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -941,6 +941,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -959,10 +959,10 @@ index ad5935063bd9..4b66681d713c 100644 } } -- -2.25.4 +2.29.2 -From c57e30715838cb9d6eb0d4390867746bea0c42d5 Mon Sep 17 00:00:00 2001 +From 6083ed32c023a7a24f4b4856147a0970d59f9a35 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 @@ -999,10 +999,10 @@ index 83af686be106..300384f5c74b 100644 { print("[shell] executing command\n"); diff --git a/src/app/app.cc b/src/app/app.cc -index 3ef597e97365..e1b10ca43b2c 100644 +index c9f7b5637d16..b679bc0bff50 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1862,6 +1862,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1873,6 +1873,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -1015,7 +1015,7 @@ index 3ef597e97365..e1b10ca43b2c 100644 static void shell_preexec_cb(VteTerminal *terminal) { -@@ -2104,6 +2110,7 @@ vteapp_window_constructed(GObject *object) +@@ -2115,6 +2121,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,16 +1024,22 @@ index 3ef597e97365..e1b10ca43b2c 100644 /* Settings */ -- -2.25.4 +2.29.2 -From 3e049907ff0981ba235df9b97b56828cb814fb76 Mon Sep 17 00:00:00 2001 +From b0a81273d4ff929afa4e37750273980e70017c77 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 terminal Add sequences + + OSC 777 ; container ; push ; NAME ; RUNTIME ; UID BEL + OSC 777 ; container ; push ; NAME ; RUNTIME ; UID ST + OSC 777 ; container ; pop ; NAME ; RUNTIME ; UID BEL + OSC 777 ; container ; pop ; NAME ; RUNTIME ; UID ST + OSC 777 ; container ; push ; NAME ; RUNTIME BEL OSC 777 ; container ; push ; NAME ; RUNTIME ST OSC 777 ; container ; pop ; NAME ; RUNTIME BEL @@ -1042,7 +1048,9 @@ Add sequences that let container tools notify the terminal emulator when entering and leaving a container environment. The RUNTIME argument namespaces the NAME and identifies the container tooling being used. eg., docker, -flatpak, podman, toolbox, etc.. +flatpak, podman, toolbox, etc.. The UID argument is the real UID of the +container tools. Only those containers that are used with the same real +UID as the VTE process are tracked. The OSC 777 escape sequence is taken from Enlightenment's Terminology: https://phab.enlightenment.org/T1765 @@ -1053,18 +1061,18 @@ agreed upon across multiple different terminal emulators [1]. [1] https://gitlab.freedesktop.org/terminal-wg/specifications/issues/17 --- src/vte.cc | 9 +++++ - src/vte/vteterminal.h | 4 +++ - src/vtegtk.cc | 77 +++++++++++++++++++++++++++++++++++++++++++ - src/vtegtk.hh | 2 ++ - src/vteinternal.hh | 16 +++++++++ - src/vteseq.cc | 31 +++++++++++++++++ - 6 files changed, 139 insertions(+) + 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(+) diff --git a/src/vte.cc b/src/vte.cc -index 54654c8589ab..b5f1258bbd99 100644 +index 6d3d3c5a2854..74db14f593dd 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10189,6 +10189,15 @@ Terminal::emit_pending_signals() +@@ -10197,6 +10197,15 @@ Terminal::emit_pending_signals() m_window_title_changed = false; } @@ -1096,7 +1104,7 @@ 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 afccd6d85c65..242d6d979ddc 100644 +index 4e0bc3a68464..2e6859798c42 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -664,6 +664,12 @@ try @@ -1140,7 +1148,7 @@ index afccd6d85c65..242d6d979ddc 100644 /** * VteTerminal:current-directory-uri: * -@@ -4531,6 +4558,56 @@ catch (...) +@@ -4530,6 +4557,56 @@ catch (...) return -1; } @@ -1252,10 +1260,25 @@ index 18ffeaf3a270..f6b98f670ad5 100644 bool m_notification_received{false}; std::string m_notification_summary; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 4b66681d713c..6e7cb8741696 100644 +index 4b66681d713c..4240896b95e8 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1385,6 +1385,37 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -20,10 +20,14 @@ + + #include "config.h" + ++#include ++ + #include + #include + #include + #include ++#include ++#include + #ifdef HAVE_SYS_SYSLIMITS_H + #include + #endif +@@ -1385,6 +1389,88 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, if (token == endtoken) return; @@ -1269,10 +1292,41 @@ index 4b66681d713c..6e7cb8741696 100644 + ++token; + + if (sub_command == "pop") { -+ if (!m_containers.empty()) { -+ m_containers.pop(); -+ m_containers_changed = true; ++ if (token == endtoken) ++ return; ++ ++ ++token; ++ ++ if (token == endtoken) ++ return; ++ ++ ++token; ++ ++ if (token == endtoken) { ++ if (!m_containers.empty()) { ++ m_containers.pop(); ++ m_containers_changed = true; ++ } ++ ++ return; + } ++ ++ const std::string uid_token = *token; ++ ++token; ++ ++ const uid_t uid = getuid(); ++ const std::string uid_str = std::to_string(uid); ++ ++ if (uid_token == uid_str) { ++ if (!m_containers.empty()) { ++ m_containers.pop(); ++ m_containers_changed = true; ++ } ++ ++ return; ++ } ++ ++ return; + } else if (sub_command == "push") { + if (token == endtoken) + return; @@ -1284,15 +1338,35 @@ index 4b66681d713c..6e7cb8741696 100644 + return; + + const std::string runtime = *token; ++ ++token; + -+ m_containers.emplace(name, runtime); -+ m_containers_changed = true; ++ if (token == endtoken) { ++ m_containers.emplace(name, runtime); ++ m_containers_changed = true; ++ return; ++ } ++ ++ const std::string uid_token = *token; ++ ++token; ++ ++ const uid_t uid = getuid(); ++ const std::string uid_str = std::to_string(uid); ++ ++ if (uid_token == uid_str) { ++ m_containers.emplace(name, runtime); ++ m_containers_changed = true; ++ return; ++ } ++ ++ return; + } ++ ++ return; + } + if (*token == "notify") { ++token; -- -2.25.4 +2.29.2 diff --git a/vte291.spec b/vte291.spec index db1ca95..3fb5470 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ Name: vte291 Version: 0.62.1 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -120,6 +120,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Wed Dec 16 2020 Debarshi Ray - 0.62.1-3 +- Accommodate 'sudo toolbox' when tracking the active container + * Tue Nov 03 2020 Jeff Law - 0.62.1-2 - Fix bogus volatile caught by gcc-11 From 7fcaeb25788b130fa53baa6e9153433c5f3a9b53 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Mon, 25 Jan 2021 12:10:00 +0100 Subject: [PATCH 065/164] Update to 0.62.2 --- .gitignore | 1 + sources | 2 +- vte291.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 2601051..d6e33d3 100644 --- a/.gitignore +++ b/.gitignore @@ -70,3 +70,4 @@ /vte-0.61.91.tar.xz /vte-0.62.0.tar.xz /vte-0.62.1.tar.xz +/vte-0.62.2.tar.xz diff --git a/sources b/sources index 226c877..49747a1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.62.1.tar.xz) = 2f8f76953e0ea6c604357ab08630d3822a252051d8997cf7714553fec1688735468726bfd74e03f122dd1c8d0717e511ec7ec1e5463a086bd407afc6f7df91cf +SHA512 (vte-0.62.2.tar.xz) = 61ea130d43d60531dcaa8bddfecacfd4a934a2e868da69b598fad0a2feb04885fc0b5dd520dac4b0d3a4daf11ea70c5357066ed15759e36436346dae498e8ef8 diff --git a/vte291.spec b/vte291.spec index 3fb5470..8847a15 100644 --- a/vte291.spec +++ b/vte291.spec @@ -10,8 +10,8 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.62.1 -Release: 3%{?dist} +Version: 0.62.2 +Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -120,6 +120,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Jan 25 2021 Kalev Lember - 0.62.2-1 +- Update to 0.62.2 + * Wed Dec 16 2020 Debarshi Ray - 0.62.1-3 - Accommodate 'sudo toolbox' when tracking the active container From c3105257066c621533027a54b64a09eccde50700 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 27 Jan 2021 23:16:06 +0000 Subject: [PATCH 066/164] - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index 8847a15..77f8390 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ Name: vte291 Version: 0.62.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -120,6 +120,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Wed Jan 27 2021 Fedora Release Engineering - 0.62.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Mon Jan 25 2021 Kalev Lember - 0.62.2-1 - Update to 0.62.2 From 3c500b1b233384892990e78d38504d40956f3821 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Tue, 16 Feb 2021 16:43:23 +0100 Subject: [PATCH 067/164] Update to 0.62.3 --- .gitignore | 1 + sources | 2 +- vte291.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index d6e33d3..883639b 100644 --- a/.gitignore +++ b/.gitignore @@ -71,3 +71,4 @@ /vte-0.62.0.tar.xz /vte-0.62.1.tar.xz /vte-0.62.2.tar.xz +/vte-0.62.3.tar.xz diff --git a/sources b/sources index 49747a1..04c5626 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.62.2.tar.xz) = 61ea130d43d60531dcaa8bddfecacfd4a934a2e868da69b598fad0a2feb04885fc0b5dd520dac4b0d3a4daf11ea70c5357066ed15759e36436346dae498e8ef8 +SHA512 (vte-0.62.3.tar.xz) = 0475e2813b305bf1b5d48ece5959f2feb10e89b589fa3b75032ae466fd5254bf5c2fc6085dc296d65c5df84790a38892534ff401109843bf964ae62a8c540a81 diff --git a/vte291.spec b/vte291.spec index 77f8390..c510d87 100644 --- a/vte291.spec +++ b/vte291.spec @@ -10,8 +10,8 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.62.2 -Release: 2%{?dist} +Version: 0.62.3 +Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -120,6 +120,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Tue Feb 16 2021 Kalev Lember - 0.62.3-1 +- Update to 0.62.3 + * Wed Jan 27 2021 Fedora Release Engineering - 0.62.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From e11b47498f58b2797c0f30af57c0a55416872979 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Tue, 16 Feb 2021 16:43:55 +0100 Subject: [PATCH 068/164] Use https URLs for upstream ... and point to vte wiki page instead of generic gnome.org. --- vte291.spec | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/vte291.spec b/vte291.spec index c510d87..a309152 100644 --- a/vte291.spec +++ b/vte291.spec @@ -15,8 +15,8 @@ Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ -URL: http://www.gnome.org/ -Source0: http://download.gnome.org/sources/vte/0.62/vte-%{version}.tar.xz +URL: https://wiki.gnome.org/Apps/Terminal/VTE +Source0: https://download.gnome.org/sources/vte/0.62/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 @@ -122,6 +122,7 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %changelog * Tue Feb 16 2021 Kalev Lember - 0.62.3-1 - Update to 0.62.3 +- Use https URLs for upstream * Wed Jan 27 2021 Fedora Release Engineering - 0.62.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From 46864f7651614e151046c22b3cc98c53a76a54e5 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Tue, 16 Feb 2021 16:46:41 +0100 Subject: [PATCH 069/164] Revert a change that limited select all, as decided by Workstation WG See https://pagure.io/fedora-workstation/issue/216 for details. --- ...mit-select-all-to-the-writable-regio.patch | 45 +++++++++++++++++++ vte291.spec | 4 ++ 2 files changed, 49 insertions(+) create mode 100644 0001-Revert-widget-Limit-select-all-to-the-writable-regio.patch 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 new file mode 100644 index 0000000..40d84d6 --- /dev/null +++ b/0001-Revert-widget-Limit-select-all-to-the-writable-regio.patch @@ -0,0 +1,45 @@ +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.spec b/vte291.spec index a309152..426f127 100644 --- a/vte291.spec +++ b/vte291.spec @@ -18,6 +18,9 @@ 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 + # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 Patch100: vte291-cntnr-precmd-preexec-scroll.patch @@ -123,6 +126,7 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build * Tue Feb 16 2021 Kalev Lember - 0.62.3-1 - Update to 0.62.3 - Use https URLs for upstream +- Revert a change that limited select all, as decided by Workstation WG * Wed Jan 27 2021 Fedora Release Engineering - 0.62.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From 03ce959c3bbba97cd9a0c50fa0d6037d695eaf74 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Thu, 18 Feb 2021 16:24:37 +0100 Subject: [PATCH 070/164] Actually apply the patch --- vte291.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/vte291.spec b/vte291.spec index 426f127..9aacd57 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ Name: vte291 Version: 0.62.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -86,6 +86,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} @@ -123,10 +124,12 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Thu Feb 18 2021 Kalev Lember - 0.62.3-2 +- Revert a change that limited select all, as decided by Workstation WG + * Tue Feb 16 2021 Kalev Lember - 0.62.3-1 - Update to 0.62.3 - Use https URLs for upstream -- Revert a change that limited select all, as decided by Workstation WG * Wed Jan 27 2021 Fedora Release Engineering - 0.62.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From 2fdd15b92764975589dc492af90827ebdc42b61f Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 6 May 2021 15:36:45 +0200 Subject: [PATCH 071/164] Update to 0.63.91 - Rebase downstream patches --- .gitignore | 1 + ...mit-select-all-to-the-writable-regio.patch | 45 -- sources | 2 +- vte291-cntnr-precmd-preexec-scroll.patch | 397 ++++++++++-------- vte291-gcc11.patch | 13 - vte291.spec | 18 +- 6 files changed, 237 insertions(+), 239 deletions(-) delete mode 100644 0001-Revert-widget-Limit-select-all-to-the-writable-regio.patch delete mode 100644 vte291-gcc11.patch diff --git a/.gitignore b/.gitignore index 883639b..997905b 100644 --- a/.gitignore +++ b/.gitignore @@ -72,3 +72,4 @@ /vte-0.62.1.tar.xz /vte-0.62.2.tar.xz /vte-0.62.3.tar.xz +/vte-0.63.91.tar.xz 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/sources b/sources index 04c5626..a96a646 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.62.3.tar.xz) = 0475e2813b305bf1b5d48ece5959f2feb10e89b589fa3b75032ae466fd5254bf5c2fc6085dc296d65c5df84790a38892534ff401109843bf964ae62a8c540a81 +SHA512 (vte-0.63.91.tar.xz) = f14b655ccb6429eaaf064bbbdc12f2322b7c646b8f2808e7fc42101cb459829fe688adeeaff11e699932882fb7a8185de57010e41b5ab957ce6d727e489f74f5 diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index e86ce01..bdd78b7 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 91271c5d9e29b572eb9285077378dcf0f6b82df3 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 6f16873b3103..d935379df4d9 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 090975b2c666..f535c6b1dea6 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -934,6 +934,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -985,6 +985,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) +@@ -1066,6 +1067,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 d332a11fe2118ce59d5d41acd0cf0194a9023511 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 671f9f5799d7683c30b6db69c24e7043b2f94eef 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 036eab8ff430..0e9c45a780e7 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1862,6 +1862,14 @@ window_window_title_changed_cb(VteTerminal* terminal, +@@ -1874,6 +1874,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) +@@ -2112,6 +2120,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 685d530a51f34d429c9605248016c1632dfc728f 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 d935379df4d9..fee92d68f328 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 f535c6b1dea6..062deb445ac6 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -712,6 +712,9 @@ try +@@ -760,6 +760,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 +@@ -878,6 +881,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) +@@ -1968,6 +1974,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 (...) +@@ -5389,6 +5410,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 94ccc632098d038198272bcea7704f5b73f7349e 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 0e9c45a780e7..48939782e59d 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -108,6 +108,7 @@ public: +@@ -115,6 +115,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: +@@ -589,6 +590,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) +@@ -2154,6 +2157,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 4e34ad6a42617f89e197a797bd4cfe8f56616fb9 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 fee92d68f328..481e171fcd0a 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 062deb445ac6..2fe3067d650d 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -941,6 +941,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -992,6 +992,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) +@@ -1093,6 +1094,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 1e0477937a0f18955ea9b86027fd902dba6d0574 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 48939782e59d..e55f8c1339fa 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1873,6 +1873,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1885,6 +1885,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) +@@ -2124,6 +2130,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 61368448bec45743de4604e601eda2e594ecf485 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 481e171fcd0a..c57ca3a7fd8c 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 2fe3067d650d..27729dc35db6 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -941,6 +941,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -992,6 +992,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) +@@ -1094,6 +1095,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 892a472d0accf4457b4e31635b7730dccec66ba7 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 e55f8c1339fa..4dd0fb8dc06b 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1873,6 +1873,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1885,6 +1885,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) +@@ -2130,6 +2136,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 d85e9f74c6f506ee7fa168748264e8eccb0727c8 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 c57ca3a7fd8c..9f025316d45b 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 27729dc35db6..37fead40ca0d 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -664,6 +664,12 @@ try +@@ -709,6 +709,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) +@@ -2101,6 +2107,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 (...) +@@ -4596,6 +4623,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 e902b6ea9a041a468ab47fec20542a8fca3c9e57 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 9f025316d45b..0a6d0bc4a96e 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 9aacd57..6547d25 100644 --- a/vte291.spec +++ b/vte291.spec @@ -10,21 +10,18 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.62.3 -Release: 2%{?dist} +Version: 0.63.91 +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.63/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.63.91-1 +- Update to 0.63.91 +- Rebase downstream patches + * Thu Feb 18 2021 Kalev Lember - 0.62.3-2 - Revert a change that limited select all, as decided by Workstation WG From f4f46a28d2b694afdaa40cd3230f7e8ce4584c83 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 6 May 2021 16:17:46 +0200 Subject: [PATCH 072/164] Update to 0.64.0 --- .gitignore | 1 + sources | 2 +- vte291-cntnr-precmd-preexec-scroll.patch | 84 ++++++++++++------------ vte291.spec | 7 +- 4 files changed, 49 insertions(+), 45 deletions(-) diff --git a/.gitignore b/.gitignore index 997905b..a9f1360 100644 --- a/.gitignore +++ b/.gitignore @@ -73,3 +73,4 @@ /vte-0.62.2.tar.xz /vte-0.62.3.tar.xz /vte-0.63.91.tar.xz +/vte-0.64.0.tar.xz diff --git a/sources b/sources index a96a646..5d91078 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.63.91.tar.xz) = f14b655ccb6429eaaf064bbbdc12f2322b7c646b8f2808e7fc42101cb459829fe688adeeaff11e699932882fb7a8185de57010e41b5ab957ce6d727e489f74f5 +SHA512 (vte-0.64.0.tar.xz) = 64c329d192ac4d48676d06a256a72f7e723779800e01c3ae81a0791224d4ca2ed967941d31678d6a97cde90493c3d670cd9f310437523be9e06bab3db72c5399 diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index bdd78b7..811eca5 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,4 +1,4 @@ -From 91271c5d9e29b572eb9285077378dcf0f6b82df3 Mon Sep 17 00:00:00 2001 +From a0a85edaed44a37c1f35e5cad372ba1dee4f270a Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 01/11] Add sequences and signals for desktop notification @@ -71,10 +71,10 @@ index e705ece69ad6..668a7dbeae96 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 090975b2c666..f535c6b1dea6 100644 +index 0a26f976649b..8c31a2895886 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -985,6 +985,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; @@ -82,7 +82,7 @@ index 090975b2c666..f535c6b1dea6 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -1066,6 +1067,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); @@ -215,7 +215,7 @@ index bde2fa7ba0ab..7ab65b6d204a 100644 2.30.2 -From d332a11fe2118ce59d5d41acd0cf0194a9023511 Mon Sep 17 00:00:00 2001 +From 168571d31e16014649f09b972c63ea78755249e0 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 Subject: [PATCH 02/11] vte.sh: Emit OSC 777 from PROMPT_COMMAND @@ -251,7 +251,7 @@ index 3ac99d7ec04f..2c6f668142c3 100644 2.30.2 -From 671f9f5799d7683c30b6db69c24e7043b2f94eef Mon Sep 17 00:00:00 2001 +From faa8026184179478358fa24fdbc6321a81fbea2b Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 Subject: [PATCH 03/11] Test the notification-received signal @@ -287,10 +287,10 @@ index 8ab27e5aaf9a..025f971b2eb0 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 036eab8ff430..0e9c45a780e7 100644 +index 37d51c6b8963..73810251a4d0 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1874,6 +1874,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)); } @@ -305,7 +305,7 @@ index 036eab8ff430..0e9c45a780e7 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2112,6 +2120,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); @@ -318,7 +318,7 @@ index 036eab8ff430..0e9c45a780e7 100644 2.30.2 -From 685d530a51f34d429c9605248016c1632dfc728f Mon Sep 17 00:00:00 2001 +From e2de3222438099a4baeea2fc5dd27f0b1e94ed5f Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 Subject: [PATCH 04/11] Add a property to configure the scroll speed @@ -408,10 +408,10 @@ index 668a7dbeae96..ea4fba199a26 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index f535c6b1dea6..062deb445ac6 100644 +index 8c31a2895886..c5c8eb2fdc8d 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -760,6 +760,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; @@ -421,7 +421,7 @@ index f535c6b1dea6..062deb445ac6 100644 case PROP_SCROLLBACK_LINES: g_value_set_uint (value, vte_terminal_get_scrollback_lines(terminal)); break; -@@ -878,6 +881,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; @@ -431,7 +431,7 @@ index f535c6b1dea6..062deb445ac6 100644 case PROP_SCROLLBACK_LINES: vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); break; -@@ -1968,6 +1974,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)); @@ -453,7 +453,7 @@ index f535c6b1dea6..062deb445ac6 100644 /** * VteTerminal:scrollback-lines: * -@@ -5389,6 +5410,30 @@ catch (...) +@@ -5367,6 +5388,30 @@ catch (...) return -1; } @@ -520,7 +520,7 @@ index 38aaf421ec30..fd1a8b9008cf 100644 2.30.2 -From 94ccc632098d038198272bcea7704f5b73f7349e Mon Sep 17 00:00:00 2001 +From 91e5010be14c0f85760744c6b3fb356a364eb9fe Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 Subject: [PATCH 05/11] Test the scroll-speed property @@ -561,10 +561,10 @@ index 025f971b2eb0..51b5d6410503 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 0e9c45a780e7..48939782e59d 100644 +index 73810251a4d0..90421730a66a 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -115,6 +115,7 @@ public: +@@ -116,6 +116,7 @@ public: int verbosity{0}; double cell_height_scale{1.0}; double cell_width_scale{1.0}; @@ -572,7 +572,7 @@ index 0e9c45a780e7..48939782e59d 100644 VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM}; VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK}; VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS}; -@@ -589,6 +590,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 }, @@ -581,7 +581,7 @@ index 0e9c45a780e7..48939782e59d 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, -@@ -2154,6 +2157,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); @@ -593,7 +593,7 @@ index 0e9c45a780e7..48939782e59d 100644 2.30.2 -From 4e34ad6a42617f89e197a797bd4cfe8f56616fb9 Mon Sep 17 00:00:00 2001 +From 999e04a183fff7b25918f7253aaeb200eb00d5e6 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 06/11] Support preexec notifications from an interactive shell @@ -668,10 +668,10 @@ index ea4fba199a26..1fb8b061c9e3 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 062deb445ac6..2fe3067d650d 100644 +index c5c8eb2fdc8d..e2a6462f2b61 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -992,6 +992,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; @@ -679,7 +679,7 @@ index 062deb445ac6..2fe3067d650d 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -1093,6 +1094,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); @@ -746,7 +746,7 @@ index 7ab65b6d204a..51ca37bdc748 100644 2.30.2 -From 1e0477937a0f18955ea9b86027fd902dba6d0574 Mon Sep 17 00:00:00 2001 +From 309fda0ced97797d592f772017570e16ba23ebab Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 20 Apr 2018 18:21:53 +0200 Subject: [PATCH 07/11] Test the shell-preexec signal @@ -783,10 +783,10 @@ index 51b5d6410503..3975b9886d77 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 48939782e59d..e55f8c1339fa 100644 +index 90421730a66a..3caec42e5877 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1885,6 +1885,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1888,6 +1888,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -799,7 +799,7 @@ index 48939782e59d..e55f8c1339fa 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2124,6 +2130,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); @@ -811,7 +811,7 @@ index 48939782e59d..e55f8c1339fa 100644 2.30.2 -From 61368448bec45743de4604e601eda2e594ecf485 Mon Sep 17 00:00:00 2001 +From 75d0ca735a57504824c9e475c81bfb075f4df721 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:20:30 +0200 Subject: [PATCH 08/11] Support precmd notifications from an interactive shell @@ -887,10 +887,10 @@ index 1fb8b061c9e3..0b77566ac2f8 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 2fe3067d650d..27729dc35db6 100644 +index e2a6462f2b61..4b71437d117c 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -992,6 +992,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; @@ -898,7 +898,7 @@ index 2fe3067d650d..27729dc35db6 100644 klass->shell_preexec = NULL; klass->window_title_changed = NULL; klass->icon_title_changed = NULL; -@@ -1094,6 +1095,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); @@ -965,7 +965,7 @@ index 51ca37bdc748..10b494bddb47 100644 2.30.2 -From 892a472d0accf4457b4e31635b7730dccec66ba7 Mon Sep 17 00:00:00 2001 +From 88a874a95cbc38aa49372f7f05b8f161f6673afa Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:30:48 +0200 Subject: [PATCH 09/11] Test the shell-precmd signal @@ -1002,10 +1002,10 @@ index 3975b9886d77..ff5fb5df052e 100644 { print("[shell] executing command\n"); diff --git a/src/app/app.cc b/src/app/app.cc -index e55f8c1339fa..4dd0fb8dc06b 100644 +index 3caec42e5877..0ae59d2526cb 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1885,6 +1885,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1888,6 +1888,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -1018,7 +1018,7 @@ index e55f8c1339fa..4dd0fb8dc06b 100644 static void shell_preexec_cb(VteTerminal *terminal) { -@@ -2130,6 +2136,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); @@ -1030,7 +1030,7 @@ index e55f8c1339fa..4dd0fb8dc06b 100644 2.30.2 -From d85e9f74c6f506ee7fa168748264e8eccb0727c8 Mon Sep 17 00:00:00 2001 +From d0c13522b182c8dd6397c48e90d03cb2ace9c891 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 10 Jun 2019 20:30:18 +0200 Subject: [PATCH 10/11] Support tracking the active container inside the @@ -1106,10 +1106,10 @@ index 0b77566ac2f8..540fd25a6866 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 27729dc35db6..37fead40ca0d 100644 +index 4b71437d117c..1446f3c7cc59 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -709,6 +709,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; @@ -1122,7 +1122,7 @@ index 27729dc35db6..37fead40ca0d 100644 case PROP_CURRENT_DIRECTORY_URI: g_value_set_string (value, vte_terminal_get_current_directory_uri (terminal)); break; -@@ -2101,6 +2107,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)); @@ -1150,7 +1150,7 @@ index 27729dc35db6..37fead40ca0d 100644 /** * VteTerminal:current-directory-uri: * -@@ -4596,6 +4623,56 @@ catch (...) +@@ -4574,6 +4601,56 @@ catch (...) return -1; } @@ -1380,7 +1380,7 @@ index 10b494bddb47..2a2ba4b47441 100644 2.30.2 -From e902b6ea9a041a468ab47fec20542a8fca3c9e57 Mon Sep 17 00:00:00 2001 +From 63cc3edf8d68328a8d27dc1c6d41337af6921c7a 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 diff --git a/vte291.spec b/vte291.spec index 6547d25..5fc4c0d 100644 --- a/vte291.spec +++ b/vte291.spec @@ -10,13 +10,13 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.63.91 +Version: 0.64.0 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.63/vte-%{version}.tar.xz +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 @@ -120,6 +120,9 @@ 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.0-1 +- Update to 0.64.0 + * Thu May 06 2021 Debarshi Ray - 0.63.91-1 - Update to 0.63.91 - Rebase downstream patches From a7fdde7e675551273a2a3eb09b70b4b30884c9db Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 6 May 2021 17:22:22 +0200 Subject: [PATCH 073/164] Update to 0.64.1 --- .gitignore | 1 + sources | 2 +- vte291-cntnr-precmd-preexec-scroll.patch | 34 ++++++++++++------------ vte291.spec | 5 +++- 4 files changed, 23 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index a9f1360..73d6ce5 100644 --- a/.gitignore +++ b/.gitignore @@ -74,3 +74,4 @@ /vte-0.62.3.tar.xz /vte-0.63.91.tar.xz /vte-0.64.0.tar.xz +/vte-0.64.1.tar.xz diff --git a/sources b/sources index 5d91078..94b741a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.64.0.tar.xz) = 64c329d192ac4d48676d06a256a72f7e723779800e01c3ae81a0791224d4ca2ed967941d31678d6a97cde90493c3d670cd9f310437523be9e06bab3db72c5399 +SHA512 (vte-0.64.1.tar.xz) = 46a066a73929ba7aa31defc9e2a6e9c531375484a845b9b1e3d9760abd4e5864a66e83b50d72907743fc6afc59c88c4097f433c0b89539f1428be500779350b6 diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index 811eca5..4e0e5fe 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,4 +1,4 @@ -From a0a85edaed44a37c1f35e5cad372ba1dee4f270a 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/11] Add sequences and signals for desktop notification @@ -36,7 +36,7 @@ index 241128c3ccfe..4412cf3d5f5c 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index 6f16873b3103..d935379df4d9 100644 +index 4ea466bd9360..033abcfe83cb 100644 --- a/src/vte.cc +++ b/src/vte.cc @@ -10100,6 +10100,14 @@ Terminal::emit_pending_signals() @@ -215,7 +215,7 @@ index bde2fa7ba0ab..7ab65b6d204a 100644 2.30.2 -From 168571d31e16014649f09b972c63ea78755249e0 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/11] vte.sh: Emit OSC 777 from PROMPT_COMMAND @@ -251,7 +251,7 @@ index 3ac99d7ec04f..2c6f668142c3 100644 2.30.2 -From faa8026184179478358fa24fdbc6321a81fbea2b 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/11] Test the notification-received signal @@ -318,7 +318,7 @@ index 37d51c6b8963..73810251a4d0 100644 2.30.2 -From e2de3222438099a4baeea2fc5dd27f0b1e94ed5f 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/11] Add a property to configure the scroll speed @@ -349,7 +349,7 @@ index c69181da7c78..dba88c156fe8 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index d935379df4d9..fee92d68f328 100644 +index 033abcfe83cb..02fe5cbf2df7 100644 --- a/src/vte.cc +++ b/src/vte.cc @@ -9293,6 +9293,7 @@ vte_cairo_get_clip_region (cairo_t *cr) @@ -520,7 +520,7 @@ index 38aaf421ec30..fd1a8b9008cf 100644 2.30.2 -From 91e5010be14c0f85760744c6b3fb356a364eb9fe 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/11] Test the scroll-speed property @@ -593,7 +593,7 @@ index 73810251a4d0..90421730a66a 100644 2.30.2 -From 999e04a183fff7b25918f7253aaeb200eb00d5e6 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/11] Support preexec notifications from an interactive shell @@ -622,7 +622,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index fee92d68f328..481e171fcd0a 100644 +index 02fe5cbf2df7..38a64d17a0bf 100644 --- a/src/vte.cc +++ b/src/vte.cc @@ -10125,6 +10125,12 @@ Terminal::emit_pending_signals() @@ -746,7 +746,7 @@ index 7ab65b6d204a..51ca37bdc748 100644 2.30.2 -From 309fda0ced97797d592f772017570e16ba23ebab 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/11] Test the shell-preexec signal @@ -811,7 +811,7 @@ index 90421730a66a..3caec42e5877 100644 2.30.2 -From 75d0ca735a57504824c9e475c81bfb075f4df721 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/11] Support precmd notifications from an interactive shell @@ -840,7 +840,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 481e171fcd0a..c57ca3a7fd8c 100644 +index 38a64d17a0bf..6b3e1336ca15 100644 --- a/src/vte.cc +++ b/src/vte.cc @@ -10131,6 +10131,12 @@ Terminal::emit_pending_signals() @@ -965,7 +965,7 @@ index 51ca37bdc748..10b494bddb47 100644 2.30.2 -From 88a874a95cbc38aa49372f7f05b8f161f6673afa 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/11] Test the shell-precmd signal @@ -1030,7 +1030,7 @@ index 3caec42e5877..0ae59d2526cb 100644 2.30.2 -From d0c13522b182c8dd6397c48e90d03cb2ace9c891 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/11] Support tracking the active container inside the @@ -1072,7 +1072,7 @@ agreed upon across multiple different terminal emulators [1]. 6 files changed, 193 insertions(+) diff --git a/src/vte.cc b/src/vte.cc -index c57ca3a7fd8c..9f025316d45b 100644 +index 6b3e1336ca15..abd6b449ae48 100644 --- a/src/vte.cc +++ b/src/vte.cc @@ -10150,6 +10150,14 @@ Terminal::emit_pending_signals() @@ -1380,7 +1380,7 @@ index 10b494bddb47..2a2ba4b47441 100644 2.30.2 -From 63cc3edf8d68328a8d27dc1c6d41337af6921c7a Mon Sep 17 00:00:00 2001 +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 @@ -1396,7 +1396,7 @@ This reverts commit 73713ec0644e232fb740170e399282be778d97f9. 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 9f025316d45b..0a6d0bc4a96e 100644 +index abd6b449ae48..99ad5973c363 100644 --- a/src/vte.cc +++ b/src/vte.cc @@ -6595,10 +6595,7 @@ Terminal::maybe_end_selection() diff --git a/vte291.spec b/vte291.spec index 5fc4c0d..858f96b 100644 --- a/vte291.spec +++ b/vte291.spec @@ -10,7 +10,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.64.0 +Version: 0.64.1 Release: 1%{?dist} Summary: Terminal emulator library @@ -120,6 +120,9 @@ 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 + * Thu May 06 2021 Debarshi Ray - 0.64.0-1 - Update to 0.64.0 From fb1f5bcce09805acc7e3b4a1361d6952d117c7dc Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 7 May 2021 22:25:14 +0200 Subject: [PATCH 074/164] Add missing _VTE_CXX_NOEXCEPT in downstream patches Spotted Christian Persch. --- vte291-cntnr-precmd-preexec-scroll.patch | 50 +++++++++++++----------- vte291.spec | 5 ++- 2 files changed, 32 insertions(+), 23 deletions(-) diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index 4e0e5fe..d615532 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -318,7 +318,7 @@ index 37d51c6b8963..73810251a4d0 100644 2.30.2 -From 3c7a8584beffd867165fed0dfc06728913527aa0 Mon Sep 17 00:00:00 2001 +From 68c344a66996e3845db55994e25413c97a809504 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 Subject: [PATCH 04/11] Add a property to configure the scroll speed @@ -329,12 +329,12 @@ moving the buffer by a function of the number of visible rows. https://bugzilla.redhat.com/show_bug.cgi?id=1103380 --- doc/reference/vte-sections.txt | 1 + - src/vte.cc | 19 +++++++++++++- + src/vte.cc | 19 ++++++++++++- src/vte/vteterminal.h | 4 +++ - src/vtegtk.cc | 45 ++++++++++++++++++++++++++++++++++ + src/vtegtk.cc | 51 ++++++++++++++++++++++++++++++++++ src/vtegtk.hh | 1 + src/vteinternal.hh | 2 ++ - 6 files changed, 71 insertions(+), 1 deletion(-) + 6 files changed, 77 insertions(+), 1 deletion(-) diff --git a/doc/reference/vte-sections.txt b/doc/reference/vte-sections.txt index c69181da7c78..dba88c156fe8 100644 @@ -393,7 +393,7 @@ index 033abcfe83cb..02fe5cbf2df7 100644 Terminal::set_scrollback_lines(long lines) { diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 668a7dbeae96..ea4fba199a26 100644 +index 668a7dbeae96..0143f0b9dd4d 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -310,6 +310,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, @@ -402,13 +402,13 @@ index 668a7dbeae96..ea4fba199a26 100644 +_VTE_PUBLIC +void vte_terminal_set_scroll_speed(VteTerminal *terminal, -+ guint scroll_speed) _VTE_GNUC_NONNULL(1); ++ guint scroll_speed) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); + /* Set the number of scrollback lines, above or at an internal minimum. */ _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 8c31a2895886..c5c8eb2fdc8d 100644 +index 8c31a2895886..d73f1ce05680 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -758,6 +758,9 @@ try @@ -453,7 +453,7 @@ index 8c31a2895886..c5c8eb2fdc8d 100644 /** * VteTerminal:scrollback-lines: * -@@ -5367,6 +5388,30 @@ catch (...) +@@ -5367,6 +5388,36 @@ catch (...) return -1; } @@ -468,7 +468,9 @@ index 8c31a2895886..c5c8eb2fdc8d 100644 + * rows the widget can display. + */ +void -+vte_terminal_set_scroll_speed(VteTerminal *terminal, guint scroll_speed) ++vte_terminal_set_scroll_speed(VteTerminal *terminal, ++ guint scroll_speed) noexcept ++try +{ + g_return_if_fail(VTE_IS_TERMINAL(terminal)); + @@ -480,6 +482,10 @@ index 8c31a2895886..c5c8eb2fdc8d 100644 + + g_object_thaw_notify(object); +} ++catch (...) ++{ ++ vte::log_exception(); ++} + /** * vte_terminal_set_scrollback_lines: @@ -520,7 +526,7 @@ index 38aaf421ec30..fd1a8b9008cf 100644 2.30.2 -From fb3ed87e86488a7b9f224f4bc5d7e1ea76686318 Mon Sep 17 00:00:00 2001 +From cb8b9297bfdf7dd3ff49c01bb9bdfa2122f9ef63 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 Subject: [PATCH 05/11] Test the scroll-speed property @@ -593,7 +599,7 @@ index 73810251a4d0..90421730a66a 100644 2.30.2 -From 0ea61474bc6f47c15d9856fef43ea9c5a5810ae4 Mon Sep 17 00:00:00 2001 +From 9ae40f1485bd6dc4468c59dc6b1474b06053933c Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 06/11] Support preexec notifications from an interactive shell @@ -652,7 +658,7 @@ index 2c6f668142c3..fc33a63f1f84 100644 ;; esac diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index ea4fba199a26..1fb8b061c9e3 100644 +index 0143f0b9dd4d..2d1017f4a216 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -103,9 +103,10 @@ struct _VteTerminalClass { @@ -668,7 +674,7 @@ index ea4fba199a26..1fb8b061c9e3 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index c5c8eb2fdc8d..e2a6462f2b61 100644 +index d73f1ce05680..f78b168a0a7c 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -990,6 +990,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -746,7 +752,7 @@ index 7ab65b6d204a..51ca37bdc748 100644 2.30.2 -From f3075b837fb363be213067c1eaa37d41ff178b4b Mon Sep 17 00:00:00 2001 +From f7b0c02b216b492c928fcb314dcef9a248e6a042 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 20 Apr 2018 18:21:53 +0200 Subject: [PATCH 07/11] Test the shell-preexec signal @@ -811,7 +817,7 @@ index 90421730a66a..3caec42e5877 100644 2.30.2 -From 6feda43e7aa751638f0543f0cf68ee002fe17bac Mon Sep 17 00:00:00 2001 +From 63930c9a1e3e8cade091332c0499edf692cc91ae Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:20:30 +0200 Subject: [PATCH 08/11] Support precmd notifications from an interactive shell @@ -870,7 +876,7 @@ index fc33a63f1f84..359afbc4645c 100644 } diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 1fb8b061c9e3..0b77566ac2f8 100644 +index 2d1017f4a216..5e413393f7ec 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -103,10 +103,11 @@ struct _VteTerminalClass { @@ -887,7 +893,7 @@ index 1fb8b061c9e3..0b77566ac2f8 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index e2a6462f2b61..4b71437d117c 100644 +index f78b168a0a7c..bd6c0d7d2777 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -990,6 +990,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -965,7 +971,7 @@ index 51ca37bdc748..10b494bddb47 100644 2.30.2 -From 484aa4cc8def14f5b920d4e898e577ef9e402765 Mon Sep 17 00:00:00 2001 +From 65d93ad126528ad50c652afd7b5ab3dd1cf65dc5 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:30:48 +0200 Subject: [PATCH 09/11] Test the shell-precmd signal @@ -1030,7 +1036,7 @@ index 3caec42e5877..0ae59d2526cb 100644 2.30.2 -From a9691aa071a9f15c637c249d5d7119092a7cd043 Mon Sep 17 00:00:00 2001 +From 1c5cf64a59cf6570af701abeb8b866aac4ed3627 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 10 Jun 2019 20:30:18 +0200 Subject: [PATCH 10/11] Support tracking the active container inside the @@ -1091,7 +1097,7 @@ index 6b3e1336ca15..abd6b449ae48 100644 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 0b77566ac2f8..540fd25a6866 100644 +index 5e413393f7ec..32b2f32eef9d 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -488,6 +488,10 @@ glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VT @@ -1106,7 +1112,7 @@ index 0b77566ac2f8..540fd25a6866 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 4b71437d117c..1446f3c7cc59 100644 +index bd6c0d7d2777..ec4322d980c4 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -707,6 +707,12 @@ try @@ -1380,7 +1386,7 @@ index 10b494bddb47..2a2ba4b47441 100644 2.30.2 -From 9917160afbb918979fa78e4fe1575db350d94386 Mon Sep 17 00:00:00 2001 +From 19e61e25e05e1c7ee7b8b8bc586af40fc5d8cc9d 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 diff --git a/vte291.spec b/vte291.spec index 858f96b..4e7baf6 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ Name: vte291 Version: 0.64.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -120,6 +120,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Fri May 07 2021 Debarshi Ray - 0.64.1-2 +- Add missing _VTE_CXX_NOEXCEPT in downstream patches + * Thu May 06 2021 Debarshi Ray - 0.64.1-1 - Update to 0.64.1 From 60a67bf28777eb469ff475d64fe280712b048db6 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Thu, 20 May 2021 01:22:42 +0100 Subject: [PATCH 075/164] Rebuild for ICU 69 --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index 4e7baf6..4a860ab 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ Name: vte291 Version: 0.64.1 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -120,6 +120,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Thu May 20 2021 Pete Walter - 0.64.1-3 +- Rebuild for ICU 69 + * Fri May 07 2021 Debarshi Ray - 0.64.1-2 - Add missing _VTE_CXX_NOEXCEPT in downstream patches From d2277d0702dcc901aaeb23b7c04512d4a1424575 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 16 Jun 2021 20:58:56 +0200 Subject: [PATCH 076/164] Update to 0.64.2 --- .gitignore | 1 + sources | 2 +- vte291-cntnr-precmd-preexec-scroll.patch | 54 ++++++++++++------------ vte291.spec | 7 ++- 4 files changed, 34 insertions(+), 30 deletions(-) diff --git a/.gitignore b/.gitignore index 73d6ce5..680eb63 100644 --- a/.gitignore +++ b/.gitignore @@ -75,3 +75,4 @@ /vte-0.63.91.tar.xz /vte-0.64.0.tar.xz /vte-0.64.1.tar.xz +/vte-0.64.2.tar.xz diff --git a/sources b/sources index 94b741a..d1982ea 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.64.1.tar.xz) = 46a066a73929ba7aa31defc9e2a6e9c531375484a845b9b1e3d9760abd4e5864a66e83b50d72907743fc6afc59c88c4097f433c0b89539f1428be500779350b6 +SHA512 (vte-0.64.2.tar.xz) = 67facea1f2507183aa5fd51215a404d6e754be5694e49c8511d7dd841192178a583e9416b2611dc6b5f635555ac2fb9f48a8a6e68e6e4673c4d93422b7555061 diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index d615532..26a51e6 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,4 +1,4 @@ -From d0292b797130694621e6af96728c7aa126b40bb9 Mon Sep 17 00:00:00 2001 +From b0b746ddf50375173d0b98baf12740dc910745d2 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 01/11] Add sequences and signals for desktop notification @@ -71,7 +71,7 @@ index e705ece69ad6..668a7dbeae96 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 0a26f976649b..8c31a2895886 100644 +index c68a0f1ac388..e3274ff3df90 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -983,6 +983,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -212,10 +212,10 @@ index bde2fa7ba0ab..7ab65b6d204a 100644 default: break; -- -2.30.2 +2.31.1 -From 14ae7496ee64ed6404547eb9407286e61beab2e9 Mon Sep 17 00:00:00 2001 +From f1ba75377276560079af1d8f615380abd5fc9438 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 Subject: [PATCH 02/11] vte.sh: Emit OSC 777 from PROMPT_COMMAND @@ -248,10 +248,10 @@ index 3ac99d7ec04f..2c6f668142c3 100644 } -- -2.30.2 +2.31.1 -From b819404f9d677e82f350ce4943e60af142bec07b Mon Sep 17 00:00:00 2001 +From 5c825104d44100b72d98cf02ea0751065576af4e Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 Subject: [PATCH 03/11] Test the notification-received signal @@ -315,10 +315,10 @@ index 37d51c6b8963..73810251a4d0 100644 if (options.no_double_buffer) { G_GNUC_BEGIN_IGNORE_DEPRECATIONS; -- -2.30.2 +2.31.1 -From 68c344a66996e3845db55994e25413c97a809504 Mon Sep 17 00:00:00 2001 +From aa647920fe6dc8ee0f4d23d8d90bafc649d01efe Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 Subject: [PATCH 04/11] Add a property to configure the scroll speed @@ -408,7 +408,7 @@ index 668a7dbeae96..0143f0b9dd4d 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 8c31a2895886..d73f1ce05680 100644 +index e3274ff3df90..b4bcd3d9a1d5 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -758,6 +758,9 @@ try @@ -523,10 +523,10 @@ index 38aaf421ec30..fd1a8b9008cf 100644 bool set_fallback_scrolling(bool set); auto fallback_scrolling() const noexcept { return m_fallback_scrolling; } -- -2.30.2 +2.31.1 -From cb8b9297bfdf7dd3ff49c01bb9bdfa2122f9ef63 Mon Sep 17 00:00:00 2001 +From f080a7417f8f657778916219ad06ab184c53ff9a Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 Subject: [PATCH 05/11] Test the scroll-speed property @@ -596,10 +596,10 @@ index 73810251a4d0..90421730a66a 100644 vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); -- -2.30.2 +2.31.1 -From 9ae40f1485bd6dc4468c59dc6b1474b06053933c Mon Sep 17 00:00:00 2001 +From b77827bf39fcf7b27f548a5472802371196801d3 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 06/11] Support preexec notifications from an interactive shell @@ -674,7 +674,7 @@ index 0143f0b9dd4d..2d1017f4a216 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index d73f1ce05680..f78b168a0a7c 100644 +index b4bcd3d9a1d5..ce95126b37b8 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -990,6 +990,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -749,10 +749,10 @@ index 7ab65b6d204a..51ca37bdc748 100644 bool -- -2.30.2 +2.31.1 -From f7b0c02b216b492c928fcb314dcef9a248e6a042 Mon Sep 17 00:00:00 2001 +From d2e780db838ead280cf5657c49b0d63dd0683f5f Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 20 Apr 2018 18:21:53 +0200 Subject: [PATCH 07/11] Test the shell-preexec signal @@ -814,10 +814,10 @@ index 90421730a66a..3caec42e5877 100644 /* Settings */ if (options.no_double_buffer) { -- -2.30.2 +2.31.1 -From 63930c9a1e3e8cade091332c0499edf692cc91ae Mon Sep 17 00:00:00 2001 +From 949d4552c4ab66e02ba03024091f21bd35c199d8 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:20:30 +0200 Subject: [PATCH 08/11] Support precmd notifications from an interactive shell @@ -893,7 +893,7 @@ index 2d1017f4a216..5e413393f7ec 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index f78b168a0a7c..bd6c0d7d2777 100644 +index ce95126b37b8..a84f17e21f65 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -990,6 +990,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -968,10 +968,10 @@ index 51ca37bdc748..10b494bddb47 100644 } } -- -2.30.2 +2.31.1 -From 65d93ad126528ad50c652afd7b5ab3dd1cf65dc5 Mon Sep 17 00:00:00 2001 +From 28518832a97fc3ff2760de36cc13586c12555b62 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:30:48 +0200 Subject: [PATCH 09/11] Test the shell-precmd signal @@ -1033,10 +1033,10 @@ index 3caec42e5877..0ae59d2526cb 100644 /* Settings */ -- -2.30.2 +2.31.1 -From 1c5cf64a59cf6570af701abeb8b866aac4ed3627 Mon Sep 17 00:00:00 2001 +From e1c687e0651c06b72c7197e9f8f4a91122e8451c Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 10 Jun 2019 20:30:18 +0200 Subject: [PATCH 10/11] Support tracking the active container inside the @@ -1112,7 +1112,7 @@ index 5e413393f7ec..32b2f32eef9d 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 bd6c0d7d2777..ec4322d980c4 100644 +index a84f17e21f65..aa3f04c6a02a 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -707,6 +707,12 @@ try @@ -1383,10 +1383,10 @@ index 10b494bddb47..2a2ba4b47441 100644 ++token; -- -2.30.2 +2.31.1 -From 19e61e25e05e1c7ee7b8b8bc586af40fc5d8cc9d Mon Sep 17 00:00:00 2001 +From 4a949461c975c2d062703e161f337d84f13a60d7 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 @@ -1429,5 +1429,5 @@ index abd6b449ae48..99ad5973c363 100644 _vte_debug_print(VTE_DEBUG_SELECTION, "Selecting *all* text.\n"); -- -2.30.2 +2.31.1 diff --git a/vte291.spec b/vte291.spec index 4a860ab..c7d7baf 100644 --- a/vte291.spec +++ b/vte291.spec @@ -10,8 +10,8 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.64.1 -Release: 3%{?dist} +Version: 0.64.2 +Release: 1%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -120,6 +120,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Wed Jun 16 2021 Debarshi Ray - 0.64.2-1 +- Update to 0.64.2 + * Thu May 20 2021 Pete Walter - 0.64.1-3 - Rebuild for ICU 69 From b98cc3691fdad7c746714ca8237d786d8de3d434 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 17 Jun 2021 17:02:11 +0200 Subject: [PATCH 077/164] Fix the License fields and ship the correct license texts See: https://docs.fedoraproject.org/en-US/packaging-guidelines/LicensingGuidelines/ --- vte291.spec | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/vte291.spec b/vte291.spec index c7d7baf..696818e 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,10 +11,12 @@ Name: vte291 Version: 0.64.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library -License: LGPLv2+ +# libvte-2.91.so is generated from LGPLv2+ and MIT sources +License: LGPLv3+ and MIT + URL: https://wiki.gnome.org/Apps/Terminal/VTE Source0: https://download.gnome.org/sources/vte/0.64/vte-%{version}.tar.xz @@ -61,6 +63,11 @@ console/terminal in games, editors, IDEs, etc. %package devel Summary: Development files for %{name} + +# vte-2.91 is generated from GPLv3+ sources, while the public headers are +# LGPLv3+ +License: GPLv3+ and LGPLv3+ + Requires: %{name}%{?_isa} = %{version}-%{release} %description devel @@ -99,12 +106,14 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %find_lang vte-%{apiver} %files -f vte-%{apiver}.lang -%license COPYING.GPL3 +%license COPYING.LGPL3 +%license COPYING.XTERM %{_libdir}/libvte-%{apiver}.so.0* %{_libdir}/girepository-1.0/ %{_userunitdir}/vte-spawn-.scope.d %files devel +%license COPYING.GPL3 %{_bindir}/vte-%{apiver} %{_includedir}/vte-%{apiver}/ %{_libdir}/libvte-%{apiver}.so @@ -115,11 +124,15 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_datadir}/vala/ %files -n vte-profile +%license COPYING.GPL3 %{_libexecdir}/vte-urlencode-cwd %{_sysconfdir}/profile.d/vte.csh %{_sysconfdir}/profile.d/vte.sh %changelog +* Thu Jun 17 2021 Debarshi Ray - 0.64.2-2 +- Fix the License fields and ship the correct license texts + * Wed Jun 16 2021 Debarshi Ray - 0.64.2-1 - Update to 0.64.2 From 06ce3617616e689fa01f33c1bf0b3e9d906f8972 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 23 Jul 2021 20:41:39 +0000 Subject: [PATCH 078/164] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index 696818e..798446c 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ Name: vte291 Version: 0.64.2 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -130,6 +130,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Fri Jul 23 2021 Fedora Release Engineering - 0.64.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Thu Jun 17 2021 Debarshi Ray - 0.64.2-2 - Fix the License fields and ship the correct license texts From daec9cae9f51c723ffc7cd35ae3a3a01bf25c86a Mon Sep 17 00:00:00 2001 From: David King Date: Tue, 28 Sep 2021 14:24:46 +0100 Subject: [PATCH 079/164] Update to 0.66.0 --- .gitignore | 2 + sources | 2 +- vte-0.66.0-prompt-command.patch | 29 ++ vte291-cntnr-precmd-preexec-scroll.patch | 327 ++++++++++++----------- vte291.spec | 27 +- 5 files changed, 213 insertions(+), 174 deletions(-) create mode 100644 vte-0.66.0-prompt-command.patch diff --git a/.gitignore b/.gitignore index 680eb63..3c76eb9 100644 --- a/.gitignore +++ b/.gitignore @@ -76,3 +76,5 @@ /vte-0.64.0.tar.xz /vte-0.64.1.tar.xz /vte-0.64.2.tar.xz +/vte-0.65.91.tar.bz2 +/vte-0.66.0.tar.bz2 diff --git a/sources b/sources index d1982ea..ff827da 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.64.2.tar.xz) = 67facea1f2507183aa5fd51215a404d6e754be5694e49c8511d7dd841192178a583e9416b2611dc6b5f635555ac2fb9f48a8a6e68e6e4673c4d93422b7555061 +SHA512 (vte-0.66.0.tar.bz2) = 8868b27cb91d57ba00c3c5261a42054abb352663cb183053917c543c90a8940bfc289ac751858218673b4eecfb6e9706e397a065045646ffeda69e0f3e4f839a diff --git a/vte-0.66.0-prompt-command.patch b/vte-0.66.0-prompt-command.patch new file mode 100644 index 0000000..b36e110 --- /dev/null +++ b/vte-0.66.0-prompt-command.patch @@ -0,0 +1,29 @@ +From 1fe2f3e9e11d1b8b0e45698a268b77e8f52e25db Mon Sep 17 00:00:00 2001 +From: Christian Persch +Date: Sat, 25 Sep 2021 10:50:29 +0200 +Subject: [PATCH] vte.sh: Fix the check for PROMPT_COMMAND when it is unset + +declare "helpfully" outputs on stdout for existing variables, but on stderr +for nonexistent ones. + +Fixes: https://gitlab.gnome.org/GNOME/vte/-/issues/37 +--- + src/vte.sh.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/vte.sh.in b/src/vte.sh.in +index 1aa40ba4..242d6c42 100644 +--- a/src/vte.sh.in ++++ b/src/vte.sh.in +@@ -48,7 +48,7 @@ if [[ -n "${BASH_VERSION:-}" ]]; then + # On older bash, we can only overwrite the whole PROMPT_COMMAND, so must + # use the __vte_prompt_command function which also sets the title. + +- if [[ "$(declare -p PROMPT_COMMAND)" =~ "declare -a" ]]; then ++ if [[ "$(declare -p PROMPT_COMMAND 2>&1)" =~ "declare -a" ]]; then + PROMPT_COMMAND+=(__vte_osc7) + else + PROMPT_COMMAND="__vte_prompt_command" +-- +2.32.0 + diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index 26a51e6..3148bda 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,4 +1,4 @@ -From b0b746ddf50375173d0b98baf12740dc910745d2 Mon Sep 17 00:00:00 2001 +From faa4340a6dc1df505d331eda732c094645bd3863 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 01/11] Add sequences and signals for desktop notification @@ -27,7 +27,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711059 7 files changed, 73 insertions(+), 2 deletions(-) diff --git a/src/marshal.list b/src/marshal.list -index 241128c3ccfe..4412cf3d5f5c 100644 +index 241128c3..4412cf3d 100644 --- a/src/marshal.list +++ b/src/marshal.list @@ -1,3 +1,4 @@ @@ -36,10 +36,10 @@ index 241128c3ccfe..4412cf3d5f5c 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index 4ea466bd9360..033abcfe83cb 100644 +index ec330490..f39578ac 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10100,6 +10100,14 @@ Terminal::emit_pending_signals() +@@ -10082,6 +10082,14 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); @@ -55,10 +55,10 @@ index 4ea466bd9360..033abcfe83cb 100644 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 e705ece69ad6..668a7dbeae96 100644 +index 05f6674f..0b9b8dc4 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -102,8 +102,10 @@ struct _VteTerminalClass { +@@ -109,8 +109,10 @@ struct _VteTerminalClass { void (*bell)(VteTerminal* terminal); @@ -68,13 +68,13 @@ index e705ece69ad6..668a7dbeae96 100644 - gpointer padding[16]; + gpointer padding[15]; + // FIXMEgtk4 use class private data instead VteTerminalClassPrivate *priv; - }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index c68a0f1ac388..e3274ff3df90 100644 +index 000be62d..04eceea1 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -983,6 +983,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1242,6 +1242,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->child_exited = NULL; klass->encoding_changed = NULL; klass->char_size_changed = NULL; @@ -82,7 +82,7 @@ index c68a0f1ac388..e3274ff3df90 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -1064,6 +1065,26 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1325,6 +1326,26 @@ vte_terminal_class_init(VteTerminalClass *klass) G_OBJECT_CLASS_TYPE(klass), g_cclosure_marshal_VOID__INTv); @@ -110,22 +110,22 @@ index c68a0f1ac388..e3274ff3df90 100644 * VteTerminal::window-title-changed: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 1cb8cb49967b..389b86d2e557 100644 +index 6b7a1ea2..8ba10395 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh -@@ -56,6 +56,7 @@ enum { - SIGNAL_TEXT_INSERTED, - SIGNAL_TEXT_MODIFIED, - SIGNAL_TEXT_SCROLLED, +@@ -52,6 +52,7 @@ enum { + SIGNAL_RESIZE_WINDOW, + SIGNAL_RESTORE_WINDOW, + SIGNAL_SELECTION_CHANGED, + SIGNAL_NOTIFICATION_RECEIVED, SIGNAL_WINDOW_TITLE_CHANGED, LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 7a257afed861..38aaf421ec30 100644 +index 77843507..b4dfb2a4 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -621,6 +621,10 @@ public: +@@ -663,6 +663,10 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -136,7 +136,7 @@ index 7a257afed861..38aaf421ec30 100644 std::string m_window_title{}; std::string m_current_directory_uri{}; std::string m_current_file_uri{}; -@@ -634,6 +638,7 @@ public: +@@ -676,6 +680,7 @@ public: TITLE = 1u << 0, CWD = 1u << 1, CWF = 1u << 2, @@ -144,7 +144,7 @@ index 7a257afed861..38aaf421ec30 100644 }; unsigned m_pending_changes{0}; -@@ -1358,6 +1363,9 @@ public: +@@ -1488,6 +1493,9 @@ public: int osc) noexcept; /* OSC handlers */ @@ -155,10 +155,10 @@ index 7a257afed861..38aaf421ec30 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 bde2fa7ba0ab..7ab65b6d204a 100644 +index 0a45c9b4..1a6bdc11 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1377,6 +1377,33 @@ Terminal::delete_lines(vte::grid::row_t param) +@@ -1376,6 +1376,33 @@ Terminal::delete_lines(vte::grid::row_t param) m_text_deleted_flag = TRUE; } @@ -192,7 +192,7 @@ index bde2fa7ba0ab..7ab65b6d204a 100644 bool Terminal::get_osc_color_index(int osc, int value, -@@ -6519,6 +6546,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6535,6 +6562,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) reset_color(VTE_HIGHLIGHT_FG, VTE_COLOR_SOURCE_ESCAPE); break; @@ -203,7 +203,7 @@ index bde2fa7ba0ab..7ab65b6d204a 100644 case VTE_OSC_XTERM_SET_ICON_TITLE: case VTE_OSC_XTERM_SET_XPROPERTY: case VTE_OSC_XTERM_SET_COLOR_MOUSE_CURSOR_FG: -@@ -6559,7 +6590,6 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6576,7 +6607,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: @@ -212,10 +212,10 @@ index bde2fa7ba0ab..7ab65b6d204a 100644 default: break; -- -2.31.1 +2.32.0 -From f1ba75377276560079af1d8f615380abd5fc9438 Mon Sep 17 00:00:00 2001 +From 08aaeb7060411e91f142f928950d01af121e823a Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 Subject: [PATCH 02/11] vte.sh: Emit OSC 777 from PROMPT_COMMAND @@ -230,10 +230,10 @@ 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 3ac99d7ec04f..2c6f668142c3 100644 +index 242d6c42..50242223 100644 --- a/src/vte.sh.in +++ b/src/vte.sh.in -@@ -27,10 +27,12 @@ __vte_osc7 () { +@@ -33,10 +33,12 @@ __vte_osc7 () { } __vte_prompt_command() { @@ -248,10 +248,10 @@ index 3ac99d7ec04f..2c6f668142c3 100644 } -- -2.31.1 +2.32.0 -From 5c825104d44100b72d98cf02ea0751065576af4e Mon Sep 17 00:00:00 2001 +From 1f3aa3194edb4d98ff83836e2f9151960314c040 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 Subject: [PATCH 03/11] Test the notification-received signal @@ -262,7 +262,7 @@ Subject: [PATCH 03/11] Test the notification-received signal 2 files changed, 17 insertions(+) diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala -index 8ab27e5aaf9a..025f971b2eb0 100644 +index 8ab27e5a..025f971b 100644 --- a/bindings/vala/app.vala +++ b/bindings/vala/app.vala @@ -309,6 +309,8 @@ class Window : Gtk.ApplicationWindow @@ -287,11 +287,11 @@ index 8ab27e5aaf9a..025f971b2eb0 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 37d51c6b8963..73810251a4d0 100644 +index 86135abe..e5f67cd9 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1877,6 +1877,14 @@ window_window_title_changed_cb(VteTerminal* terminal, - vte_terminal_get_window_title(window->terminal)); +@@ -2208,6 +2208,14 @@ window_window_title_changed_cb(VteTerminal* terminal, + #endif } +static void @@ -305,20 +305,20 @@ index 37d51c6b8963..73810251a4d0 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2115,6 +2123,8 @@ vteapp_window_constructed(GObject *object) +@@ -2503,6 +2511,8 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) 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); + /* Settings */ + #if VTE_GTK == 3 if (options.no_double_buffer) { - G_GNUC_BEGIN_IGNORE_DEPRECATIONS; -- -2.31.1 +2.32.0 -From aa647920fe6dc8ee0f4d23d8d90bafc649d01efe Mon Sep 17 00:00:00 2001 +From 67f64a50e3671e50e6cf82f7f69ed1543253a019 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 Subject: [PATCH 04/11] Add a property to configure the scroll speed @@ -328,19 +328,19 @@ moving the buffer by a function of the number of visible rows. https://bugzilla.redhat.com/show_bug.cgi?id=1103380 --- - doc/reference/vte-sections.txt | 1 + - src/vte.cc | 19 ++++++++++++- - src/vte/vteterminal.h | 4 +++ - src/vtegtk.cc | 51 ++++++++++++++++++++++++++++++++++ - src/vtegtk.hh | 1 + - src/vteinternal.hh | 2 ++ + doc/reference/vte-sections.txt.in | 1 + + src/vte.cc | 19 +++++++++++- + src/vte/vteterminal.h | 4 +++ + src/vtegtk.cc | 51 +++++++++++++++++++++++++++++++ + src/vtegtk.hh | 1 + + src/vteinternal.hh | 2 ++ 6 files changed, 77 insertions(+), 1 deletion(-) -diff --git a/doc/reference/vte-sections.txt b/doc/reference/vte-sections.txt -index c69181da7c78..dba88c156fe8 100644 ---- a/doc/reference/vte-sections.txt -+++ b/doc/reference/vte-sections.txt -@@ -54,6 +54,7 @@ vte_terminal_get_cursor_blink_mode +diff --git a/doc/reference/vte-sections.txt.in b/doc/reference/vte-sections.txt.in +index 1180f972..f097d4b9 100644 +--- a/doc/reference/vte-sections.txt.in ++++ b/doc/reference/vte-sections.txt.in +@@ -56,6 +56,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 @@ -349,10 +349,10 @@ index c69181da7c78..dba88c156fe8 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index 033abcfe83cb..02fe5cbf2df7 100644 +index f39578ac..f027ce3b 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9293,6 +9293,7 @@ vte_cairo_get_clip_region (cairo_t *cr) +@@ -9289,6 +9289,7 @@ vte_cairo_get_clip_region(cairo_t *cr) bool Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) { @@ -360,13 +360,13 @@ index 033abcfe83cb..02fe5cbf2df7 100644 gdouble v; gint cnt, i; int button; -@@ -9327,7 +9328,13 @@ Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) +@@ -9323,7 +9324,13 @@ Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) return true; } -- v = MAX (1., ceil (gtk_adjustment_get_page_increment (m_vadjustment.get()) / 10.)); +- v = MAX (1., ceil (m_row_count /* page increment */ / 10.)); + if (m_scroll_speed == 0) { -+ scroll_speed = ceil (gtk_adjustment_get_page_increment (m_vadjustment.get()) / 10.); ++ scroll_speed = ceil (m_row_count /* page increment */ / 10.); + } else { + scroll_speed = m_scroll_speed; + } @@ -375,7 +375,7 @@ index 033abcfe83cb..02fe5cbf2df7 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -9641,6 +9648,16 @@ Terminal::decscusr_cursor_shape() const noexcept +@@ -9633,6 +9640,16 @@ Terminal::decscusr_cursor_shape() const noexcept } } @@ -393,10 +393,10 @@ index 033abcfe83cb..02fe5cbf2df7 100644 Terminal::set_scrollback_lines(long lines) { diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 668a7dbeae96..0143f0b9dd4d 100644 +index 0b9b8dc4..20c930f7 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -310,6 +310,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, +@@ -324,6 +324,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); @@ -408,10 +408,10 @@ index 668a7dbeae96..0143f0b9dd4d 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index e3274ff3df90..b4bcd3d9a1d5 100644 +index 04eceea1..7e405a39 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -758,6 +758,9 @@ try +@@ -993,6 +993,9 @@ try case PROP_REWRAP_ON_RESIZE: g_value_set_boolean (value, vte_terminal_get_rewrap_on_resize (terminal)); break; @@ -421,7 +421,7 @@ index e3274ff3df90..b4bcd3d9a1d5 100644 case PROP_SCROLLBACK_LINES: g_value_set_uint (value, vte_terminal_get_scrollback_lines(terminal)); break; -@@ -876,6 +879,9 @@ try +@@ -1114,6 +1117,9 @@ try case PROP_REWRAP_ON_RESIZE: vte_terminal_set_rewrap_on_resize (terminal, g_value_get_boolean (value)); break; @@ -431,7 +431,7 @@ index e3274ff3df90..b4bcd3d9a1d5 100644 case PROP_SCROLLBACK_LINES: vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); break; -@@ -1966,6 +1972,21 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -2210,6 +2216,21 @@ vte_terminal_class_init(VteTerminalClass *klass) TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -453,7 +453,7 @@ index e3274ff3df90..b4bcd3d9a1d5 100644 /** * VteTerminal:scrollback-lines: * -@@ -5367,6 +5388,36 @@ catch (...) +@@ -5666,6 +5687,36 @@ catch (...) return -1; } @@ -491,10 +491,10 @@ index e3274ff3df90..b4bcd3d9a1d5 100644 * vte_terminal_set_scrollback_lines: * @terminal: a #VteTerminal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 389b86d2e557..24063c3060da 100644 +index 8ba10395..f6cd891b 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh -@@ -90,6 +90,7 @@ enum { +@@ -86,6 +86,7 @@ enum { PROP_MOUSE_POINTER_AUTOHIDE, PROP_PTY, PROP_REWRAP_ON_RESIZE, @@ -503,18 +503,18 @@ index 389b86d2e557..24063c3060da 100644 PROP_SCROLL_ON_KEYSTROKE, PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 38aaf421ec30..fd1a8b9008cf 100644 +index b4dfb2a4..2da56ebd 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -399,6 +399,7 @@ public: +@@ -429,6 +429,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 */ -@@ -1232,6 +1233,7 @@ public: + inline auto scroll_limit_lower() const noexcept +@@ -1363,6 +1364,7 @@ public: bool set_input_enabled(bool enabled); bool set_mouse_autohide(bool autohide); bool set_rewrap_on_resize(bool rewrap); @@ -523,10 +523,10 @@ index 38aaf421ec30..fd1a8b9008cf 100644 bool set_fallback_scrolling(bool set); auto fallback_scrolling() const noexcept { return m_fallback_scrolling; } -- -2.31.1 +2.32.0 -From f080a7417f8f657778916219ad06ab184c53ff9a Mon Sep 17 00:00:00 2001 +From 7c7ab09278605488a2710eac246842d646e0cfc7 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 Subject: [PATCH 05/11] Test the scroll-speed property @@ -538,7 +538,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 025f971b2eb0..51b5d6410503 100644 +index 025f971b..51b5d641 100644 --- a/bindings/vala/app.vala +++ b/bindings/vala/app.vala @@ -335,6 +335,7 @@ class Window : Gtk.ApplicationWindow @@ -567,10 +567,10 @@ index 025f971b2eb0..51b5d6410503 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 73810251a4d0..90421730a66a 100644 +index e5f67cd9..e812416c 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -116,6 +116,7 @@ public: +@@ -115,6 +115,7 @@ public: int verbosity{0}; double cell_height_scale{1.0}; double cell_width_scale{1.0}; @@ -578,28 +578,28 @@ index 73810251a4d0..90421730a66a 100644 VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM}; VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK}; VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS}; -@@ -590,6 +591,8 @@ public: +@@ -617,6 +618,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 }, + { "scroll-speed", 0, 0, G_OPTION_ARG_INT, &scroll_speed, + "Specify the scroll speed", nullptr }, + { "scroll-unit-is-pixels", 0, 0, G_OPTION_ARG_NONE, &scroll_unit_is_pixels, + "Use pixels as scroll unit", nullptr }, { "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, -@@ -2157,6 +2160,7 @@ vteapp_window_constructed(GObject *object) +@@ -2547,6 +2550,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); + vte_terminal_set_scroll_speed(window->terminal, options.scroll_speed); + vte_terminal_set_scroll_unit_is_pixels(window->terminal, options.scroll_unit_is_pixels); vte_terminal_set_scrollback_lines(window->terminal, options.scrollback_lines); vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); - -- -2.31.1 +2.32.0 -From b77827bf39fcf7b27f548a5472802371196801d3 Mon Sep 17 00:00:00 2001 +From fb7db8f86848dc7ad6ea585d3211e935603d1aa9 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 06/11] Support preexec notifications from an interactive shell @@ -619,19 +619,19 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 --- src/vte.cc | 6 ++++++ - src/vte.sh.in | 2 +- + src/vte.sh.in | 4 ++-- 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(+), 2 deletions(-) + 7 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 02fe5cbf2df7..38a64d17a0bf 100644 +index f027ce3b..36cf379f 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10125,6 +10125,12 @@ Terminal::emit_pending_signals() +@@ -10107,6 +10107,12 @@ Terminal::emit_pending_signals() m_notification_body.c_str()); } @@ -645,23 +645,26 @@ index 02fe5cbf2df7..38a64d17a0bf 100644 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 2c6f668142c3..fc33a63f1f84 100644 +index 50242223..01b44e23 100644 --- a/src/vte.sh.in +++ b/src/vte.sh.in -@@ -38,7 +38,7 @@ __vte_prompt_command() { +@@ -51,9 +51,9 @@ if [[ -n "${BASH_VERSION:-}" ]]; then + # use the __vte_prompt_command function which also sets the title. - case "$TERM" in - xterm*|vte*) -- [ -n "${BASH_VERSION:-}" ] && PROMPT_COMMAND="__vte_prompt_command" -+ [ -n "${BASH_VERSION:-}" ] && PROMPT_COMMAND="__vte_prompt_command" && PS0=$(printf "\033]777;preexec\033\\") - [ -n "${ZSH_VERSION:-}" ] && precmd_functions+=(__vte_osc7) - ;; - esac + if [[ "$(declare -p PROMPT_COMMAND 2>&1)" =~ "declare -a" ]]; then +- PROMPT_COMMAND+=(__vte_osc7) ++ PROMPT_COMMAND+=(__vte_osc7) && PS0=$(printf "\033]777;preexec\033\\") + else +- PROMPT_COMMAND="__vte_prompt_command" ++ PROMPT_COMMAND="__vte_prompt_command" && PS0=$(printf "\033]777;preexec\033\\") + fi + + elif [[ -n "${ZSH_VERSION:-}" ]]; then diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 0143f0b9dd4d..2d1017f4a216 100644 +index 20c930f7..2b277e05 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -103,9 +103,10 @@ struct _VteTerminalClass { +@@ -110,9 +110,10 @@ struct _VteTerminalClass { void (*bell)(VteTerminal* terminal); void (*notification_received)(VteTerminal* terminal, const gchar *summary, const gchar *body); @@ -671,13 +674,13 @@ index 0143f0b9dd4d..2d1017f4a216 100644 - gpointer padding[15]; + gpointer padding[14]; + // FIXMEgtk4 use class private data instead VteTerminalClassPrivate *priv; - }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index b4bcd3d9a1d5..ce95126b37b8 100644 +index 7e405a39..22b6412b 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -990,6 +990,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1249,6 +1249,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->encoding_changed = NULL; klass->char_size_changed = NULL; klass->notification_received = NULL; @@ -685,7 +688,7 @@ index b4bcd3d9a1d5..ce95126b37b8 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -1091,6 +1092,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1352,6 +1353,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -710,7 +713,7 @@ index b4bcd3d9a1d5..ce95126b37b8 100644 * VteTerminal::window-title-changed: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 24063c3060da..e90e183e7c2d 100644 +index f6cd891b..bf85bdf4 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -52,6 +52,7 @@ enum { @@ -718,14 +721,14 @@ index 24063c3060da..e90e183e7c2d 100644 SIGNAL_RESTORE_WINDOW, SIGNAL_SELECTION_CHANGED, + SIGNAL_SHELL_PREEXEC, - SIGNAL_TEXT_DELETED, - SIGNAL_TEXT_INSERTED, - SIGNAL_TEXT_MODIFIED, + SIGNAL_NOTIFICATION_RECEIVED, + SIGNAL_WINDOW_TITLE_CHANGED, + LAST_SIGNAL diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index fd1a8b9008cf..bb98f8bc0903 100644 +index 2da56ebd..041a9a81 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -640,6 +640,7 @@ public: +@@ -682,6 +682,7 @@ public: CWD = 1u << 1, CWF = 1u << 2, NOTIFICATION = 1u << 3, @@ -734,10 +737,10 @@ index fd1a8b9008cf..bb98f8bc0903 100644 unsigned m_pending_changes{0}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 7ab65b6d204a..51ca37bdc748 100644 +index 1a6bdc11..84341cda 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1402,6 +1402,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1401,6 +1401,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, m_notification_body = *token; return; } @@ -749,10 +752,10 @@ index 7ab65b6d204a..51ca37bdc748 100644 bool -- -2.31.1 +2.32.0 -From d2e780db838ead280cf5657c49b0d63dd0683f5f Mon Sep 17 00:00:00 2001 +From 4a699bf2ff119c9267faeac81b4db9421b782837 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 20 Apr 2018 18:21:53 +0200 Subject: [PATCH 07/11] Test the shell-preexec signal @@ -765,7 +768,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 51b5d6410503..3975b9886d77 100644 +index 51b5d641..3975b988 100644 --- a/bindings/vala/app.vala +++ b/bindings/vala/app.vala @@ -310,6 +310,7 @@ class Window : Gtk.ApplicationWindow @@ -789,10 +792,10 @@ index 51b5d6410503..3975b9886d77 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 90421730a66a..3caec42e5877 100644 +index e812416c..498db5a4 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1888,6 +1888,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -2219,6 +2219,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -805,19 +808,19 @@ index 90421730a66a..3caec42e5877 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2127,6 +2133,7 @@ vteapp_window_constructed(GObject *object) +@@ -2515,6 +2521,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); + g_signal_connect(window->terminal, "shell-preexec", G_CALLBACK(shell_preexec_cb), NULL); /* Settings */ - if (options.no_double_buffer) { + #if VTE_GTK == 3 -- -2.31.1 +2.32.0 -From 949d4552c4ab66e02ba03024091f21bd35c199d8 Mon Sep 17 00:00:00 2001 +From 84f18bd4d3f1a2fcbc68041bcbcfdcf43a34d76a Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:20:30 +0200 Subject: [PATCH 08/11] Support precmd notifications from an interactive shell @@ -846,10 +849,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 38a64d17a0bf..6b3e1336ca15 100644 +index 36cf379f..172174e0 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10131,6 +10131,12 @@ Terminal::emit_pending_signals() +@@ -10113,6 +10113,12 @@ Terminal::emit_pending_signals() g_signal_emit(freezer.get(), signals[SIGNAL_SHELL_PREEXEC], 0); } @@ -863,10 +866,10 @@ index 38a64d17a0bf..6b3e1336ca15 100644 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 fc33a63f1f84..359afbc4645c 100644 +index 01b44e23..877fe93d 100644 --- a/src/vte.sh.in +++ b/src/vte.sh.in -@@ -32,7 +32,7 @@ __vte_prompt_command() { +@@ -38,7 +38,7 @@ __vte_prompt_command() { local pwd='~' [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} pwd="${pwd//[[:cntrl:]]}" @@ -876,10 +879,10 @@ index fc33a63f1f84..359afbc4645c 100644 } diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 2d1017f4a216..5e413393f7ec 100644 +index 2b277e05..1e926166 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -103,10 +103,11 @@ struct _VteTerminalClass { +@@ -110,10 +110,11 @@ struct _VteTerminalClass { void (*bell)(VteTerminal* terminal); void (*notification_received)(VteTerminal* terminal, const gchar *summary, const gchar *body); @@ -890,13 +893,13 @@ index 2d1017f4a216..5e413393f7ec 100644 - gpointer padding[14]; + gpointer padding[13]; + // FIXMEgtk4 use class private data instead VteTerminalClassPrivate *priv; - }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index ce95126b37b8..a84f17e21f65 100644 +index 22b6412b..4cc1b939 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -990,6 +990,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1249,6 +1249,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->encoding_changed = NULL; klass->char_size_changed = NULL; klass->notification_received = NULL; @@ -904,7 +907,7 @@ index ce95126b37b8..a84f17e21f65 100644 klass->shell_preexec = NULL; klass->window_title_changed = NULL; klass->icon_title_changed = NULL; -@@ -1092,6 +1093,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1353,6 +1354,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -929,7 +932,7 @@ index ce95126b37b8..a84f17e21f65 100644 * VteTerminal::shell-preexec: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index e90e183e7c2d..93a6dde3e19a 100644 +index bf85bdf4..cee56b65 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -52,6 +52,7 @@ enum { @@ -938,13 +941,13 @@ index e90e183e7c2d..93a6dde3e19a 100644 SIGNAL_SELECTION_CHANGED, + SIGNAL_SHELL_PRECMD, SIGNAL_SHELL_PREEXEC, - SIGNAL_TEXT_DELETED, - SIGNAL_TEXT_INSERTED, + SIGNAL_NOTIFICATION_RECEIVED, + SIGNAL_WINDOW_TITLE_CHANGED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index bb98f8bc0903..25253c0af95b 100644 +index 041a9a81..5c1a5e50 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -641,6 +641,7 @@ public: +@@ -683,6 +683,7 @@ public: CWF = 1u << 2, NOTIFICATION = 1u << 3, SHELL_PREEXEC = 1u << 4, @@ -953,10 +956,10 @@ index bb98f8bc0903..25253c0af95b 100644 unsigned m_pending_changes{0}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 51ca37bdc748..10b494bddb47 100644 +index 84341cda..35eff3dd 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1403,7 +1403,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1402,7 +1402,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, return; } @@ -968,10 +971,10 @@ index 51ca37bdc748..10b494bddb47 100644 } } -- -2.31.1 +2.32.0 -From 28518832a97fc3ff2760de36cc13586c12555b62 Mon Sep 17 00:00:00 2001 +From b8c3a454e8a3dec36f1eaab960dfebca8d7100a6 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:30:48 +0200 Subject: [PATCH 09/11] Test the shell-precmd signal @@ -984,7 +987,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 3975b9886d77..ff5fb5df052e 100644 +index 3975b988..ff5fb5df 100644 --- a/bindings/vala/app.vala +++ b/bindings/vala/app.vala @@ -310,6 +310,7 @@ class Window : Gtk.ApplicationWindow @@ -1008,10 +1011,10 @@ index 3975b9886d77..ff5fb5df052e 100644 { print("[shell] executing command\n"); diff --git a/src/app/app.cc b/src/app/app.cc -index 3caec42e5877..0ae59d2526cb 100644 +index 498db5a4..8cf66f88 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1888,6 +1888,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -2219,6 +2219,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -1024,7 +1027,7 @@ index 3caec42e5877..0ae59d2526cb 100644 static void shell_preexec_cb(VteTerminal *terminal) { -@@ -2133,6 +2139,7 @@ vteapp_window_constructed(GObject *object) +@@ -2521,6 +2527,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); @@ -1033,10 +1036,10 @@ index 3caec42e5877..0ae59d2526cb 100644 /* Settings */ -- -2.31.1 +2.32.0 -From e1c687e0651c06b72c7197e9f8f4a91122e8451c Mon Sep 17 00:00:00 2001 +From 4490f0a4648d6ed359447b2f817aa47b475e093f Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 10 Jun 2019 20:30:18 +0200 Subject: [PATCH 10/11] Support tracking the active container inside the @@ -1078,10 +1081,10 @@ agreed upon across multiple different terminal emulators [1]. 6 files changed, 193 insertions(+) diff --git a/src/vte.cc b/src/vte.cc -index 6b3e1336ca15..abd6b449ae48 100644 +index 172174e0..d32e8eb7 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10150,6 +10150,14 @@ Terminal::emit_pending_signals() +@@ -10132,6 +10132,14 @@ Terminal::emit_pending_signals() m_window_title_pending.clear(); } @@ -1097,10 +1100,10 @@ index 6b3e1336ca15..abd6b449ae48 100644 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 5e413393f7ec..32b2f32eef9d 100644 +index 1e926166..f81133e4 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -488,6 +488,10 @@ glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VT +@@ -511,6 +511,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 @@ -1112,10 +1115,10 @@ index 5e413393f7ec..32b2f32eef9d 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 a84f17e21f65..aa3f04c6a02a 100644 +index 4cc1b939..4544d9a0 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -707,6 +707,12 @@ try +@@ -942,6 +942,12 @@ try case PROP_CURSOR_BLINK_MODE: g_value_set_enum (value, vte_terminal_get_cursor_blink_mode (terminal)); break; @@ -1128,7 +1131,7 @@ index a84f17e21f65..aa3f04c6a02a 100644 case PROP_CURRENT_DIRECTORY_URI: g_value_set_string (value, vte_terminal_get_current_directory_uri (terminal)); break; -@@ -2099,6 +2105,27 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -2357,6 +2363,27 @@ vte_terminal_class_init(VteTerminalClass *klass) NULL, (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -1156,7 +1159,7 @@ index a84f17e21f65..aa3f04c6a02a 100644 /** * VteTerminal:current-directory-uri: * -@@ -4574,6 +4601,56 @@ catch (...) +@@ -4869,6 +4896,56 @@ catch (...) return -1; } @@ -1214,10 +1217,10 @@ index a84f17e21f65..aa3f04c6a02a 100644 * vte_terminal_get_current_directory_uri: * @terminal: a #VteTerminal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 93a6dde3e19a..651961436225 100644 +index cee56b65..e41f2f3a 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh -@@ -76,6 +76,8 @@ enum { +@@ -72,6 +72,8 @@ enum { PROP_CJK_AMBIGUOUS_WIDTH, PROP_CURSOR_BLINK_MODE, PROP_CURSOR_SHAPE, @@ -1227,7 +1230,7 @@ index 93a6dde3e19a..651961436225 100644 PROP_CURRENT_FILE_URI, PROP_DELETE_BINDING, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 25253c0af95b..570c70b0c9e7 100644 +index 5c1a5e50..f3821475 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -59,6 +59,7 @@ @@ -1238,7 +1241,7 @@ index 25253c0af95b..570c70b0c9e7 100644 #include #include #include -@@ -97,6 +98,18 @@ typedef enum _VteCharacterReplacement { +@@ -110,6 +111,18 @@ typedef enum _VteCharacterReplacement { VTE_CHARACTER_REPLACEMENT_LINE_DRAWING } VteCharacterReplacement; @@ -1257,7 +1260,7 @@ index 25253c0af95b..570c70b0c9e7 100644 typedef struct _VtePaletteColor { struct { vte::color::rgb color; -@@ -622,6 +635,8 @@ public: +@@ -664,6 +677,8 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -1266,7 +1269,7 @@ index 25253c0af95b..570c70b0c9e7 100644 /* desktop notification */ std::string m_notification_summary; std::string m_notification_body; -@@ -642,6 +657,7 @@ public: +@@ -684,6 +699,7 @@ public: NOTIFICATION = 1u << 3, SHELL_PREEXEC = 1u << 4, SHELL_PRECMD = 1u << 5, @@ -1275,7 +1278,7 @@ index 25253c0af95b..570c70b0c9e7 100644 unsigned m_pending_changes{0}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 10b494bddb47..2a2ba4b47441 100644 +index 35eff3dd..d0f206be 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc @@ -19,10 +19,14 @@ @@ -1293,7 +1296,7 @@ index 10b494bddb47..2a2ba4b47441 100644 #ifdef HAVE_SYS_SYSLIMITS_H #include #endif -@@ -1385,6 +1389,88 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1384,6 +1388,88 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, if (token == endtoken) return; @@ -1383,10 +1386,10 @@ index 10b494bddb47..2a2ba4b47441 100644 ++token; -- -2.31.1 +2.32.0 -From 4a949461c975c2d062703e161f337d84f13a60d7 Mon Sep 17 00:00:00 2001 +From 7a296e18eb249bf872f3a50f0ab47a4d91324a44 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 @@ -1402,10 +1405,10 @@ This reverts commit 73713ec0644e232fb740170e399282be778d97f9. 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index abd6b449ae48..99ad5973c363 100644 +index d32e8eb7..aa246e5e 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -6595,10 +6595,7 @@ Terminal::maybe_end_selection() +@@ -6555,10 +6555,7 @@ Terminal::maybe_end_selection() /* * Terminal::select_all: * @@ -1417,7 +1420,7 @@ index abd6b449ae48..99ad5973c363 100644 */ void Terminal::select_all() -@@ -6607,8 +6604,8 @@ Terminal::select_all() +@@ -6567,8 +6564,8 @@ Terminal::select_all() m_selecting_had_delta = TRUE; @@ -1429,5 +1432,5 @@ index abd6b449ae48..99ad5973c363 100644 _vte_debug_print(VTE_DEBUG_SELECTION, "Selecting *all* text.\n"); -- -2.31.1 +2.32.0 diff --git a/vte291.spec b/vte291.spec index 798446c..465af0a 100644 --- a/vte291.spec +++ b/vte291.spec @@ -10,37 +10,39 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.64.2 -Release: 3%{?dist} +Version: 0.66.0 +Release: 1%{?dist} Summary: Terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources License: LGPLv3+ and MIT URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://download.gnome.org/sources/vte/0.64/vte-%{version}.tar.xz +Source0: https://gitlab.gnome.org/GNOME/vte/-/archive/%{version}/vte-%{version}.tar.bz2 +Patch0: vte-0.66.0-prompt-command.patch # 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 -BuildRequires: gcc-c++ -BuildRequires: gettext BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version} BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version} BuildRequires: pkgconfig(gnutls) >= %{gnutls_version} BuildRequires: pkgconfig(gobject-2.0) >= %{glib2_version} -BuildRequires: gobject-introspection-devel -BuildRequires: gperf -BuildRequires: gtk-doc -BuildRequires: meson BuildRequires: pkgconfig(gtk+-3.0) >= %{gtk3_version} BuildRequires: pkgconfig(icu-uc) >= %{icu_uc_version} BuildRequires: pkgconfig(libpcre2-8) >= %{pcre2_version} BuildRequires: pkgconfig(libsystemd) >= %{libsystemd_version} BuildRequires: pkgconfig(pango) >= %{pango_version} +BuildRequires: pkgconfig(zlib) +BuildRequires: gcc-c++ +BuildRequires: gettext +BuildRequires: gobject-introspection-devel +BuildRequires: gperf +BuildRequires: gtk-doc +BuildRequires: meson BuildRequires: systemd-rpm-macros BuildRequires: vala @@ -89,8 +91,7 @@ The vte-profile package contains a profile.d script for the VTE terminal emulator library. %prep -%setup -q -n vte-%{version} -%patch100 -p1 -b .cntnr-precmd-preexec-scroll +%autosetup -p1 -n vte-%{version} %if 0%{?flatpak} # Install user units where systemd macros expect them sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build @@ -108,6 +109,7 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %files -f vte-%{apiver}.lang %license COPYING.LGPL3 %license COPYING.XTERM +%doc README.md %{_libdir}/libvte-%{apiver}.so.0* %{_libdir}/girepository-1.0/ %{_userunitdir}/vte-spawn-.scope.d @@ -130,6 +132,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Tue Sep 28 2021 David King - 0.66.0-1 +- Update to 0.66.0 + * Fri Jul 23 2021 Fedora Release Engineering - 0.64.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild From a2cb2d3c99d080b0a89103d383d6a898c9d647ff Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Fri, 1 Oct 2021 14:14:27 +0200 Subject: [PATCH 080/164] Require systemd-libs rather than systemd libsystemd lives in systemd-libs subpackage these days. --- vte291.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/vte291.spec b/vte291.spec index 465af0a..e66dd35 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ Name: vte291 Version: 0.66.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -53,7 +53,7 @@ Requires: gtk3%{?_isa} >= %{gtk3_version} Requires: libicu%{?_isa} >= %{icu_uc_version} Requires: pango >= %{pango_version} Requires: pcre2%{?_isa} >= %{pcre2_version} -Requires: systemd >= %{libsystemd_version} +Requires: systemd-libs%{?_isa} >= %{libsystemd_version} Requires: vte-profile Conflicts: gnome-terminal < 3.20.1-2 @@ -132,6 +132,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Fri Oct 01 2021 Kalev Lember - 0.66.0-2 +- Require systemd-libs rather than systemd + * Tue Sep 28 2021 David King - 0.66.0-1 - Update to 0.66.0 From 77371af24cd2f8e911ec522cf38764f58f8925ec Mon Sep 17 00:00:00 2001 From: David King Date: Mon, 1 Nov 2021 15:16:03 +0000 Subject: [PATCH 081/164] Update to 0.66.1 --- .gitignore | 1 + sources | 2 +- vte-0.66.0-prompt-command.patch | 29 ---------- vte291-cntnr-precmd-preexec-scroll.patch | 72 ++++++++++++------------ vte291.spec | 10 ++-- 5 files changed, 44 insertions(+), 70 deletions(-) delete mode 100644 vte-0.66.0-prompt-command.patch diff --git a/.gitignore b/.gitignore index 3c76eb9..8dc80c0 100644 --- a/.gitignore +++ b/.gitignore @@ -78,3 +78,4 @@ /vte-0.64.2.tar.xz /vte-0.65.91.tar.bz2 /vte-0.66.0.tar.bz2 +/vte-0.66.1.tar.bz2 diff --git a/sources b/sources index ff827da..cc8196c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.66.0.tar.bz2) = 8868b27cb91d57ba00c3c5261a42054abb352663cb183053917c543c90a8940bfc289ac751858218673b4eecfb6e9706e397a065045646ffeda69e0f3e4f839a +SHA512 (vte-0.66.1.tar.bz2) = 2f3d3998104c4bcac449620a0babb3689239bf2cc757bf02b66d51a07f333891215198833686eebd0889ff8bdd237fabf3d4cac70034925fffc0e66790a4ec08 diff --git a/vte-0.66.0-prompt-command.patch b/vte-0.66.0-prompt-command.patch deleted file mode 100644 index b36e110..0000000 --- a/vte-0.66.0-prompt-command.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 1fe2f3e9e11d1b8b0e45698a268b77e8f52e25db Mon Sep 17 00:00:00 2001 -From: Christian Persch -Date: Sat, 25 Sep 2021 10:50:29 +0200 -Subject: [PATCH] vte.sh: Fix the check for PROMPT_COMMAND when it is unset - -declare "helpfully" outputs on stdout for existing variables, but on stderr -for nonexistent ones. - -Fixes: https://gitlab.gnome.org/GNOME/vte/-/issues/37 ---- - src/vte.sh.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/vte.sh.in b/src/vte.sh.in -index 1aa40ba4..242d6c42 100644 ---- a/src/vte.sh.in -+++ b/src/vte.sh.in -@@ -48,7 +48,7 @@ if [[ -n "${BASH_VERSION:-}" ]]; then - # On older bash, we can only overwrite the whole PROMPT_COMMAND, so must - # use the __vte_prompt_command function which also sets the title. - -- if [[ "$(declare -p PROMPT_COMMAND)" =~ "declare -a" ]]; then -+ if [[ "$(declare -p PROMPT_COMMAND 2>&1)" =~ "declare -a" ]]; then - PROMPT_COMMAND+=(__vte_osc7) - else - PROMPT_COMMAND="__vte_prompt_command" --- -2.32.0 - diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index 3148bda..888acae 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,4 +1,4 @@ -From faa4340a6dc1df505d331eda732c094645bd3863 Mon Sep 17 00:00:00 2001 +From baa3752d4479336135d199b83ac3016fd1f71918 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 01/11] Add sequences and signals for desktop notification @@ -212,10 +212,10 @@ index 0a45c9b4..1a6bdc11 100644 default: break; -- -2.32.0 +2.33.1 -From 08aaeb7060411e91f142f928950d01af121e823a Mon Sep 17 00:00:00 2001 +From 8cb45a1e47b4406343f5748bbedad3f694c36b60 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 Subject: [PATCH 02/11] vte.sh: Emit OSC 777 from PROMPT_COMMAND @@ -248,10 +248,10 @@ index 242d6c42..50242223 100644 } -- -2.32.0 +2.33.1 -From 1f3aa3194edb4d98ff83836e2f9151960314c040 Mon Sep 17 00:00:00 2001 +From bb722e49ee14906def24bac9bd0d4e594d71a3ce Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 Subject: [PATCH 03/11] Test the notification-received signal @@ -287,11 +287,11 @@ index 8ab27e5a..025f971b 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 86135abe..e5f67cd9 100644 +index 3beff861..00a3e3b2 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -2208,6 +2208,14 @@ window_window_title_changed_cb(VteTerminal* terminal, - #endif +@@ -2205,6 +2205,14 @@ window_window_title_changed_cb(VteTerminal* terminal, + gtk_window_set_title(GTK_WINDOW(window), title && title[0] ? title : "Terminal"); } +static void @@ -305,7 +305,7 @@ index 86135abe..e5f67cd9 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2503,6 +2511,8 @@ vteapp_window_constructed(GObject *object) +@@ -2501,6 +2509,8 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); @@ -315,10 +315,10 @@ index 86135abe..e5f67cd9 100644 #if VTE_GTK == 3 if (options.no_double_buffer) { -- -2.32.0 +2.33.1 -From 67f64a50e3671e50e6cf82f7f69ed1543253a019 Mon Sep 17 00:00:00 2001 +From 005e6d651cddca7145ca895a3ddf0bd19764454f Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 Subject: [PATCH 04/11] Add a property to configure the scroll speed @@ -523,10 +523,10 @@ index b4dfb2a4..2da56ebd 100644 bool set_fallback_scrolling(bool set); auto fallback_scrolling() const noexcept { return m_fallback_scrolling; } -- -2.32.0 +2.33.1 -From 7c7ab09278605488a2710eac246842d646e0cfc7 Mon Sep 17 00:00:00 2001 +From dd4f63266f88bcb403513e14fc84e61a2a8e0656 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 Subject: [PATCH 05/11] Test the scroll-speed property @@ -567,10 +567,10 @@ index 025f971b..51b5d641 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 e5f67cd9..e812416c 100644 +index 00a3e3b2..a6f209bb 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -115,6 +115,7 @@ public: +@@ -116,6 +116,7 @@ public: int verbosity{0}; double cell_height_scale{1.0}; double cell_width_scale{1.0}; @@ -578,7 +578,7 @@ index e5f67cd9..e812416c 100644 VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM}; VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK}; VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS}; -@@ -617,6 +618,8 @@ public: +@@ -618,6 +619,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 }, @@ -587,7 +587,7 @@ index e5f67cd9..e812416c 100644 { "scroll-unit-is-pixels", 0, 0, G_OPTION_ARG_NONE, &scroll_unit_is_pixels, "Use pixels as scroll unit", nullptr }, { "scrollback-lines", 'n', 0, G_OPTION_ARG_INT, &scrollback_lines, -@@ -2547,6 +2550,7 @@ vteapp_window_constructed(GObject *object) +@@ -2545,6 +2548,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); @@ -596,10 +596,10 @@ index e5f67cd9..e812416c 100644 vte_terminal_set_scrollback_lines(window->terminal, options.scrollback_lines); vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); -- -2.32.0 +2.33.1 -From fb7db8f86848dc7ad6ea585d3211e935603d1aa9 Mon Sep 17 00:00:00 2001 +From 145bbaedfe0dbd2102ca38acff53e749666c612a Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 06/11] Support preexec notifications from an interactive shell @@ -752,10 +752,10 @@ index 1a6bdc11..84341cda 100644 bool -- -2.32.0 +2.33.1 -From 4a699bf2ff119c9267faeac81b4db9421b782837 Mon Sep 17 00:00:00 2001 +From a6b24e55d1da9ffc35defa6c4d4cb4b16fc50814 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 20 Apr 2018 18:21:53 +0200 Subject: [PATCH 07/11] Test the shell-preexec signal @@ -792,10 +792,10 @@ index 51b5d641..3975b988 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index e812416c..498db5a4 100644 +index a6f209bb..002db773 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -2219,6 +2219,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -2216,6 +2216,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -808,7 +808,7 @@ index e812416c..498db5a4 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2515,6 +2521,7 @@ vteapp_window_constructed(GObject *object) +@@ -2513,6 +2519,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); @@ -817,10 +817,10 @@ index e812416c..498db5a4 100644 /* Settings */ #if VTE_GTK == 3 -- -2.32.0 +2.33.1 -From 84f18bd4d3f1a2fcbc68041bcbcfdcf43a34d76a Mon Sep 17 00:00:00 2001 +From a21192aa95629c59fdf1ca2e214b194ceac34fa0 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:20:30 +0200 Subject: [PATCH 08/11] Support precmd notifications from an interactive shell @@ -971,10 +971,10 @@ index 84341cda..35eff3dd 100644 } } -- -2.32.0 +2.33.1 -From b8c3a454e8a3dec36f1eaab960dfebca8d7100a6 Mon Sep 17 00:00:00 2001 +From 92f19ab6d981507e6d348c45802701e7cd8b0503 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:30:48 +0200 Subject: [PATCH 09/11] Test the shell-precmd signal @@ -1011,10 +1011,10 @@ index 3975b988..ff5fb5df 100644 { print("[shell] executing command\n"); diff --git a/src/app/app.cc b/src/app/app.cc -index 498db5a4..8cf66f88 100644 +index 002db773..dde27c9a 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -2219,6 +2219,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -2216,6 +2216,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -1027,7 +1027,7 @@ index 498db5a4..8cf66f88 100644 static void shell_preexec_cb(VteTerminal *terminal) { -@@ -2521,6 +2527,7 @@ vteapp_window_constructed(GObject *object) +@@ -2519,6 +2525,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); @@ -1036,10 +1036,10 @@ index 498db5a4..8cf66f88 100644 /* Settings */ -- -2.32.0 +2.33.1 -From 4490f0a4648d6ed359447b2f817aa47b475e093f Mon Sep 17 00:00:00 2001 +From 66afaa0b1eae0d55264068aadf689cd2d23d00a3 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 10 Jun 2019 20:30:18 +0200 Subject: [PATCH 10/11] Support tracking the active container inside the @@ -1386,10 +1386,10 @@ index 35eff3dd..d0f206be 100644 ++token; -- -2.32.0 +2.33.1 -From 7a296e18eb249bf872f3a50f0ab47a4d91324a44 Mon Sep 17 00:00:00 2001 +From 70c33c909b2ded3536a0f318c503df27bbd94722 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 @@ -1432,5 +1432,5 @@ index d32e8eb7..aa246e5e 100644 _vte_debug_print(VTE_DEBUG_SELECTION, "Selecting *all* text.\n"); -- -2.32.0 +2.33.1 diff --git a/vte291.spec b/vte291.spec index e66dd35..b89fabe 100644 --- a/vte291.spec +++ b/vte291.spec @@ -10,8 +10,8 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.66.0 -Release: 2%{?dist} +Version: 0.66.1 +Release: 1%{?dist} Summary: Terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -20,11 +20,10 @@ License: LGPLv3+ and MIT URL: https://wiki.gnome.org/Apps/Terminal/VTE Source0: https://gitlab.gnome.org/GNOME/vte/-/archive/%{version}/vte-%{version}.tar.bz2 -Patch0: vte-0.66.0-prompt-command.patch # 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 +Patch0: vte291-cntnr-precmd-preexec-scroll.patch BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version} @@ -132,6 +131,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Nov 01 2021 David King - 0.66.1-1 +- Update to 0.66.1 + * Fri Oct 01 2021 Kalev Lember - 0.66.0-2 - Require systemd-libs rather than systemd From 7d3f755bfabe9c330c252a7bf38f2ea19b3b3890 Mon Sep 17 00:00:00 2001 From: David King Date: Thu, 16 Dec 2021 12:08:53 +0000 Subject: [PATCH 082/164] Update to 0.66.2 --- .gitignore | 1 + sources | 2 +- vte291.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 8dc80c0..cf9c907 100644 --- a/.gitignore +++ b/.gitignore @@ -79,3 +79,4 @@ /vte-0.65.91.tar.bz2 /vte-0.66.0.tar.bz2 /vte-0.66.1.tar.bz2 +/vte-0.66.2.tar.xz diff --git a/sources b/sources index cc8196c..0322a4a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.66.1.tar.bz2) = 2f3d3998104c4bcac449620a0babb3689239bf2cc757bf02b66d51a07f333891215198833686eebd0889ff8bdd237fabf3d4cac70034925fffc0e66790a4ec08 +SHA512 (vte-0.66.2.tar.xz) = 6e89947f22c866a79270c700f761ec393ed8337557d4c6a90f3b7ba61caf7189406ab7731142754c99f121add6b483063d1b21e7791d2db148ad37abb7b525b9 diff --git a/vte291.spec b/vte291.spec index b89fabe..17f3f81 100644 --- a/vte291.spec +++ b/vte291.spec @@ -10,7 +10,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.66.1 +Version: 0.66.2 Release: 1%{?dist} Summary: Terminal emulator library @@ -18,7 +18,7 @@ Summary: Terminal emulator library License: LGPLv3+ and MIT URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://gitlab.gnome.org/GNOME/vte/-/archive/%{version}/vte-%{version}.tar.bz2 +Source0: https://download.gnome.org/sources/vte/0.66/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 @@ -131,6 +131,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Thu Dec 16 2021 David King - 0.66.2-1 +- Update to 0.66.2 + * Mon Nov 01 2021 David King - 0.66.1-1 - Update to 0.66.1 From 0a24cd9d6d64f4d8e048801557ea76d636347383 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 22 Jan 2022 04:12:14 +0000 Subject: [PATCH 083/164] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index 17f3f81..3222d5e 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ Name: vte291 Version: 0.66.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -131,6 +131,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Sat Jan 22 2022 Fedora Release Engineering - 0.66.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Thu Dec 16 2021 David King - 0.66.2-1 - Update to 0.66.2 From 6cb444aa241cf310e97d1e7a448759f71d617ccb Mon Sep 17 00:00:00 2001 From: David King Date: Thu, 27 Jan 2022 11:23:05 +0000 Subject: [PATCH 084/164] Add Vala 0.55.1 patch from upstream (#2047106) --- vte291-0.66.2-vala-accessibility.patch | 44 ++++++++++++++++++++++++++ vte291.spec | 4 ++- 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 vte291-0.66.2-vala-accessibility.patch diff --git a/vte291-0.66.2-vala-accessibility.patch b/vte291-0.66.2-vala-accessibility.patch new file mode 100644 index 0000000..0974708 --- /dev/null +++ b/vte291-0.66.2-vala-accessibility.patch @@ -0,0 +1,44 @@ +From 069b68f393c46ebfc6734708f1446419ceed95da Mon Sep 17 00:00:00 2001 +From: Rico Tzschichholz +Date: Wed, 1 Dec 2021 08:21:36 +0100 +Subject: [PATCH] vala: Fix accessibility of constant intializer expression + +--- + bindings/vala/app.vala | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala +index 8ab27e5a..faaefe47 100644 +--- a/bindings/vala/app.vala ++++ b/bindings/vala/app.vala +@@ -822,11 +822,11 @@ class App : Gtk.Application + { + public static bool audible = false; + public static string? command = null; +- private static string? cjk_ambiguous_width_string = null; +- private static string? cursor_blink_mode_string = null; +- private static string? cursor_background_color_string = null; +- private static string? cursor_foreground_color_string = null; +- private static string? cursor_shape_string = null; ++ public static string? cjk_ambiguous_width_string = null; ++ public static string? cursor_blink_mode_string = null; ++ public static string? cursor_background_color_string = null; ++ public static string? cursor_foreground_color_string = null; ++ public static string? cursor_shape_string = null; + public static string[]? dingus = null; + public static bool debug = false; + public static string? encoding = null; +@@ -834,8 +834,8 @@ class App : Gtk.Application + public static int extra_margin = 0; + public static string? font_string = null; + public static string? geometry = null; +- private static string? hl_bg_color_string = null; +- private static string? hl_fg_color_string = null; ++ public static string? hl_bg_color_string = null; ++ public static string? hl_fg_color_string = null; + public static string? icon_title = null; + public static bool keep = false; + public static bool no_argb_visual = false; +-- +GitLab + diff --git a/vte291.spec b/vte291.spec index 3222d5e..b00fd92 100644 --- a/vte291.spec +++ b/vte291.spec @@ -24,6 +24,8 @@ Source0: https://download.gnome.org/sources/vte/0.66/vte-%{version}.tar.x # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 # https://pagure.io/fedora-workstation/issue/216 Patch0: vte291-cntnr-precmd-preexec-scroll.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=2047106 +Patch1: vte291-0.66.2-vala-accessibility.patch BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version} @@ -131,7 +133,7 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog -* Sat Jan 22 2022 Fedora Release Engineering - 0.66.2-2 +* Thu Jan 27 2022 David King - 0.66.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Thu Dec 16 2021 David King - 0.66.2-1 From ead1cef00f8aa690a1c107af533179a42da91584 Mon Sep 17 00:00:00 2001 From: David King Date: Thu, 17 Feb 2022 16:18:54 +0000 Subject: [PATCH 085/164] Update to 0.67.90 --- .gitignore | 1 + sources | 2 +- vte291-0.66.2-vala-accessibility.patch | 44 --- vte291-cntnr-precmd-preexec-scroll.patch | 343 +++++++++++++++-------- vte291.spec | 11 +- 5 files changed, 233 insertions(+), 168 deletions(-) delete mode 100644 vte291-0.66.2-vala-accessibility.patch diff --git a/.gitignore b/.gitignore index cf9c907..1eb86d2 100644 --- a/.gitignore +++ b/.gitignore @@ -80,3 +80,4 @@ /vte-0.66.0.tar.bz2 /vte-0.66.1.tar.bz2 /vte-0.66.2.tar.xz +/vte-0.67.90.tar.xz diff --git a/sources b/sources index 0322a4a..620f98b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.66.2.tar.xz) = 6e89947f22c866a79270c700f761ec393ed8337557d4c6a90f3b7ba61caf7189406ab7731142754c99f121add6b483063d1b21e7791d2db148ad37abb7b525b9 +SHA512 (vte-0.67.90.tar.xz) = 867a3dfe9300a7ff691185e72195e3550c29d52022dc87428036d69f36710747ba2d76f26f989a9ed9b5c18ddb30464f4d42041e06264154143684ffb6949c10 diff --git a/vte291-0.66.2-vala-accessibility.patch b/vte291-0.66.2-vala-accessibility.patch deleted file mode 100644 index 0974708..0000000 --- a/vte291-0.66.2-vala-accessibility.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 069b68f393c46ebfc6734708f1446419ceed95da Mon Sep 17 00:00:00 2001 -From: Rico Tzschichholz -Date: Wed, 1 Dec 2021 08:21:36 +0100 -Subject: [PATCH] vala: Fix accessibility of constant intializer expression - ---- - bindings/vala/app.vala | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala -index 8ab27e5a..faaefe47 100644 ---- a/bindings/vala/app.vala -+++ b/bindings/vala/app.vala -@@ -822,11 +822,11 @@ class App : Gtk.Application - { - public static bool audible = false; - public static string? command = null; -- private static string? cjk_ambiguous_width_string = null; -- private static string? cursor_blink_mode_string = null; -- private static string? cursor_background_color_string = null; -- private static string? cursor_foreground_color_string = null; -- private static string? cursor_shape_string = null; -+ public static string? cjk_ambiguous_width_string = null; -+ public static string? cursor_blink_mode_string = null; -+ public static string? cursor_background_color_string = null; -+ public static string? cursor_foreground_color_string = null; -+ public static string? cursor_shape_string = null; - public static string[]? dingus = null; - public static bool debug = false; - public static string? encoding = null; -@@ -834,8 +834,8 @@ class App : Gtk.Application - public static int extra_margin = 0; - public static string? font_string = null; - public static string? geometry = null; -- private static string? hl_bg_color_string = null; -- private static string? hl_fg_color_string = null; -+ public static string? hl_bg_color_string = null; -+ public static string? hl_fg_color_string = null; - public static string? icon_title = null; - public static bool keep = false; - public static bool no_argb_visual = false; --- -GitLab - diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index 888acae..6032d7a 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,7 +1,107 @@ -From baa3752d4479336135d199b83ac3016fd1f71918 Mon Sep 17 00:00:00 2001 +From e723a6fa96bc50effbd046a2c2419cc51b3cc8c1 Mon Sep 17 00:00:00 2001 +From: Christian Persch +Date: Sat, 12 Feb 2022 21:10:08 +0100 +Subject: [PATCH 01/12] Revert "emulation: Support XTVERSION sequence" + +This reverts commit 0718a9a7f9300b2526eddb0fc74e25eef34795ba. + +Issue #235 shows commiting this was premature and there's more discussion needed. +--- + src/parser-reply.hh | 1 - + src/parser-seq.py | 2 -- + src/vteseq.cc | 32 ++------------------------------ + 3 files changed, 2 insertions(+), 33 deletions(-) + +diff --git a/src/parser-reply.hh b/src/parser-reply.hh +index c9046b1a..1ba3022a 100644 +--- a/src/parser-reply.hh ++++ b/src/parser-reply.hh +@@ -57,7 +57,6 @@ _VTE_REPLY(DECCTR, DCS, 's', NONE, CASH, _VTE_REPLY_PARAMS({2})) /* color + _VTE_REPLY(DECAUPSS, DCS, 'u', NONE, BANG, ) /* assign user preferred supplemental set */ + _VTE_REPLY(DECCIR, DCS, 'u', NONE, CASH, _VTE_REPLY_PARAMS({1})) /* cursor information report */ + _VTE_REPLY(DECRPTUI, DCS, '|', NONE, BANG, _VTE_REPLY_STRING("7E565445") /* "~VTE" */) /* report terminal unit ID */ +-_VTE_REPLY(XTERM_DSR, DCS, '|', GT, NONE, ) /* xterm terminal version report */ + _VTE_REPLY(DECRPFK, DCS, '}', NONE, DQUOTE,) /* report function key */ + _VTE_REPLY(DECCKSR, DCS, '~', NONE, BANG, ) /* memory checksum report */ + _VTE_REPLY(DECRPAK, DCS, '~', NONE, DQUOTE,) /* report all modifiers/alphanumeric key */ +diff --git a/src/parser-seq.py b/src/parser-seq.py +index c484c0ac..8692b147 100755 +--- a/src/parser-seq.py ++++ b/src/parser-seq.py +@@ -756,8 +756,6 @@ sequences = [ + comment='select terminal id'), + seq_CSI('DECCRTST', 'q', intermediates=(Intermediate.MINUS,), flags=Flags.NOP, + comment='CRT saver time'), +- seq_CSI('XTERM_VERSION', 'q', pintro=(ParameterIntro.GT,), +- comment='request xterm version report'), + seq_CSI('DECSTBM', 'r', + comment='set top and bottom margins'), + seq_CSI('DECSKCV', 'r', intermediates=(Intermediate.SPACE,), flags=Flags.NOP, +diff --git a/src/vteseq.cc b/src/vteseq.cc +index 007ddb69..874d2405 100644 +--- a/src/vteseq.cc ++++ b/src/vteseq.cc +@@ -69,11 +69,6 @@ enum { + VTE_SGR_COLOR_SPEC_LEGACY = 5 + }; + +-inline constexpr int firmware_version() noexcept +-{ +- return (VTE_MAJOR_VERSION * 100 + VTE_MINOR_VERSION) * 100 + VTE_MICRO_VERSION; +-} +- + void + vte::parser::Sequence::print() const noexcept + { +@@ -2410,7 +2405,8 @@ Terminal::DA2(vte::parser::Sequence const& seq) + if (seq.collect1(0, 0) != 0) + return; + +- reply(seq, VTE_REPLY_DECDA2R, {65, firmware_version(), 1}); ++ int const version = (VTE_MAJOR_VERSION * 100 + VTE_MINOR_VERSION) * 100 + VTE_MICRO_VERSION; ++ reply(seq, VTE_REPLY_DECDA2R, {65, version, 1}); + } + + void +@@ -8848,30 +8844,6 @@ Terminal::XTERM_STCAP(vte::parser::Sequence const& seq) + */ + } + +-void +-Terminal::XTERM_VERSION(vte::parser::Sequence const& seq) +-{ +- /* +- * XTERM_VERSION - xterm request version report +- * +- * Returns the xterm name and version as XTERM_DSR. +- * +- * Arguments: +- * args[0]: select function +- * 0: report xterm name and version +- * +- * Defaults: +- * args[0]: no defaults +- * +- * References: XTERM +- */ +- +- if (seq.collect1(0) != 0) +- return; +- +- reply(seq, VTE_REPLY_XTERM_DSR, {}, "VTE(%d)", firmware_version()); +-} +- + void + Terminal::XTERM_WM(vte::parser::Sequence const& seq) + { +-- +2.35.1 + + +From 90c5ba23a1fca5553c453f07ec010700eb2c70f2 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 -Subject: [PATCH 01/11] Add sequences and signals for desktop notification +Subject: [PATCH 02/12] Add sequences and signals for desktop notification Add sequences OSC 777 ; notify ; SUMMARY ; BODY BEL @@ -36,10 +136,10 @@ index 241128c3..4412cf3d 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index ec330490..f39578ac 100644 +index 8b75883f..05cc5589 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10082,6 +10082,14 @@ Terminal::emit_pending_signals() +@@ -10032,6 +10032,14 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); @@ -55,23 +155,25 @@ index ec330490..f39578ac 100644 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 05f6674f..0b9b8dc4 100644 +index 41f153d0..1e9a737a 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -109,8 +109,10 @@ struct _VteTerminalClass { +@@ -108,10 +108,12 @@ struct _VteTerminalClass { void (*bell)(VteTerminal* terminal); + void (*notification_received)(VteTerminal* terminal, const gchar *summary, const gchar *body); + - /* Padding for future expansion. */ -- gpointer padding[16]; -+ gpointer padding[15]; + #if _VTE_GTK == 3 + /* Compatibility padding due to fedora patches intruding on our ABI */ + /*< private >*/ +- gpointer _extra_padding[3]; ++ gpointer _extra_padding[2]; + #endif /* _VTE_GTK == 3 */ - // FIXMEgtk4 use class private data instead - VteTerminalClassPrivate *priv; + /* Add new vfuncs here, and subtract from the padding below. */ diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 000be62d..04eceea1 100644 +index 05b82294..a09a2f75 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -1242,6 +1242,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -122,10 +224,10 @@ index 6b7a1ea2..8ba10395 100644 LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 77843507..b4dfb2a4 100644 +index eb95ad68..69a32276 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -663,6 +663,10 @@ public: +@@ -660,6 +660,10 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -136,7 +238,7 @@ index 77843507..b4dfb2a4 100644 std::string m_window_title{}; std::string m_current_directory_uri{}; std::string m_current_file_uri{}; -@@ -676,6 +680,7 @@ public: +@@ -673,6 +677,7 @@ public: TITLE = 1u << 0, CWD = 1u << 1, CWF = 1u << 2, @@ -155,7 +257,7 @@ index 77843507..b4dfb2a4 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 0a45c9b4..1a6bdc11 100644 +index 874d2405..537e8e13 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc @@ -1376,6 +1376,33 @@ Terminal::delete_lines(vte::grid::row_t param) @@ -192,7 +294,7 @@ index 0a45c9b4..1a6bdc11 100644 bool Terminal::get_osc_color_index(int osc, int value, -@@ -6535,6 +6562,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6541,6 +6568,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) reset_color(VTE_HIGHLIGHT_FG, VTE_COLOR_SOURCE_ESCAPE); break; @@ -203,7 +305,7 @@ index 0a45c9b4..1a6bdc11 100644 case VTE_OSC_XTERM_SET_ICON_TITLE: case VTE_OSC_XTERM_SET_XPROPERTY: case VTE_OSC_XTERM_SET_COLOR_MOUSE_CURSOR_FG: -@@ -6576,7 +6607,6 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6582,7 +6613,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: @@ -212,13 +314,13 @@ index 0a45c9b4..1a6bdc11 100644 default: break; -- -2.33.1 +2.35.1 -From 8cb45a1e47b4406343f5748bbedad3f694c36b60 Mon Sep 17 00:00:00 2001 +From 4f2b191321033a1ac5ee49f10bf7290b07dc0af1 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 -Subject: [PATCH 02/11] vte.sh: Emit OSC 777 from PROMPT_COMMAND +Subject: [PATCH 03/12] 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 @@ -248,13 +350,13 @@ index 242d6c42..50242223 100644 } -- -2.33.1 +2.35.1 -From bb722e49ee14906def24bac9bd0d4e594d71a3ce Mon Sep 17 00:00:00 2001 +From 1481641c0596217b6ca7f73243a5c5048202e10b Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 -Subject: [PATCH 03/11] Test the notification-received signal +Subject: [PATCH 04/12] Test the notification-received signal --- bindings/vala/app.vala | 7 +++++++ @@ -262,7 +364,7 @@ Subject: [PATCH 03/11] Test the notification-received signal 2 files changed, 17 insertions(+) diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala -index 8ab27e5a..025f971b 100644 +index 4bcb5804..06546440 100644 --- a/bindings/vala/app.vala +++ b/bindings/vala/app.vala @@ -309,6 +309,8 @@ class Window : Gtk.ApplicationWindow @@ -287,10 +389,10 @@ index 8ab27e5a..025f971b 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 3beff861..00a3e3b2 100644 +index 3b7835aa..fc8220a5 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -2205,6 +2205,14 @@ window_window_title_changed_cb(VteTerminal* terminal, +@@ -2209,6 +2209,14 @@ window_window_title_changed_cb(VteTerminal* terminal, gtk_window_set_title(GTK_WINDOW(window), title && title[0] ? title : "Terminal"); } @@ -305,7 +407,7 @@ index 3beff861..00a3e3b2 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2501,6 +2509,8 @@ vteapp_window_constructed(GObject *object) +@@ -2505,6 +2513,8 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); @@ -315,13 +417,13 @@ index 3beff861..00a3e3b2 100644 #if VTE_GTK == 3 if (options.no_double_buffer) { -- -2.33.1 +2.35.1 -From 005e6d651cddca7145ca895a3ddf0bd19764454f Mon Sep 17 00:00:00 2001 +From e86c937f6d8f03930d97b942a13df4acd9bef92a Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 -Subject: [PATCH 04/11] Add a property to configure the scroll speed +Subject: [PATCH 05/12] 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. @@ -337,10 +439,10 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1103380 6 files changed, 77 insertions(+), 1 deletion(-) diff --git a/doc/reference/vte-sections.txt.in b/doc/reference/vte-sections.txt.in -index 1180f972..f097d4b9 100644 +index 283dd056..64907389 100644 --- a/doc/reference/vte-sections.txt.in +++ b/doc/reference/vte-sections.txt.in -@@ -56,6 +56,7 @@ vte_terminal_get_cursor_blink_mode +@@ -58,6 +58,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 @@ -349,10 +451,10 @@ index 1180f972..f097d4b9 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index f39578ac..f027ce3b 100644 +index 05cc5589..a4e6069d 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9289,6 +9289,7 @@ vte_cairo_get_clip_region(cairo_t *cr) +@@ -9239,6 +9239,7 @@ vte_cairo_get_clip_region(cairo_t *cr) bool Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) { @@ -360,7 +462,7 @@ index f39578ac..f027ce3b 100644 gdouble v; gint cnt, i; int button; -@@ -9323,7 +9324,13 @@ Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) +@@ -9273,7 +9274,13 @@ Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) return true; } @@ -375,7 +477,7 @@ index f39578ac..f027ce3b 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -9633,6 +9640,16 @@ Terminal::decscusr_cursor_shape() const noexcept +@@ -9583,6 +9590,16 @@ Terminal::decscusr_cursor_shape() const noexcept } } @@ -393,10 +495,10 @@ index f39578ac..f027ce3b 100644 Terminal::set_scrollback_lines(long lines) { diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 0b9b8dc4..20c930f7 100644 +index 1e9a737a..b63967a3 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -324,6 +324,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, +@@ -330,6 +330,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); @@ -408,7 +510,7 @@ index 0b9b8dc4..20c930f7 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 04eceea1..7e405a39 100644 +index a09a2f75..ab1de923 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -993,6 +993,9 @@ try @@ -453,7 +555,7 @@ index 04eceea1..7e405a39 100644 /** * VteTerminal:scrollback-lines: * -@@ -5666,6 +5687,36 @@ catch (...) +@@ -5726,6 +5747,36 @@ catch (...) return -1; } @@ -503,10 +605,10 @@ index 8ba10395..f6cd891b 100644 PROP_SCROLL_ON_KEYSTROKE, PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index b4dfb2a4..2da56ebd 100644 +index 69a32276..d3e25179 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -429,6 +429,7 @@ public: +@@ -426,6 +426,7 @@ public: bool m_fallback_scrolling{true}; bool m_scroll_on_output{false}; bool m_scroll_on_keystroke{true}; @@ -523,13 +625,13 @@ index b4dfb2a4..2da56ebd 100644 bool set_fallback_scrolling(bool set); auto fallback_scrolling() const noexcept { return m_fallback_scrolling; } -- -2.33.1 +2.35.1 -From dd4f63266f88bcb403513e14fc84e61a2a8e0656 Mon Sep 17 00:00:00 2001 +From a1da65e5390c1dfdd201a29c912181712de2e9d6 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 -Subject: [PATCH 05/11] Test the scroll-speed property +Subject: [PATCH 06/12] Test the scroll-speed property https://bugzilla.redhat.com/show_bug.cgi?id=1103380 --- @@ -538,7 +640,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 025f971b..51b5d641 100644 +index 06546440..552a702d 100644 --- a/bindings/vala/app.vala +++ b/bindings/vala/app.vala @@ -335,6 +335,7 @@ class Window : Gtk.ApplicationWindow @@ -567,10 +669,10 @@ index 025f971b..51b5d641 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 00a3e3b2..a6f209bb 100644 +index fc8220a5..c6f5cc0b 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -116,6 +116,7 @@ public: +@@ -118,6 +118,7 @@ public: int verbosity{0}; double cell_height_scale{1.0}; double cell_width_scale{1.0}; @@ -578,7 +680,7 @@ index 00a3e3b2..a6f209bb 100644 VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM}; VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK}; VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS}; -@@ -618,6 +619,8 @@ public: +@@ -620,6 +621,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 }, @@ -587,7 +689,7 @@ index 00a3e3b2..a6f209bb 100644 { "scroll-unit-is-pixels", 0, 0, G_OPTION_ARG_NONE, &scroll_unit_is_pixels, "Use pixels as scroll unit", nullptr }, { "scrollback-lines", 'n', 0, G_OPTION_ARG_INT, &scrollback_lines, -@@ -2545,6 +2548,7 @@ vteapp_window_constructed(GObject *object) +@@ -2549,6 +2552,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); @@ -596,13 +698,13 @@ index 00a3e3b2..a6f209bb 100644 vte_terminal_set_scrollback_lines(window->terminal, options.scrollback_lines); vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); -- -2.33.1 +2.35.1 -From 145bbaedfe0dbd2102ca38acff53e749666c612a Mon Sep 17 00:00:00 2001 +From f7fafa786a3b6e5568eefab7ad318594813aa4d5 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 -Subject: [PATCH 06/11] Support preexec notifications from an interactive shell +Subject: [PATCH 07/12] Support preexec notifications from an interactive shell Add sequences OSC 777 ; preexec BEL @@ -628,10 +730,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index f027ce3b..36cf379f 100644 +index a4e6069d..6d8ab2bb 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10107,6 +10107,12 @@ Terminal::emit_pending_signals() +@@ -10057,6 +10057,12 @@ Terminal::emit_pending_signals() m_notification_body.c_str()); } @@ -661,23 +763,25 @@ index 50242223..01b44e23 100644 elif [[ -n "${ZSH_VERSION:-}" ]]; then diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 20c930f7..2b277e05 100644 +index b63967a3..062b6694 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -110,9 +110,10 @@ struct _VteTerminalClass { +@@ -109,11 +109,12 @@ struct _VteTerminalClass { void (*bell)(VteTerminal* terminal); void (*notification_received)(VteTerminal* terminal, const gchar *summary, const gchar *body); + void (*shell_preexec)(VteTerminal* terminal); - /* Padding for future expansion. */ -- gpointer padding[15]; -+ gpointer padding[14]; + #if _VTE_GTK == 3 + /* Compatibility padding due to fedora patches intruding on our ABI */ + /*< private >*/ +- gpointer _extra_padding[2]; ++ gpointer _extra_padding[1]; + #endif /* _VTE_GTK == 3 */ - // FIXMEgtk4 use class private data instead - VteTerminalClassPrivate *priv; + /* Add new vfuncs here, and subtract from the padding below. */ diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 7e405a39..22b6412b 100644 +index ab1de923..a4d51bfb 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -1249,6 +1249,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -725,10 +829,10 @@ index f6cd891b..bf85bdf4 100644 SIGNAL_WINDOW_TITLE_CHANGED, LAST_SIGNAL diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 2da56ebd..041a9a81 100644 +index d3e25179..b4f1b4c9 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -682,6 +682,7 @@ public: +@@ -679,6 +679,7 @@ public: CWD = 1u << 1, CWF = 1u << 2, NOTIFICATION = 1u << 3, @@ -737,7 +841,7 @@ index 2da56ebd..041a9a81 100644 unsigned m_pending_changes{0}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 1a6bdc11..84341cda 100644 +index 537e8e13..dbc6276f 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc @@ -1401,6 +1401,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, @@ -752,13 +856,13 @@ index 1a6bdc11..84341cda 100644 bool -- -2.33.1 +2.35.1 -From a6b24e55d1da9ffc35defa6c4d4cb4b16fc50814 Mon Sep 17 00:00:00 2001 +From 9921679046106711276fe5304bc2d04b71553dec Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 20 Apr 2018 18:21:53 +0200 -Subject: [PATCH 07/11] Test the shell-preexec signal +Subject: [PATCH 08/12] Test the shell-preexec signal https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 @@ -768,7 +872,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 51b5d641..3975b988 100644 +index 552a702d..cc30f9ad 100644 --- a/bindings/vala/app.vala +++ b/bindings/vala/app.vala @@ -310,6 +310,7 @@ class Window : Gtk.ApplicationWindow @@ -792,10 +896,10 @@ index 51b5d641..3975b988 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index a6f209bb..002db773 100644 +index c6f5cc0b..33a9481e 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -2216,6 +2216,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -2220,6 +2220,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -808,7 +912,7 @@ index a6f209bb..002db773 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2513,6 +2519,7 @@ vteapp_window_constructed(GObject *object) +@@ -2517,6 +2523,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); @@ -817,13 +921,13 @@ index a6f209bb..002db773 100644 /* Settings */ #if VTE_GTK == 3 -- -2.33.1 +2.35.1 -From a21192aa95629c59fdf1ca2e214b194ceac34fa0 Mon Sep 17 00:00:00 2001 +From 9a9c9b064447d50b0ebcd4c87284f68dc5414158 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:20:30 +0200 -Subject: [PATCH 08/11] Support precmd notifications from an interactive shell +Subject: [PATCH 09/12] Support precmd notifications from an interactive shell Add sequences OSC 777 ; precmd BEL @@ -841,18 +945,18 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 --- src/vte.cc | 6 ++++++ src/vte.sh.in | 2 +- - src/vte/vteterminal.h | 3 ++- + src/vte/vteterminal.h | 7 +------ src/vtegtk.cc | 18 ++++++++++++++++++ src/vtegtk.hh | 1 + src/vteinternal.hh | 1 + src/vteseq.cc | 4 +++- - 7 files changed, 32 insertions(+), 3 deletions(-) + 7 files changed, 31 insertions(+), 8 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 36cf379f..172174e0 100644 +index 6d8ab2bb..e8a344ee 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10113,6 +10113,12 @@ Terminal::emit_pending_signals() +@@ -10063,6 +10063,12 @@ Terminal::emit_pending_signals() g_signal_emit(freezer.get(), signals[SIGNAL_SHELL_PREEXEC], 0); } @@ -879,24 +983,27 @@ index 01b44e23..877fe93d 100644 } diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 2b277e05..1e926166 100644 +index 062b6694..ed08880d 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -110,10 +110,11 @@ struct _VteTerminalClass { +@@ -109,14 +109,9 @@ struct _VteTerminalClass { void (*bell)(VteTerminal* terminal); void (*notification_received)(VteTerminal* terminal, const gchar *summary, const gchar *body); + void (*shell_precmd)(VteTerminal* terminal); void (*shell_preexec)(VteTerminal* terminal); - /* Padding for future expansion. */ -- gpointer padding[14]; -+ gpointer padding[13]; +-#if _VTE_GTK == 3 +- /* Compatibility padding due to fedora patches intruding on our ABI */ +- /*< private >*/ +- gpointer _extra_padding[1]; +-#endif /* _VTE_GTK == 3 */ +- + /* Add new vfuncs here, and subtract from the padding below. */ - // FIXMEgtk4 use class private data instead - VteTerminalClassPrivate *priv; + /* Padding for future expansion. */ diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 22b6412b..4cc1b939 100644 +index a4d51bfb..7020c2af 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -1249,6 +1249,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -944,10 +1051,10 @@ index bf85bdf4..cee56b65 100644 SIGNAL_NOTIFICATION_RECEIVED, SIGNAL_WINDOW_TITLE_CHANGED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 041a9a81..5c1a5e50 100644 +index b4f1b4c9..eabc0062 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -683,6 +683,7 @@ public: +@@ -680,6 +680,7 @@ public: CWF = 1u << 2, NOTIFICATION = 1u << 3, SHELL_PREEXEC = 1u << 4, @@ -956,7 +1063,7 @@ index 041a9a81..5c1a5e50 100644 unsigned m_pending_changes{0}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 84341cda..35eff3dd 100644 +index dbc6276f..4de2a6f1 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc @@ -1402,7 +1402,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, @@ -971,13 +1078,13 @@ index 84341cda..35eff3dd 100644 } } -- -2.33.1 +2.35.1 -From 92f19ab6d981507e6d348c45802701e7cd8b0503 Mon Sep 17 00:00:00 2001 +From 5a57ad11947fbffc2c70a46e4e99941fc9e7b22a Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:30:48 +0200 -Subject: [PATCH 09/11] Test the shell-precmd signal +Subject: [PATCH 10/12] Test the shell-precmd signal https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 @@ -987,7 +1094,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 3975b988..ff5fb5df 100644 +index cc30f9ad..ecc4b769 100644 --- a/bindings/vala/app.vala +++ b/bindings/vala/app.vala @@ -310,6 +310,7 @@ class Window : Gtk.ApplicationWindow @@ -1011,10 +1118,10 @@ index 3975b988..ff5fb5df 100644 { print("[shell] executing command\n"); diff --git a/src/app/app.cc b/src/app/app.cc -index 002db773..dde27c9a 100644 +index 33a9481e..d30f8bd7 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -2216,6 +2216,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -2220,6 +2220,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -1027,7 +1134,7 @@ index 002db773..dde27c9a 100644 static void shell_preexec_cb(VteTerminal *terminal) { -@@ -2519,6 +2525,7 @@ vteapp_window_constructed(GObject *object) +@@ -2523,6 +2529,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); @@ -1036,13 +1143,13 @@ index 002db773..dde27c9a 100644 /* Settings */ -- -2.33.1 +2.35.1 -From 66afaa0b1eae0d55264068aadf689cd2d23d00a3 Mon Sep 17 00:00:00 2001 +From 5626cd2154d3c8ce63f679d876468ca776cc2279 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 10 Jun 2019 20:30:18 +0200 -Subject: [PATCH 10/11] Support tracking the active container inside the +Subject: [PATCH 11/12] Support tracking the active container inside the terminal Add sequences @@ -1081,10 +1188,10 @@ agreed upon across multiple different terminal emulators [1]. 6 files changed, 193 insertions(+) diff --git a/src/vte.cc b/src/vte.cc -index 172174e0..d32e8eb7 100644 +index e8a344ee..a3ca5108 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10132,6 +10132,14 @@ Terminal::emit_pending_signals() +@@ -10082,6 +10082,14 @@ Terminal::emit_pending_signals() m_window_title_pending.clear(); } @@ -1100,7 +1207,7 @@ index 172174e0..d32e8eb7 100644 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 1e926166..f81133e4 100644 +index ed08880d..d25eb93a 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -511,6 +511,10 @@ glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VT @@ -1115,7 +1222,7 @@ index 1e926166..f81133e4 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 4cc1b939..4544d9a0 100644 +index 7020c2af..2ee5b029 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -942,6 +942,12 @@ try @@ -1159,7 +1266,7 @@ index 4cc1b939..4544d9a0 100644 /** * VteTerminal:current-directory-uri: * -@@ -4869,6 +4896,56 @@ catch (...) +@@ -4929,6 +4956,56 @@ catch (...) return -1; } @@ -1230,7 +1337,7 @@ index cee56b65..e41f2f3a 100644 PROP_CURRENT_FILE_URI, PROP_DELETE_BINDING, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 5c1a5e50..f3821475 100644 +index eabc0062..dcb6a6fc 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -59,6 +59,7 @@ @@ -1260,7 +1367,7 @@ index 5c1a5e50..f3821475 100644 typedef struct _VtePaletteColor { struct { vte::color::rgb color; -@@ -664,6 +677,8 @@ public: +@@ -661,6 +674,8 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -1269,7 +1376,7 @@ index 5c1a5e50..f3821475 100644 /* desktop notification */ std::string m_notification_summary; std::string m_notification_body; -@@ -684,6 +699,7 @@ public: +@@ -681,6 +696,7 @@ public: NOTIFICATION = 1u << 3, SHELL_PREEXEC = 1u << 4, SHELL_PRECMD = 1u << 5, @@ -1278,7 +1385,7 @@ index 5c1a5e50..f3821475 100644 unsigned m_pending_changes{0}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 35eff3dd..d0f206be 100644 +index 4de2a6f1..18c0d89c 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc @@ -19,10 +19,14 @@ @@ -1386,13 +1493,13 @@ index 35eff3dd..d0f206be 100644 ++token; -- -2.33.1 +2.35.1 -From 70c33c909b2ded3536a0f318c503df27bbd94722 Mon Sep 17 00:00:00 2001 +From 00055475b4238ed9089faf745ba56e652f97bbc3 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 +Subject: [PATCH 12/12] Revert "widget: Limit select-all to the writable region not including the scrollback" ... as decided by Fedora Workstation WG. @@ -1405,10 +1512,10 @@ This reverts commit 73713ec0644e232fb740170e399282be778d97f9. 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index d32e8eb7..aa246e5e 100644 +index a3ca5108..1834b090 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -6555,10 +6555,7 @@ Terminal::maybe_end_selection() +@@ -6497,10 +6497,7 @@ Terminal::maybe_end_selection() /* * Terminal::select_all: * @@ -1420,7 +1527,7 @@ index d32e8eb7..aa246e5e 100644 */ void Terminal::select_all() -@@ -6567,8 +6564,8 @@ Terminal::select_all() +@@ -6509,8 +6506,8 @@ Terminal::select_all() m_selecting_had_delta = TRUE; @@ -1432,5 +1539,5 @@ index d32e8eb7..aa246e5e 100644 _vte_debug_print(VTE_DEBUG_SELECTION, "Selecting *all* text.\n"); -- -2.33.1 +2.35.1 diff --git a/vte291.spec b/vte291.spec index b00fd92..fe71e9f 100644 --- a/vte291.spec +++ b/vte291.spec @@ -10,22 +10,20 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.66.2 -Release: 2%{?dist} +Version: 0.67.90 +Release: 1%{?dist} Summary: Terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources License: LGPLv3+ and MIT URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://download.gnome.org/sources/vte/0.66/vte-%{version}.tar.xz +Source0: https://download.gnome.org/sources/vte/0.67/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 Patch0: vte291-cntnr-precmd-preexec-scroll.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=2047106 -Patch1: vte291-0.66.2-vala-accessibility.patch BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version} @@ -133,6 +131,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Thu Feb 17 2022 David King - 0.67.90-1 +- Update to 0.67.90 + * Thu Jan 27 2022 David King - 0.66.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild From 80f531b220afc73b1d36ff10546993d50c22895b Mon Sep 17 00:00:00 2001 From: David King Date: Sun, 27 Mar 2022 19:28:32 +0100 Subject: [PATCH 086/164] Update to 0.68.0 --- .gitignore | 1 + sources | 2 +- vte291-cntnr-precmd-preexec-scroll.patch | 144 ++++------------------- vte291.spec | 7 +- 4 files changed, 29 insertions(+), 125 deletions(-) diff --git a/.gitignore b/.gitignore index 1eb86d2..97ac8c9 100644 --- a/.gitignore +++ b/.gitignore @@ -81,3 +81,4 @@ /vte-0.66.1.tar.bz2 /vte-0.66.2.tar.xz /vte-0.67.90.tar.xz +/vte-0.68.0.tar.bz2 diff --git a/sources b/sources index 620f98b..0fb9898 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.67.90.tar.xz) = 867a3dfe9300a7ff691185e72195e3550c29d52022dc87428036d69f36710747ba2d76f26f989a9ed9b5c18ddb30464f4d42041e06264154143684ffb6949c10 +SHA512 (vte-0.68.0.tar.bz2) = 785df7261b5075f166e59de7d3535b381564715ce65efd4837a130e153528691b610fc6160c00f0f17008f5f4ee94c23350d9a477b4b1d58da6ace083e5caae1 diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index 6032d7a..bb93ced 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,107 +1,7 @@ -From e723a6fa96bc50effbd046a2c2419cc51b3cc8c1 Mon Sep 17 00:00:00 2001 -From: Christian Persch -Date: Sat, 12 Feb 2022 21:10:08 +0100 -Subject: [PATCH 01/12] Revert "emulation: Support XTVERSION sequence" - -This reverts commit 0718a9a7f9300b2526eddb0fc74e25eef34795ba. - -Issue #235 shows commiting this was premature and there's more discussion needed. ---- - src/parser-reply.hh | 1 - - src/parser-seq.py | 2 -- - src/vteseq.cc | 32 ++------------------------------ - 3 files changed, 2 insertions(+), 33 deletions(-) - -diff --git a/src/parser-reply.hh b/src/parser-reply.hh -index c9046b1a..1ba3022a 100644 ---- a/src/parser-reply.hh -+++ b/src/parser-reply.hh -@@ -57,7 +57,6 @@ _VTE_REPLY(DECCTR, DCS, 's', NONE, CASH, _VTE_REPLY_PARAMS({2})) /* color - _VTE_REPLY(DECAUPSS, DCS, 'u', NONE, BANG, ) /* assign user preferred supplemental set */ - _VTE_REPLY(DECCIR, DCS, 'u', NONE, CASH, _VTE_REPLY_PARAMS({1})) /* cursor information report */ - _VTE_REPLY(DECRPTUI, DCS, '|', NONE, BANG, _VTE_REPLY_STRING("7E565445") /* "~VTE" */) /* report terminal unit ID */ --_VTE_REPLY(XTERM_DSR, DCS, '|', GT, NONE, ) /* xterm terminal version report */ - _VTE_REPLY(DECRPFK, DCS, '}', NONE, DQUOTE,) /* report function key */ - _VTE_REPLY(DECCKSR, DCS, '~', NONE, BANG, ) /* memory checksum report */ - _VTE_REPLY(DECRPAK, DCS, '~', NONE, DQUOTE,) /* report all modifiers/alphanumeric key */ -diff --git a/src/parser-seq.py b/src/parser-seq.py -index c484c0ac..8692b147 100755 ---- a/src/parser-seq.py -+++ b/src/parser-seq.py -@@ -756,8 +756,6 @@ sequences = [ - comment='select terminal id'), - seq_CSI('DECCRTST', 'q', intermediates=(Intermediate.MINUS,), flags=Flags.NOP, - comment='CRT saver time'), -- seq_CSI('XTERM_VERSION', 'q', pintro=(ParameterIntro.GT,), -- comment='request xterm version report'), - seq_CSI('DECSTBM', 'r', - comment='set top and bottom margins'), - seq_CSI('DECSKCV', 'r', intermediates=(Intermediate.SPACE,), flags=Flags.NOP, -diff --git a/src/vteseq.cc b/src/vteseq.cc -index 007ddb69..874d2405 100644 ---- a/src/vteseq.cc -+++ b/src/vteseq.cc -@@ -69,11 +69,6 @@ enum { - VTE_SGR_COLOR_SPEC_LEGACY = 5 - }; - --inline constexpr int firmware_version() noexcept --{ -- return (VTE_MAJOR_VERSION * 100 + VTE_MINOR_VERSION) * 100 + VTE_MICRO_VERSION; --} -- - void - vte::parser::Sequence::print() const noexcept - { -@@ -2410,7 +2405,8 @@ Terminal::DA2(vte::parser::Sequence const& seq) - if (seq.collect1(0, 0) != 0) - return; - -- reply(seq, VTE_REPLY_DECDA2R, {65, firmware_version(), 1}); -+ int const version = (VTE_MAJOR_VERSION * 100 + VTE_MINOR_VERSION) * 100 + VTE_MICRO_VERSION; -+ reply(seq, VTE_REPLY_DECDA2R, {65, version, 1}); - } - - void -@@ -8848,30 +8844,6 @@ Terminal::XTERM_STCAP(vte::parser::Sequence const& seq) - */ - } - --void --Terminal::XTERM_VERSION(vte::parser::Sequence const& seq) --{ -- /* -- * XTERM_VERSION - xterm request version report -- * -- * Returns the xterm name and version as XTERM_DSR. -- * -- * Arguments: -- * args[0]: select function -- * 0: report xterm name and version -- * -- * Defaults: -- * args[0]: no defaults -- * -- * References: XTERM -- */ -- -- if (seq.collect1(0) != 0) -- return; -- -- reply(seq, VTE_REPLY_XTERM_DSR, {}, "VTE(%d)", firmware_version()); --} -- - void - Terminal::XTERM_WM(vte::parser::Sequence const& seq) - { --- -2.35.1 - - -From 90c5ba23a1fca5553c453f07ec010700eb2c70f2 Mon Sep 17 00:00:00 2001 +From c809170f42582f3f02fbcc10e5157ebae9efd0ce Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 -Subject: [PATCH 02/12] 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 @@ -317,10 +217,10 @@ index 874d2405..537e8e13 100644 2.35.1 -From 4f2b191321033a1ac5ee49f10bf7290b07dc0af1 Mon Sep 17 00:00:00 2001 +From 05a642746f1c3985ea204571e0179a1147dda1a9 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 -Subject: [PATCH 03/12] 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 @@ -353,10 +253,10 @@ index 242d6c42..50242223 100644 2.35.1 -From 1481641c0596217b6ca7f73243a5c5048202e10b Mon Sep 17 00:00:00 2001 +From d0cca4421d0108b0f9e23ea03ea5e99f745646a6 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 -Subject: [PATCH 04/12] Test the notification-received signal +Subject: [PATCH 03/11] Test the notification-received signal --- bindings/vala/app.vala | 7 +++++++ @@ -420,10 +320,10 @@ index 3b7835aa..fc8220a5 100644 2.35.1 -From e86c937f6d8f03930d97b942a13df4acd9bef92a Mon Sep 17 00:00:00 2001 +From e87bc628fdecf7480c12b861ba3fb98b03abe4d9 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 -Subject: [PATCH 05/12] 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. @@ -628,10 +528,10 @@ index 69a32276..d3e25179 100644 2.35.1 -From a1da65e5390c1dfdd201a29c912181712de2e9d6 Mon Sep 17 00:00:00 2001 +From f8a8d2adf1000720f269adb80473e8971bc51135 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 -Subject: [PATCH 06/12] Test the scroll-speed property +Subject: [PATCH 05/11] Test the scroll-speed property https://bugzilla.redhat.com/show_bug.cgi?id=1103380 --- @@ -701,10 +601,10 @@ index fc8220a5..c6f5cc0b 100644 2.35.1 -From f7fafa786a3b6e5568eefab7ad318594813aa4d5 Mon Sep 17 00:00:00 2001 +From 60d5670e793d2aa2ccda489e4e468bbc9c120908 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 -Subject: [PATCH 07/12] Support preexec notifications from an interactive shell +Subject: [PATCH 06/11] Support preexec notifications from an interactive shell Add sequences OSC 777 ; preexec BEL @@ -859,10 +759,10 @@ index 537e8e13..dbc6276f 100644 2.35.1 -From 9921679046106711276fe5304bc2d04b71553dec Mon Sep 17 00:00:00 2001 +From 9fe74c4f17f1fb708a90f22a64fd2b5f4aa794a9 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 20 Apr 2018 18:21:53 +0200 -Subject: [PATCH 08/12] 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 @@ -924,10 +824,10 @@ index c6f5cc0b..33a9481e 100644 2.35.1 -From 9a9c9b064447d50b0ebcd4c87284f68dc5414158 Mon Sep 17 00:00:00 2001 +From ed2a83fbf034f79f7c08e8d5e4eeaaea2599e484 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:20:30 +0200 -Subject: [PATCH 09/12] Support precmd notifications from an interactive shell +Subject: [PATCH 08/11] Support precmd notifications from an interactive shell Add sequences OSC 777 ; precmd BEL @@ -1081,10 +981,10 @@ index dbc6276f..4de2a6f1 100644 2.35.1 -From 5a57ad11947fbffc2c70a46e4e99941fc9e7b22a Mon Sep 17 00:00:00 2001 +From 2f3ea5834f7ae8c946724c3aef05964383088ec0 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:30:48 +0200 -Subject: [PATCH 10/12] 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 @@ -1146,10 +1046,10 @@ index 33a9481e..d30f8bd7 100644 2.35.1 -From 5626cd2154d3c8ce63f679d876468ca776cc2279 Mon Sep 17 00:00:00 2001 +From 08d50a8599dad3ac60f54cb0aeeadb3ca26c214d Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 10 Jun 2019 20:30:18 +0200 -Subject: [PATCH 11/12] Support tracking the active container inside the +Subject: [PATCH 10/11] Support tracking the active container inside the terminal Add sequences @@ -1496,10 +1396,10 @@ index 4de2a6f1..18c0d89c 100644 2.35.1 -From 00055475b4238ed9089faf745ba56e652f97bbc3 Mon Sep 17 00:00:00 2001 +From 62df90e5147c8be4e12bcf5ce99679c1fb2390d0 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Tue, 16 Feb 2021 16:30:44 +0100 -Subject: [PATCH 12/12] Revert "widget: Limit select-all to the writable region +Subject: [PATCH 11/11] Revert "widget: Limit select-all to the writable region not including the scrollback" ... as decided by Fedora Workstation WG. diff --git a/vte291.spec b/vte291.spec index fe71e9f..a0018e1 100644 --- a/vte291.spec +++ b/vte291.spec @@ -10,7 +10,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.67.90 +Version: 0.68.0 Release: 1%{?dist} Summary: Terminal emulator library @@ -18,7 +18,7 @@ Summary: Terminal emulator library License: LGPLv3+ and MIT URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://download.gnome.org/sources/vte/0.67/vte-%{version}.tar.xz +Source0: https://gitlab.gnome.org/GNOME/vte/-/archive/%{version}/vte-%{version}.tar.bz2 # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 @@ -131,6 +131,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Sun Mar 27 2022 David King - 0.68.0-1 +- Update to 0.68.0 + * Thu Feb 17 2022 David King - 0.67.90-1 - Update to 0.67.90 From 0f8e4183bd3e52693a0dc8f09f5639fe8356889d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 23 Jul 2022 12:08:14 +0000 Subject: [PATCH 087/164] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index a0018e1..322b5d4 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ Name: vte291 Version: 0.68.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -131,6 +131,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Sat Jul 23 2022 Fedora Release Engineering - 0.68.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Sun Mar 27 2022 David King - 0.68.0-1 - Update to 0.68.0 From b77d31593f151510b5619bfe5defe0b7c68ce0da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Mon, 1 Aug 2022 15:12:48 +0200 Subject: [PATCH 088/164] Rebuilt for ICU 71.1 --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index 322b5d4..a53e63c 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ Name: vte291 Version: 0.68.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -131,6 +131,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Aug 01 2022 Frantisek Zatloukal - 0.68.0-3 +- Rebuilt for ICU 71.1 + * Sat Jul 23 2022 Fedora Release Engineering - 0.68.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From 6f115a7c46be20360021aa5557a565ec4ff9ffd3 Mon Sep 17 00:00:00 2001 From: David King Date: Wed, 3 Aug 2022 15:59:03 +0100 Subject: [PATCH 089/164] Update to 0.69.90 --- .gitignore | 1 + sources | 2 +- vte291-0.69.90-fix-toml-docdir.patch | 35 +++ vte291-cntnr-precmd-preexec-scroll.patch | 351 ++++++++--------------- vte291.spec | 15 +- 5 files changed, 163 insertions(+), 241 deletions(-) create mode 100644 vte291-0.69.90-fix-toml-docdir.patch diff --git a/.gitignore b/.gitignore index 97ac8c9..74d0493 100644 --- a/.gitignore +++ b/.gitignore @@ -82,3 +82,4 @@ /vte-0.66.2.tar.xz /vte-0.67.90.tar.xz /vte-0.68.0.tar.bz2 +/vte-0.69.90.tar.xz diff --git a/sources b/sources index 0fb9898..1916811 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.68.0.tar.bz2) = 785df7261b5075f166e59de7d3535b381564715ce65efd4837a130e153528691b610fc6160c00f0f17008f5f4ee94c23350d9a477b4b1d58da6ace083e5caae1 +SHA512 (vte-0.69.90.tar.xz) = fc5506cc6c089c1dd7cd6917318b338e8f374340ac73046856f5dd0c2d99b6cc9654a8b578b1137766ed35a5352b7a4a2865639e63add7d845ab99c3b7d385e6 diff --git a/vte291-0.69.90-fix-toml-docdir.patch b/vte291-0.69.90-fix-toml-docdir.patch new file mode 100644 index 0000000..5b82ddc --- /dev/null +++ b/vte291-0.69.90-fix-toml-docdir.patch @@ -0,0 +1,35 @@ +From 901558bf471299e483976770e062730f35c13414 Mon Sep 17 00:00:00 2001 +From: Jeremy Bicha +Date: Fri, 29 Jul 2022 22:23:50 +0200 +Subject: [PATCH] docs: Install toml file to subdir + +Fixes: https://gitlab.gnome.org/GNOME/vte/-/issues/2570 +--- + doc/reference/meson.build | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/doc/reference/meson.build b/doc/reference/meson.build +index 3d98c7ae..beffb322 100644 +--- a/doc/reference/meson.build ++++ b/doc/reference/meson.build +@@ -32,7 +32,7 @@ if get_option('gtk3') + configuration: doc_conf, + input: 'vte-gtk3.toml.in', + install: true, +- install_dir: docdir, ++ install_dir: docdir / vte_gtk3_api_name, + output: vte_gtk3_api_name + '.toml', + ) + +@@ -67,7 +67,7 @@ if get_option('gtk4') + configuration: doc_conf, + input: 'vte-gtk4.toml.in', + install: true, +- install_dir: docdir, ++ install_dir: docdir / vte_gtk4_api_name, + output: vte_gtk4_api_name + '.toml', + ) + +-- +GitLab + diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index bb93ced..7443b38 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,4 +1,4 @@ -From c809170f42582f3f02fbcc10e5157ebae9efd0ce Mon Sep 17 00:00:00 2001 +From 22704d787b39e7f8d583a36d3a323854d43bebda Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 01/11] Add sequences and signals for desktop notification @@ -36,10 +36,10 @@ index 241128c3..4412cf3d 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index 8b75883f..05cc5589 100644 +index 00cd243b..2c4a66b5 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10032,6 +10032,14 @@ Terminal::emit_pending_signals() +@@ -10281,6 +10281,14 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); @@ -55,7 +55,7 @@ index 8b75883f..05cc5589 100644 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 41f153d0..1e9a737a 100644 +index 6f8a7751..0fdfce1e 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -108,10 +108,12 @@ struct _VteTerminalClass { @@ -73,10 +73,10 @@ index 41f153d0..1e9a737a 100644 /* Add new vfuncs here, and subtract from the padding below. */ diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 05b82294..a09a2f75 100644 +index 034c023b..778b69b2 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -1242,6 +1242,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1274,6 +1274,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->child_exited = NULL; klass->encoding_changed = NULL; klass->char_size_changed = NULL; @@ -84,7 +84,7 @@ index 05b82294..a09a2f75 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -1325,6 +1326,26 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1357,6 +1358,26 @@ vte_terminal_class_init(VteTerminalClass *klass) G_OBJECT_CLASS_TYPE(klass), g_cclosure_marshal_VOID__INTv); @@ -112,7 +112,7 @@ index 05b82294..a09a2f75 100644 * VteTerminal::window-title-changed: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 6b7a1ea2..8ba10395 100644 +index 778b555a..67c456b5 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -52,6 +52,7 @@ enum { @@ -124,10 +124,10 @@ index 6b7a1ea2..8ba10395 100644 LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index eb95ad68..69a32276 100644 +index 5037096d..1e8a27f6 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -660,6 +660,10 @@ public: +@@ -688,6 +688,10 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -138,7 +138,7 @@ index eb95ad68..69a32276 100644 std::string m_window_title{}; std::string m_current_directory_uri{}; std::string m_current_file_uri{}; -@@ -673,6 +677,7 @@ public: +@@ -701,6 +705,7 @@ public: TITLE = 1u << 0, CWD = 1u << 1, CWF = 1u << 2, @@ -146,7 +146,7 @@ index eb95ad68..69a32276 100644 }; unsigned m_pending_changes{0}; -@@ -1488,6 +1493,9 @@ public: +@@ -1539,6 +1544,9 @@ public: int osc) noexcept; /* OSC handlers */ @@ -157,10 +157,10 @@ index eb95ad68..69a32276 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 874d2405..537e8e13 100644 +index 9efde087..772ba4f3 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1376,6 +1376,33 @@ Terminal::delete_lines(vte::grid::row_t param) +@@ -1408,6 +1408,33 @@ Terminal::delete_lines(vte::grid::row_t param) m_text_deleted_flag = TRUE; } @@ -194,7 +194,7 @@ index 874d2405..537e8e13 100644 bool Terminal::get_osc_color_index(int osc, int value, -@@ -6541,6 +6568,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6687,6 +6714,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) reset_color(VTE_HIGHLIGHT_FG, VTE_COLOR_SOURCE_ESCAPE); break; @@ -205,7 +205,7 @@ index 874d2405..537e8e13 100644 case VTE_OSC_XTERM_SET_ICON_TITLE: case VTE_OSC_XTERM_SET_XPROPERTY: case VTE_OSC_XTERM_SET_COLOR_MOUSE_CURSOR_FG: -@@ -6582,7 +6613,6 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6728,7 +6759,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: @@ -214,10 +214,10 @@ index 874d2405..537e8e13 100644 default: break; -- -2.35.1 +2.37.1 -From 05a642746f1c3985ea204571e0179a1147dda1a9 Mon Sep 17 00:00:00 2001 +From b885c59413ac8f64891ced008767efc180d8d90a Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 Subject: [PATCH 02/11] vte.sh: Emit OSC 777 from PROMPT_COMMAND @@ -250,49 +250,23 @@ index 242d6c42..50242223 100644 } -- -2.35.1 +2.37.1 -From d0cca4421d0108b0f9e23ea03ea5e99f745646a6 Mon Sep 17 00:00:00 2001 +From ce224baf4eac101842a05e848874608bda2dd715 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 Subject: [PATCH 03/11] Test the notification-received signal --- - bindings/vala/app.vala | 7 +++++++ - src/app/app.cc | 10 ++++++++++ - 2 files changed, 17 insertions(+) + src/app/app.cc | 10 ++++++++++ + 1 file changed, 10 insertions(+) -diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala -index 4bcb5804..06546440 100644 ---- a/bindings/vala/app.vala -+++ b/bindings/vala/app.vala -@@ -309,6 +309,8 @@ class Window : Gtk.ApplicationWindow - if (Options.object_notifications) - terminal.notify.connect(notify_cb); - -+ terminal.notification_received.connect(notification_received_cb); -+ - /* Settings */ - if (Options.no_double_buffer) - terminal.set_double_buffered(false); -@@ -780,6 +782,11 @@ class Window : Gtk.ApplicationWindow - set_title(terminal.get_window_title()); - } - -+ private void notification_received_cb(Vte.Terminal terminal, string summary, string? body) -+ { -+ print ("[%s]: %s\n", summary, body); -+ } -+ - } /* class Window */ - - class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 3b7835aa..fc8220a5 100644 +index 9d53f274..3c666816 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -2209,6 +2209,14 @@ window_window_title_changed_cb(VteTerminal* terminal, +@@ -2245,6 +2245,14 @@ window_window_title_changed_cb(VteTerminal* terminal, gtk_window_set_title(GTK_WINDOW(window), title && title[0] ? title : "Terminal"); } @@ -307,7 +281,7 @@ index 3b7835aa..fc8220a5 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2505,6 +2513,8 @@ vteapp_window_constructed(GObject *object) +@@ -2541,6 +2549,8 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); @@ -317,10 +291,10 @@ index 3b7835aa..fc8220a5 100644 #if VTE_GTK == 3 if (options.no_double_buffer) { -- -2.35.1 +2.37.1 -From e87bc628fdecf7480c12b861ba3fb98b03abe4d9 Mon Sep 17 00:00:00 2001 +From 574e63dbad4c0ae09cf9ff4fff2fdc00de49e9a3 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 Subject: [PATCH 04/11] Add a property to configure the scroll speed @@ -330,31 +304,18 @@ moving the buffer by a function of the number of visible rows. https://bugzilla.redhat.com/show_bug.cgi?id=1103380 --- - doc/reference/vte-sections.txt.in | 1 + - src/vte.cc | 19 +++++++++++- - src/vte/vteterminal.h | 4 +++ - src/vtegtk.cc | 51 +++++++++++++++++++++++++++++++ - src/vtegtk.hh | 1 + - src/vteinternal.hh | 2 ++ - 6 files changed, 77 insertions(+), 1 deletion(-) + src/vte.cc | 19 +++++++++++++++- + src/vte/vteterminal.h | 4 ++++ + src/vtegtk.cc | 51 +++++++++++++++++++++++++++++++++++++++++++ + src/vtegtk.hh | 1 + + src/vteinternal.hh | 2 ++ + 5 files changed, 76 insertions(+), 1 deletion(-) -diff --git a/doc/reference/vte-sections.txt.in b/doc/reference/vte-sections.txt.in -index 283dd056..64907389 100644 ---- a/doc/reference/vte-sections.txt.in -+++ b/doc/reference/vte-sections.txt.in -@@ -58,6 +58,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 -+vte_terminal_set_scroll_speed - vte_terminal_set_scrollback_lines - vte_terminal_get_scrollback_lines - vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index 05cc5589..a4e6069d 100644 +index 2c4a66b5..93fc18d2 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9239,6 +9239,7 @@ vte_cairo_get_clip_region(cairo_t *cr) +@@ -9455,6 +9455,7 @@ vte_cairo_get_clip_region(cairo_t *cr) bool Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) { @@ -362,7 +323,7 @@ index 05cc5589..a4e6069d 100644 gdouble v; gint cnt, i; int button; -@@ -9273,7 +9274,13 @@ Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) +@@ -9489,7 +9490,13 @@ Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) return true; } @@ -377,7 +338,7 @@ index 05cc5589..a4e6069d 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -9583,6 +9590,16 @@ Terminal::decscusr_cursor_shape() const noexcept +@@ -9799,6 +9806,16 @@ Terminal::decscusr_cursor_shape() const noexcept } } @@ -395,7 +356,7 @@ index 05cc5589..a4e6069d 100644 Terminal::set_scrollback_lines(long lines) { diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 1e9a737a..b63967a3 100644 +index 0fdfce1e..c1240e8a 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -330,6 +330,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, @@ -410,7 +371,7 @@ index 1e9a737a..b63967a3 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index a09a2f75..ab1de923 100644 +index 778b69b2..3992766f 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -993,6 +993,9 @@ try @@ -423,7 +384,7 @@ index a09a2f75..ab1de923 100644 case PROP_SCROLLBACK_LINES: g_value_set_uint (value, vte_terminal_get_scrollback_lines(terminal)); break; -@@ -1114,6 +1117,9 @@ try +@@ -1130,6 +1133,9 @@ try case PROP_REWRAP_ON_RESIZE: vte_terminal_set_rewrap_on_resize (terminal, g_value_get_boolean (value)); break; @@ -433,7 +394,7 @@ index a09a2f75..ab1de923 100644 case PROP_SCROLLBACK_LINES: vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); break; -@@ -2210,6 +2216,21 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -2246,6 +2252,21 @@ vte_terminal_class_init(VteTerminalClass *klass) TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -455,7 +416,7 @@ index a09a2f75..ab1de923 100644 /** * VteTerminal:scrollback-lines: * -@@ -5726,6 +5747,36 @@ catch (...) +@@ -5851,6 +5872,36 @@ catch (...) return -1; } @@ -493,7 +454,7 @@ index a09a2f75..ab1de923 100644 * vte_terminal_set_scrollback_lines: * @terminal: a #VteTerminal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 8ba10395..f6cd891b 100644 +index 67c456b5..64ff8be8 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -86,6 +86,7 @@ enum { @@ -505,10 +466,10 @@ index 8ba10395..f6cd891b 100644 PROP_SCROLL_ON_KEYSTROKE, PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 69a32276..d3e25179 100644 +index 1e8a27f6..0e5a8ace 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -426,6 +426,7 @@ public: +@@ -439,6 +439,7 @@ public: bool m_fallback_scrolling{true}; bool m_scroll_on_output{false}; bool m_scroll_on_keystroke{true}; @@ -516,7 +477,7 @@ index 69a32276..d3e25179 100644 vte::grid::row_t m_scrollback_lines{0}; inline auto scroll_limit_lower() const noexcept -@@ -1363,6 +1364,7 @@ public: +@@ -1412,6 +1413,7 @@ public: bool set_input_enabled(bool enabled); bool set_mouse_autohide(bool autohide); bool set_rewrap_on_resize(bool rewrap); @@ -525,54 +486,24 @@ index 69a32276..d3e25179 100644 bool set_fallback_scrolling(bool set); auto fallback_scrolling() const noexcept { return m_fallback_scrolling; } -- -2.35.1 +2.37.1 -From f8a8d2adf1000720f269adb80473e8971bc51135 Mon Sep 17 00:00:00 2001 +From 57e1446aa0085ecb194ef91b6a54a67f6005230c Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 Subject: [PATCH 05/11] Test the scroll-speed property https://bugzilla.redhat.com/show_bug.cgi?id=1103380 --- - bindings/vala/app.vala | 4 ++++ - src/app/app.cc | 4 ++++ - 2 files changed, 8 insertions(+) + src/app/app.cc | 4 ++++ + 1 file changed, 4 insertions(+) -diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala -index 06546440..552a702d 100644 ---- a/bindings/vala/app.vala -+++ b/bindings/vala/app.vala -@@ -335,6 +335,7 @@ class Window : Gtk.ApplicationWindow - terminal.set_rewrap_on_resize(!Options.no_rewrap); - terminal.set_scroll_on_output(false); - terminal.set_scroll_on_keystroke(true); -+ terminal.set_scroll_speed(Options.scroll_speed); - terminal.set_scrollback_lines(Options.scrollback_lines); - - /* Style */ -@@ -857,6 +858,7 @@ class App : Gtk.Application - public static bool object_notifications = false; - public static string? output_filename = null; - public static bool reverse = false; -+ public static uint scroll_speed = 0; - public static int scrollback_lines = 512; - public static int transparency_percent = 0; - public static bool version = false; -@@ -1050,6 +1052,8 @@ class App : Gtk.Application - "Save terminal contents to file at exit", null }, - { "reverse", 0, 0, OptionArg.NONE, ref reverse, - "Reverse foreground/background colors", null }, -+ { "scroll-speed", 0, 0, OptionArg.INT, ref scroll_speed, -+ "Specify the scroll speed", null }, - { "scrollback-lines", 'n', 0, OptionArg.INT, ref scrollback_lines, - "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 fc8220a5..c6f5cc0b 100644 +index 3c666816..2c2e8bde 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -118,6 +118,7 @@ public: +@@ -119,6 +119,7 @@ public: int verbosity{0}; double cell_height_scale{1.0}; double cell_width_scale{1.0}; @@ -580,7 +511,7 @@ index fc8220a5..c6f5cc0b 100644 VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM}; VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK}; VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS}; -@@ -620,6 +621,8 @@ public: +@@ -647,6 +648,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 }, @@ -589,7 +520,7 @@ index fc8220a5..c6f5cc0b 100644 { "scroll-unit-is-pixels", 0, 0, G_OPTION_ARG_NONE, &scroll_unit_is_pixels, "Use pixels as scroll unit", nullptr }, { "scrollback-lines", 'n', 0, G_OPTION_ARG_INT, &scrollback_lines, -@@ -2549,6 +2552,7 @@ vteapp_window_constructed(GObject *object) +@@ -2586,6 +2589,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); @@ -598,10 +529,10 @@ index fc8220a5..c6f5cc0b 100644 vte_terminal_set_scrollback_lines(window->terminal, options.scrollback_lines); vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); -- -2.35.1 +2.37.1 -From 60d5670e793d2aa2ccda489e4e468bbc9c120908 Mon Sep 17 00:00:00 2001 +From 6909335767cfbdee9a8e05949eef21f9cedffe20 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 06/11] Support preexec notifications from an interactive shell @@ -630,10 +561,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index a4e6069d..6d8ab2bb 100644 +index 93fc18d2..77c50558 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10057,6 +10057,12 @@ Terminal::emit_pending_signals() +@@ -10306,6 +10306,12 @@ Terminal::emit_pending_signals() m_notification_body.c_str()); } @@ -663,7 +594,7 @@ index 50242223..01b44e23 100644 elif [[ -n "${ZSH_VERSION:-}" ]]; then diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index b63967a3..062b6694 100644 +index c1240e8a..eba96927 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -109,11 +109,12 @@ struct _VteTerminalClass { @@ -681,10 +612,10 @@ index b63967a3..062b6694 100644 /* Add new vfuncs here, and subtract from the padding below. */ diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index ab1de923..a4d51bfb 100644 +index 3992766f..4ef646d7 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -1249,6 +1249,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1281,6 +1281,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->encoding_changed = NULL; klass->char_size_changed = NULL; klass->notification_received = NULL; @@ -692,7 +623,7 @@ index ab1de923..a4d51bfb 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -1352,6 +1353,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1384,6 +1385,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -717,7 +648,7 @@ index ab1de923..a4d51bfb 100644 * VteTerminal::window-title-changed: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index f6cd891b..bf85bdf4 100644 +index 64ff8be8..179222a1 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -52,6 +52,7 @@ enum { @@ -729,10 +660,10 @@ index f6cd891b..bf85bdf4 100644 SIGNAL_WINDOW_TITLE_CHANGED, LAST_SIGNAL diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index d3e25179..b4f1b4c9 100644 +index 0e5a8ace..11965778 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -679,6 +679,7 @@ public: +@@ -707,6 +707,7 @@ public: CWD = 1u << 1, CWF = 1u << 2, NOTIFICATION = 1u << 3, @@ -741,10 +672,10 @@ index d3e25179..b4f1b4c9 100644 unsigned m_pending_changes{0}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 537e8e13..dbc6276f 100644 +index 772ba4f3..76b9329e 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1401,6 +1401,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1433,6 +1433,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, m_notification_body = *token; return; } @@ -756,10 +687,10 @@ index 537e8e13..dbc6276f 100644 bool -- -2.35.1 +2.37.1 -From 9fe74c4f17f1fb708a90f22a64fd2b5f4aa794a9 Mon Sep 17 00:00:00 2001 +From 39c75a48973425aad1bf25f0181d49600c7d8119 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 20 Apr 2018 18:21:53 +0200 Subject: [PATCH 07/11] Test the shell-preexec signal @@ -767,39 +698,14 @@ 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 --- - bindings/vala/app.vala | 6 ++++++ - src/app/app.cc | 7 +++++++ - 2 files changed, 13 insertions(+) + src/app/app.cc | 7 +++++++ + 1 file changed, 7 insertions(+) -diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala -index 552a702d..cc30f9ad 100644 ---- a/bindings/vala/app.vala -+++ b/bindings/vala/app.vala -@@ -310,6 +310,7 @@ class Window : Gtk.ApplicationWindow - terminal.notify.connect(notify_cb); - - terminal.notification_received.connect(notification_received_cb); -+ terminal.shell_preexec.connect(shell_preexec_cb); - - /* Settings */ - if (Options.no_double_buffer) -@@ -788,6 +789,11 @@ class Window : Gtk.ApplicationWindow - print ("[%s]: %s\n", summary, body); - } - -+ private void shell_preexec_cb(Vte.Terminal terminal) -+ { -+ print("[shell] executing command\n"); -+ } -+ - } /* class Window */ - - class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index c6f5cc0b..33a9481e 100644 +index 2c2e8bde..a66b56f0 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -2220,6 +2220,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -2256,6 +2256,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -812,7 +718,7 @@ index c6f5cc0b..33a9481e 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2517,6 +2523,7 @@ vteapp_window_constructed(GObject *object) +@@ -2553,6 +2559,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); @@ -821,10 +727,10 @@ index c6f5cc0b..33a9481e 100644 /* Settings */ #if VTE_GTK == 3 -- -2.35.1 +2.37.1 -From ed2a83fbf034f79f7c08e8d5e4eeaaea2599e484 Mon Sep 17 00:00:00 2001 +From bfb447be5a97cda7523719ab901c1ea6b0293a6b Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:20:30 +0200 Subject: [PATCH 08/11] Support precmd notifications from an interactive shell @@ -853,10 +759,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 31 insertions(+), 8 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 6d8ab2bb..e8a344ee 100644 +index 77c50558..604890e3 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10063,6 +10063,12 @@ Terminal::emit_pending_signals() +@@ -10312,6 +10312,12 @@ Terminal::emit_pending_signals() g_signal_emit(freezer.get(), signals[SIGNAL_SHELL_PREEXEC], 0); } @@ -883,7 +789,7 @@ index 01b44e23..877fe93d 100644 } diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 062b6694..ed08880d 100644 +index eba96927..c49f217e 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -109,14 +109,9 @@ struct _VteTerminalClass { @@ -903,10 +809,10 @@ index 062b6694..ed08880d 100644 /* Padding for future expansion. */ diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index a4d51bfb..7020c2af 100644 +index 4ef646d7..54ed6fc1 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -1249,6 +1249,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1281,6 +1281,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->encoding_changed = NULL; klass->char_size_changed = NULL; klass->notification_received = NULL; @@ -914,7 +820,7 @@ index a4d51bfb..7020c2af 100644 klass->shell_preexec = NULL; klass->window_title_changed = NULL; klass->icon_title_changed = NULL; -@@ -1353,6 +1354,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1385,6 +1386,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -939,7 +845,7 @@ index a4d51bfb..7020c2af 100644 * VteTerminal::shell-preexec: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index bf85bdf4..cee56b65 100644 +index 179222a1..c66aeda2 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -52,6 +52,7 @@ enum { @@ -951,10 +857,10 @@ index bf85bdf4..cee56b65 100644 SIGNAL_NOTIFICATION_RECEIVED, SIGNAL_WINDOW_TITLE_CHANGED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index b4f1b4c9..eabc0062 100644 +index 11965778..d4a10935 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -680,6 +680,7 @@ public: +@@ -708,6 +708,7 @@ public: CWF = 1u << 2, NOTIFICATION = 1u << 3, SHELL_PREEXEC = 1u << 4, @@ -963,10 +869,10 @@ index b4f1b4c9..eabc0062 100644 unsigned m_pending_changes{0}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index dbc6276f..4de2a6f1 100644 +index 76b9329e..fb958962 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1402,7 +1402,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1434,7 +1434,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, return; } @@ -978,10 +884,10 @@ index dbc6276f..4de2a6f1 100644 } } -- -2.35.1 +2.37.1 -From 2f3ea5834f7ae8c946724c3aef05964383088ec0 Mon Sep 17 00:00:00 2001 +From d84dd319c31ffdcfd73b08750228efba34e226fb Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:30:48 +0200 Subject: [PATCH 09/11] Test the shell-precmd signal @@ -989,39 +895,14 @@ 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 --- - bindings/vala/app.vala | 6 ++++++ - src/app/app.cc | 7 +++++++ - 2 files changed, 13 insertions(+) + src/app/app.cc | 7 +++++++ + 1 file changed, 7 insertions(+) -diff --git a/bindings/vala/app.vala b/bindings/vala/app.vala -index cc30f9ad..ecc4b769 100644 ---- a/bindings/vala/app.vala -+++ b/bindings/vala/app.vala -@@ -310,6 +310,7 @@ class Window : Gtk.ApplicationWindow - terminal.notify.connect(notify_cb); - - terminal.notification_received.connect(notification_received_cb); -+ terminal.shell_precmd.connect(shell_precmd_cb); - terminal.shell_preexec.connect(shell_preexec_cb); - - /* Settings */ -@@ -789,6 +790,11 @@ class Window : Gtk.ApplicationWindow - print ("[%s]: %s\n", summary, body); - } - -+ private void shell_precmd_cb(Vte.Terminal terminal) -+ { -+ print("[shell] showing command prompt\n"); -+ } -+ - private void shell_preexec_cb(Vte.Terminal terminal) - { - print("[shell] executing command\n"); diff --git a/src/app/app.cc b/src/app/app.cc -index 33a9481e..d30f8bd7 100644 +index a66b56f0..9d02499b 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -2220,6 +2220,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -2256,6 +2256,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -1034,7 +915,7 @@ index 33a9481e..d30f8bd7 100644 static void shell_preexec_cb(VteTerminal *terminal) { -@@ -2523,6 +2529,7 @@ vteapp_window_constructed(GObject *object) +@@ -2559,6 +2565,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); @@ -1043,10 +924,10 @@ index 33a9481e..d30f8bd7 100644 /* Settings */ -- -2.35.1 +2.37.1 -From 08d50a8599dad3ac60f54cb0aeeadb3ca26c214d Mon Sep 17 00:00:00 2001 +From 691fece42c52662dcf53b4bf5360ca0d48822580 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 10 Jun 2019 20:30:18 +0200 Subject: [PATCH 10/11] Support tracking the active container inside the @@ -1088,10 +969,10 @@ agreed upon across multiple different terminal emulators [1]. 6 files changed, 193 insertions(+) diff --git a/src/vte.cc b/src/vte.cc -index e8a344ee..a3ca5108 100644 +index 604890e3..fca21ddf 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10082,6 +10082,14 @@ Terminal::emit_pending_signals() +@@ -10331,6 +10331,14 @@ Terminal::emit_pending_signals() m_window_title_pending.clear(); } @@ -1107,10 +988,10 @@ index e8a344ee..a3ca5108 100644 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 ed08880d..d25eb93a 100644 +index c49f217e..c490f157 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -511,6 +511,10 @@ glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VT +@@ -514,6 +514,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 @@ -1122,7 +1003,7 @@ index ed08880d..d25eb93a 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 7020c2af..2ee5b029 100644 +index 54ed6fc1..b2ec8f40 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -942,6 +942,12 @@ try @@ -1138,7 +1019,7 @@ index 7020c2af..2ee5b029 100644 case PROP_CURRENT_DIRECTORY_URI: g_value_set_string (value, vte_terminal_get_current_directory_uri (terminal)); break; -@@ -2357,6 +2363,27 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -2393,6 +2399,27 @@ vte_terminal_class_init(VteTerminalClass *klass) NULL, (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -1166,7 +1047,7 @@ index 7020c2af..2ee5b029 100644 /** * VteTerminal:current-directory-uri: * -@@ -4929,6 +4956,56 @@ catch (...) +@@ -5022,6 +5049,56 @@ catch (...) return -1; } @@ -1224,7 +1105,7 @@ index 7020c2af..2ee5b029 100644 * vte_terminal_get_current_directory_uri: * @terminal: a #VteTerminal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index cee56b65..e41f2f3a 100644 +index c66aeda2..cf572de4 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh @@ -72,6 +72,8 @@ enum { @@ -1237,7 +1118,7 @@ index cee56b65..e41f2f3a 100644 PROP_CURRENT_FILE_URI, PROP_DELETE_BINDING, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index eabc0062..dcb6a6fc 100644 +index d4a10935..0f219dc6 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -59,6 +59,7 @@ @@ -1248,7 +1129,7 @@ index eabc0062..dcb6a6fc 100644 #include #include #include -@@ -110,6 +111,18 @@ typedef enum _VteCharacterReplacement { +@@ -114,6 +115,18 @@ typedef enum _VteCharacterReplacement { VTE_CHARACTER_REPLACEMENT_LINE_DRAWING } VteCharacterReplacement; @@ -1267,7 +1148,7 @@ index eabc0062..dcb6a6fc 100644 typedef struct _VtePaletteColor { struct { vte::color::rgb color; -@@ -661,6 +674,8 @@ public: +@@ -689,6 +702,8 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -1276,7 +1157,7 @@ index eabc0062..dcb6a6fc 100644 /* desktop notification */ std::string m_notification_summary; std::string m_notification_body; -@@ -681,6 +696,7 @@ public: +@@ -709,6 +724,7 @@ public: NOTIFICATION = 1u << 3, SHELL_PREEXEC = 1u << 4, SHELL_PRECMD = 1u << 5, @@ -1285,7 +1166,7 @@ index eabc0062..dcb6a6fc 100644 unsigned m_pending_changes{0}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 4de2a6f1..18c0d89c 100644 +index fb958962..5b36dd9b 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc @@ -19,10 +19,14 @@ @@ -1303,7 +1184,7 @@ index 4de2a6f1..18c0d89c 100644 #ifdef HAVE_SYS_SYSLIMITS_H #include #endif -@@ -1384,6 +1388,88 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1416,6 +1420,88 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, if (token == endtoken) return; @@ -1393,10 +1274,10 @@ index 4de2a6f1..18c0d89c 100644 ++token; -- -2.35.1 +2.37.1 -From 62df90e5147c8be4e12bcf5ce99679c1fb2390d0 Mon Sep 17 00:00:00 2001 +From 09b7ad967e395ef95f3428982596a2d80a0097e1 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 @@ -1412,10 +1293,10 @@ This reverts commit 73713ec0644e232fb740170e399282be778d97f9. 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index a3ca5108..1834b090 100644 +index fca21ddf..eeb29eab 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -6497,10 +6497,7 @@ Terminal::maybe_end_selection() +@@ -6566,10 +6566,7 @@ Terminal::maybe_end_selection() /* * Terminal::select_all: * @@ -1427,7 +1308,7 @@ index a3ca5108..1834b090 100644 */ void Terminal::select_all() -@@ -6509,8 +6506,8 @@ Terminal::select_all() +@@ -6578,8 +6575,8 @@ Terminal::select_all() m_selecting_had_delta = TRUE; @@ -1439,5 +1320,5 @@ index a3ca5108..1834b090 100644 _vte_debug_print(VTE_DEBUG_SELECTION, "Selecting *all* text.\n"); -- -2.35.1 +2.37.1 diff --git a/vte291.spec b/vte291.spec index a53e63c..bba1a96 100644 --- a/vte291.spec +++ b/vte291.spec @@ -10,21 +10,23 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.68.0 -Release: 3%{?dist} +Version: 0.69.90 +Release: 1%{?dist} Summary: Terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources License: LGPLv3+ and MIT URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://gitlab.gnome.org/GNOME/vte/-/archive/%{version}/vte-%{version}.tar.bz2 +Source0: https://download.gnome.org/sources/vte/0.69/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 Patch0: vte291-cntnr-precmd-preexec-scroll.patch +Patch1: vte291-0.69.90-fix-toml-docdir.patch + BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version} BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version} @@ -38,9 +40,9 @@ BuildRequires: pkgconfig(pango) >= %{pango_version} BuildRequires: pkgconfig(zlib) BuildRequires: gcc-c++ BuildRequires: gettext +BuildRequires: gi-docgen BuildRequires: gobject-introspection-devel BuildRequires: gperf -BuildRequires: gtk-doc BuildRequires: meson BuildRequires: systemd-rpm-macros BuildRequires: vala @@ -121,7 +123,7 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_libdir}/pkgconfig/vte-%{apiver}.pc %{_datadir}/gir-1.0/ %{_datadir}/glade/ -%doc %{_datadir}/gtk-doc/ +%doc %{_docdir}/vte-2.91/ %{_datadir}/vala/ %files -n vte-profile @@ -131,6 +133,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Wed Aug 03 2022 David King - 0.69.90-1 +- Update to 0.69.90 + * Mon Aug 01 2022 Frantisek Zatloukal - 0.68.0-3 - Rebuilt for ICU 71.1 From 1730e3bf04db4ab73b964f182e634d02367a7f75 Mon Sep 17 00:00:00 2001 From: David King Date: Thu, 4 Aug 2022 12:42:15 +0100 Subject: [PATCH 090/164] Enable GTK4 support --- vte291.spec | 63 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 56 insertions(+), 7 deletions(-) diff --git a/vte291.spec b/vte291.spec index bba1a96..041fa8d 100644 --- a/vte291.spec +++ b/vte291.spec @@ -4,6 +4,7 @@ %global glib2_version 2.52.0 %global gnutls_version 3.2.7 %global gtk3_version 3.24.22 +%global gtk4_version 4.0.1 %global icu_uc_version 4.8 %global libsystemd_version 220 %global pango_version 1.22.0 @@ -12,7 +13,7 @@ Name: vte291 Version: 0.69.90 Release: 1%{?dist} -Summary: Terminal emulator library +Summary: GTK+ 3 terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources License: LGPLv3+ and MIT @@ -33,6 +34,7 @@ BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version} BuildRequires: pkgconfig(gnutls) >= %{gnutls_version} BuildRequires: pkgconfig(gobject-2.0) >= %{glib2_version} BuildRequires: pkgconfig(gtk+-3.0) >= %{gtk3_version} +BuildRequires: pkgconfig(gtk4) >= %{gtk4_version} BuildRequires: pkgconfig(icu-uc) >= %{icu_uc_version} BuildRequires: pkgconfig(libpcre2-8) >= %{pcre2_version} BuildRequires: pkgconfig(libsystemd) >= %{libsystemd_version} @@ -64,8 +66,21 @@ VTE is a library implementing a terminal emulator widget for GTK+. VTE is mainly used in gnome-terminal, but can also be used to embed a console/terminal in games, editors, IDEs, etc. +%package gtk4 +Summary: GTK4 terminal emulator library + +# libvte-2.91.so is generated from LGPLv2+ and MIT sources +License: LGPLv3+ and MIT + +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description gtk4 +VTE is a library implementing a terminal emulator widget for GTK 4. VTE +is mainly used in gnome-terminal, but can also be used to embed a +console/terminal in games, editors, IDEs, etc. + %package devel -Summary: Development files for %{name} +Summary: Development files for GTK+ 3 %{name} # vte-2.91 is generated from GPLv3+ sources, while the public headers are # LGPLv3+ @@ -75,7 +90,21 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %description devel The %{name}-devel package contains libraries and header files for -developing applications that use %{name}. +developing GTK+ 3 applications that use %{name}. + +%package gtk4-devel +Summary: Development files for GTK 4 %{name} + +# vte-2.91 is generated from GPLv3+ sources, while the public headers are +# LGPLv3+ +License: GPLv3+ and LGPLv3+ + +Requires: %{name}-gtk4%{?_isa} = %{version}-%{release} +Requires: %{name}-devel%{?_isa} = %{version}-%{release} + +%description gtk4-devel +The %{name}-gtk4-devel package contains libraries and header files for +developing GTK 4 applications that use %{name}. # vte-profile is deliberately not noarch to avoid having to obsolete a noarch # subpackage in the future when we get rid of the vte3 / vte291 split. Yum is @@ -99,7 +128,7 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %endif %build -%meson --buildtype=plain -Ddocs=true +%meson --buildtype=plain -Ddocs=true -Dgtk3=true -Dgtk4=true %meson_build %install @@ -112,19 +141,38 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %license COPYING.XTERM %doc README.md %{_libdir}/libvte-%{apiver}.so.0* -%{_libdir}/girepository-1.0/ +%dir %{_libdir}/girepository-1.0 +%{_libdir}/girepository-1.0/Vte-2.91.typelib %{_userunitdir}/vte-spawn-.scope.d +%files gtk4 +%{_libdir}/libvte-%{apiver}-gtk4.so.0* +%{_libdir}/girepository-1.0/Vte-3.91.typelib + %files devel %license COPYING.GPL3 %{_bindir}/vte-%{apiver} %{_includedir}/vte-%{apiver}/ %{_libdir}/libvte-%{apiver}.so %{_libdir}/pkgconfig/vte-%{apiver}.pc -%{_datadir}/gir-1.0/ +%dir %{_datadir}/gir-1.0 +%{_datadir}/gir-1.0/Vte-2.91.gir %{_datadir}/glade/ %doc %{_docdir}/vte-2.91/ -%{_datadir}/vala/ +%dir %{_datadir}/vala +%dir %{_datadir}/vala/vapi +%{_datadir}/vala/vapi/vte-2.91.deps +%{_datadir}/vala/vapi/vte-2.91.vapi + +%files gtk4-devel +%{_bindir}/vte-%{apiver}-gtk4 +%{_includedir}/vte-%{apiver}-gtk4/ +%{_libdir}/libvte-%{apiver}-gtk4.so +%{_libdir}/pkgconfig/vte-%{apiver}-gtk4.pc +%{_datadir}/gir-1.0/Vte-3.91.gir +%doc %{_docdir}/vte-2.91-gtk4/ +%{_datadir}/vala/vapi/vte-2.91-gtk4.deps +%{_datadir}/vala/vapi/vte-2.91-gtk4.vapi %files -n vte-profile %license COPYING.GPL3 @@ -135,6 +183,7 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %changelog * Wed Aug 03 2022 David King - 0.69.90-1 - Update to 0.69.90 +- Enable GTK4 support * Mon Aug 01 2022 Frantisek Zatloukal - 0.68.0-3 - Rebuilt for ICU 71.1 From c3c0086976ab552e503b762860546c5a0ce94b7c Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Mon, 8 Aug 2022 14:08:58 +0200 Subject: [PATCH 091/164] Update to 0.69.92 --- .gitignore | 1 + sources | 2 +- vte291-0.69.90-fix-toml-docdir.patch | 35 ---------------------------- vte291.spec | 9 +++---- 4 files changed, 7 insertions(+), 40 deletions(-) delete mode 100644 vte291-0.69.90-fix-toml-docdir.patch diff --git a/.gitignore b/.gitignore index 74d0493..069773c 100644 --- a/.gitignore +++ b/.gitignore @@ -83,3 +83,4 @@ /vte-0.67.90.tar.xz /vte-0.68.0.tar.bz2 /vte-0.69.90.tar.xz +/vte-0.69.92.tar.bz2 diff --git a/sources b/sources index 1916811..6291f15 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.69.90.tar.xz) = fc5506cc6c089c1dd7cd6917318b338e8f374340ac73046856f5dd0c2d99b6cc9654a8b578b1137766ed35a5352b7a4a2865639e63add7d845ab99c3b7d385e6 +SHA512 (vte-0.69.92.tar.bz2) = 363693a7698c8e1d9f61949b4568861e2b27f458d08d03ac7356154d5ee6721d3b3dfeb683d2e4c19fa6927a175041a351e2388aae753eeacfe4cd547e55ffb5 diff --git a/vte291-0.69.90-fix-toml-docdir.patch b/vte291-0.69.90-fix-toml-docdir.patch deleted file mode 100644 index 5b82ddc..0000000 --- a/vte291-0.69.90-fix-toml-docdir.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 901558bf471299e483976770e062730f35c13414 Mon Sep 17 00:00:00 2001 -From: Jeremy Bicha -Date: Fri, 29 Jul 2022 22:23:50 +0200 -Subject: [PATCH] docs: Install toml file to subdir - -Fixes: https://gitlab.gnome.org/GNOME/vte/-/issues/2570 ---- - doc/reference/meson.build | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/doc/reference/meson.build b/doc/reference/meson.build -index 3d98c7ae..beffb322 100644 ---- a/doc/reference/meson.build -+++ b/doc/reference/meson.build -@@ -32,7 +32,7 @@ if get_option('gtk3') - configuration: doc_conf, - input: 'vte-gtk3.toml.in', - install: true, -- install_dir: docdir, -+ install_dir: docdir / vte_gtk3_api_name, - output: vte_gtk3_api_name + '.toml', - ) - -@@ -67,7 +67,7 @@ if get_option('gtk4') - configuration: doc_conf, - input: 'vte-gtk4.toml.in', - install: true, -- install_dir: docdir, -+ install_dir: docdir / vte_gtk4_api_name, - output: vte_gtk4_api_name + '.toml', - ) - --- -GitLab - diff --git a/vte291.spec b/vte291.spec index 041fa8d..680b472 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.69.90 +Version: 0.69.92 Release: 1%{?dist} Summary: GTK+ 3 terminal emulator library @@ -19,15 +19,13 @@ Summary: GTK+ 3 terminal emulator library License: LGPLv3+ and MIT URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://download.gnome.org/sources/vte/0.69/vte-%{version}.tar.xz +Source0: https://gitlab.gnome.org/GNOME/vte/-/archive/%{version}/vte-%{version}.tar.bz2 # 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 Patch0: vte291-cntnr-precmd-preexec-scroll.patch -Patch1: vte291-0.69.90-fix-toml-docdir.patch - BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version} BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version} @@ -181,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Aug 08 2022 Kalev Lember - 0.69.92-1 +- Update to 0.69.92 + * Wed Aug 03 2022 David King - 0.69.90-1 - Update to 0.69.90 - Enable GTK4 support From b1c725b42f6f3090db213e931f4a395f4af98797 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Mon, 19 Sep 2022 23:15:33 +0200 Subject: [PATCH 092/164] Update to 0.70.0 --- .gitignore | 1 + sources | 2 +- vte291.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 069773c..63efb75 100644 --- a/.gitignore +++ b/.gitignore @@ -84,3 +84,4 @@ /vte-0.68.0.tar.bz2 /vte-0.69.90.tar.xz /vte-0.69.92.tar.bz2 +/vte-0.70.0.tar.xz diff --git a/sources b/sources index 6291f15..229da36 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.69.92.tar.bz2) = 363693a7698c8e1d9f61949b4568861e2b27f458d08d03ac7356154d5ee6721d3b3dfeb683d2e4c19fa6927a175041a351e2388aae753eeacfe4cd547e55ffb5 +SHA512 (vte-0.70.0.tar.xz) = 9058a844b68a16e9b3f7a5808e46b7adea0743063bee33a4d6239d42d2e6b2c26820254e3ac1615d00865e5a6dd71737fa6bd4ce604977a18fdafa7178303e99 diff --git a/vte291.spec b/vte291.spec index 680b472..df8b019 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.69.92 +Version: 0.70.0 Release: 1%{?dist} Summary: GTK+ 3 terminal emulator library @@ -19,7 +19,7 @@ Summary: GTK+ 3 terminal emulator library License: LGPLv3+ and MIT URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://gitlab.gnome.org/GNOME/vte/-/archive/%{version}/vte-%{version}.tar.bz2 +Source0: https://download.gnome.org/sources/vte/0.70/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Sep 19 2022 Kalev Lember - 0.70.0-1 +- Update to 0.70.0 + * Mon Aug 08 2022 Kalev Lember - 0.69.92-1 - Update to 0.69.92 From e2e2f15eb641c1470c43a5823575521b9222ed7e Mon Sep 17 00:00:00 2001 From: David King Date: Tue, 27 Sep 2022 08:55:59 +0100 Subject: [PATCH 093/164] Fix GTK4 ABI padding (#2122922) --- vte291-cntnr-precmd-preexec-scroll.patch | 449 +++++++++++++---------- vte291.spec | 5 +- 2 files changed, 261 insertions(+), 193 deletions(-) diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index 7443b38..dbc727f 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,4 +1,4 @@ -From 22704d787b39e7f8d583a36d3a323854d43bebda Mon Sep 17 00:00:00 2001 +From 3354db2ca10487dd6ced2c54130b12e3a7bc53f8 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 01/11] Add sequences and signals for desktop notification @@ -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 | 8 ++++++++ + src/vte.cc | 10 ++++++++++ src/vte/vteterminal.h | 4 +++- - src/vtegtk.cc | 21 +++++++++++++++++++++ - src/vtegtk.hh | 1 + - src/vteinternal.hh | 8 ++++++++ - src/vteseq.cc | 32 +++++++++++++++++++++++++++++++- - 7 files changed, 73 insertions(+), 2 deletions(-) + src/vtegtk.cc | 25 +++++++++++++++++++++++++ + src/vtegtk.hh | 3 +++ + src/vteinternal.hh | 14 ++++++++++++++ + src/vteseq.cc | 37 +++++++++++++++++++++++++++++++++++++ + 7 files changed, 93 insertions(+), 1 deletion(-) diff --git a/src/marshal.list b/src/marshal.list index 241128c3..4412cf3d 100644 @@ -36,13 +36,14 @@ index 241128c3..4412cf3d 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index 00cd243b..2c4a66b5 100644 +index a8671845..77533d82 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10281,6 +10281,14 @@ Terminal::emit_pending_signals() +@@ -10164,6 +10164,16 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); ++#if _VTE_GTK == 3 + if (m_pending_changes & vte::to_integral(PendingChanges::NOTIFICATION)) { + _vte_debug_print (VTE_DEBUG_SIGNALS, + "Emitting `notification-received'.\n"); @@ -50,21 +51,21 @@ index 00cd243b..2c4a66b5 100644 + m_notification_summary.c_str(), + m_notification_body.c_str()); + } ++#endif + 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 6f8a7751..0fdfce1e 100644 +index 78176f97..ac762498 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -108,10 +108,12 @@ struct _VteTerminalClass { - +@@ -109,9 +109,11 @@ struct _VteTerminalClass { void (*bell)(VteTerminal* terminal); + #if _VTE_GTK == 3 + void (*notification_received)(VteTerminal* terminal, const gchar *summary, const gchar *body); + - #if _VTE_GTK == 3 /* Compatibility padding due to fedora patches intruding on our ABI */ /*< private >*/ - gpointer _extra_padding[3]; @@ -73,21 +74,24 @@ index 6f8a7751..0fdfce1e 100644 /* Add new vfuncs here, and subtract from the padding below. */ diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 034c023b..778b69b2 100644 +index 3945ba67..570f8e69 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -1274,6 +1274,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1251,6 +1251,9 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->child_exited = NULL; klass->encoding_changed = NULL; klass->char_size_changed = NULL; ++#if _VTE_GTK == 3 + klass->notification_received = NULL; ++#endif klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -1357,6 +1358,26 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1334,6 +1337,28 @@ vte_terminal_class_init(VteTerminalClass *klass) G_OBJECT_CLASS_TYPE(klass), g_cclosure_marshal_VOID__INTv); ++#if _VTE_GTK == 3 + /** + * VteTerminal::notification-received: + * @vteterminal: the object which received the signal @@ -107,63 +111,73 @@ index 034c023b..778b69b2 100644 + _vte_marshal_VOID__STRING_STRING, + G_TYPE_NONE, + 2, G_TYPE_STRING, G_TYPE_STRING); ++#endif + /** * VteTerminal::window-title-changed: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 778b555a..67c456b5 100644 +index 6b7a1ea2..d5379b16 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh -@@ -52,6 +52,7 @@ enum { +@@ -52,6 +52,9 @@ enum { SIGNAL_RESIZE_WINDOW, SIGNAL_RESTORE_WINDOW, SIGNAL_SELECTION_CHANGED, ++#if _VTE_GTK == 3 + SIGNAL_NOTIFICATION_RECEIVED, ++#endif SIGNAL_WINDOW_TITLE_CHANGED, LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 5037096d..1e8a27f6 100644 +index 0d454649..8dba726c 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -688,6 +688,10 @@ public: +@@ -662,6 +662,12 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; ++#if _VTE_GTK == 3 + /* desktop notification */ + std::string m_notification_summary; + std::string m_notification_body; ++#endif + std::string m_window_title{}; std::string m_current_directory_uri{}; std::string m_current_file_uri{}; -@@ -701,6 +705,7 @@ public: +@@ -675,6 +681,9 @@ public: TITLE = 1u << 0, CWD = 1u << 1, CWF = 1u << 2, ++#if _VTE_GTK == 3 + NOTIFICATION = 1u << 3, ++#endif }; unsigned m_pending_changes{0}; -@@ -1539,6 +1544,9 @@ public: +@@ -1506,6 +1515,11 @@ public: int osc) noexcept; /* OSC handlers */ ++#if _VTE_GTK == 3 + void handle_urxvt_extension(vte::parser::Sequence const& seq, + vte::parser::StringTokeniser::const_iterator& token, + vte::parser::StringTokeniser::const_iterator const& endtoken) noexcept; ++#endif void set_color(vte::parser::Sequence const& seq, vte::parser::StringTokeniser::const_iterator& token, vte::parser::StringTokeniser::const_iterator const& endtoken, diff --git a/src/vteseq.cc b/src/vteseq.cc -index 9efde087..772ba4f3 100644 +index 874d2405..dda487c4 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1408,6 +1408,33 @@ Terminal::delete_lines(vte::grid::row_t param) +@@ -1376,6 +1376,35 @@ Terminal::delete_lines(vte::grid::row_t param) m_text_deleted_flag = TRUE; } ++#if _VTE_GTK == 3 +void +Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, + vte::parser::StringTokeniser::const_iterator& token, @@ -190,34 +204,39 @@ index 9efde087..772ba4f3 100644 + return; + } +} ++#endif + bool Terminal::get_osc_color_index(int osc, int value, -@@ -6687,6 +6714,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6541,6 +6570,12 @@ Terminal::OSC(vte::parser::Sequence const& seq) reset_color(VTE_HIGHLIGHT_FG, VTE_COLOR_SOURCE_ESCAPE); break; ++#if _VTE_GTK == 3 + case VTE_OSC_URXVT_EXTENSION: + handle_urxvt_extension(seq, it, cend); + break; ++#endif + case VTE_OSC_XTERM_SET_ICON_TITLE: case VTE_OSC_XTERM_SET_XPROPERTY: case VTE_OSC_XTERM_SET_COLOR_MOUSE_CURSOR_FG: -@@ -6728,7 +6759,6 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6582,7 +6617,9 @@ 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: -- case VTE_OSC_URXVT_EXTENSION: ++#if _VTE_GTK != 3 + case VTE_OSC_URXVT_EXTENSION: ++#endif case VTE_OSC_YF_RQGWR: default: break; -- -2.37.1 +2.37.3 -From b885c59413ac8f64891ced008767efc180d8d90a Mon Sep 17 00:00:00 2001 +From ca0549eafe1fd03d11a632d07c0fab7fd4b333ac Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 Subject: [PATCH 02/11] vte.sh: Emit OSC 777 from PROMPT_COMMAND @@ -250,10 +269,10 @@ index 242d6c42..50242223 100644 } -- -2.37.1 +2.37.3 -From ce224baf4eac101842a05e848874608bda2dd715 Mon Sep 17 00:00:00 2001 +From b281275ed320f9a2f82d6e436a397ad005dafce0 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 Subject: [PATCH 03/11] Test the notification-received signal @@ -263,10 +282,10 @@ Subject: [PATCH 03/11] Test the notification-received signal 1 file changed, 10 insertions(+) diff --git a/src/app/app.cc b/src/app/app.cc -index 9d53f274..3c666816 100644 +index a69d9327..88fe5f2f 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -2245,6 +2245,14 @@ window_window_title_changed_cb(VteTerminal* terminal, +@@ -2286,6 +2286,14 @@ window_window_title_changed_cb(VteTerminal* terminal, gtk_window_set_title(GTK_WINDOW(window), title && title[0] ? title : "Terminal"); } @@ -281,7 +300,7 @@ index 9d53f274..3c666816 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2541,6 +2549,8 @@ vteapp_window_constructed(GObject *object) +@@ -2582,6 +2590,8 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); @@ -291,10 +310,10 @@ index 9d53f274..3c666816 100644 #if VTE_GTK == 3 if (options.no_double_buffer) { -- -2.37.1 +2.37.3 -From 574e63dbad4c0ae09cf9ff4fff2fdc00de49e9a3 Mon Sep 17 00:00:00 2001 +From 2832ac1e0bf8eb3e0147b0803637765a4b5ac832 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 Subject: [PATCH 04/11] Add a property to configure the scroll speed @@ -304,30 +323,32 @@ moving the buffer by a function of the number of visible rows. https://bugzilla.redhat.com/show_bug.cgi?id=1103380 --- - src/vte.cc | 19 +++++++++++++++- - src/vte/vteterminal.h | 4 ++++ - src/vtegtk.cc | 51 +++++++++++++++++++++++++++++++++++++++++++ - src/vtegtk.hh | 1 + - src/vteinternal.hh | 2 ++ - 5 files changed, 76 insertions(+), 1 deletion(-) + src/vte.cc | 25 ++++++++++++++++++ + src/vte/vteterminal.h | 6 +++++ + src/vtegtk.cc | 59 +++++++++++++++++++++++++++++++++++++++++++ + src/vtegtk.hh | 3 +++ + src/vteinternal.hh | 6 +++++ + 5 files changed, 99 insertions(+) diff --git a/src/vte.cc b/src/vte.cc -index 2c4a66b5..93fc18d2 100644 +index 77533d82..e2723342 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9455,6 +9455,7 @@ vte_cairo_get_clip_region(cairo_t *cr) +@@ -9364,6 +9364,9 @@ vte_cairo_get_clip_region(cairo_t *cr) bool Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) { ++#if _VTE_GTK == 3 + gdouble scroll_speed; ++#endif gdouble v; gint cnt, i; int button; -@@ -9489,7 +9490,13 @@ Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) +@@ -9398,7 +9401,17 @@ Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) return true; } -- v = MAX (1., ceil (m_row_count /* page increment */ / 10.)); ++#if _VTE_GTK == 3 + if (m_scroll_speed == 0) { + scroll_speed = ceil (m_row_count /* page increment */ / 10.); + } else { @@ -335,13 +356,17 @@ index 2c4a66b5..93fc18d2 100644 + } + + v = MAX (1., scroll_speed); ++#else + v = MAX (1., ceil (m_row_count /* page increment */ / 10.)); ++#endif _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -9799,6 +9806,16 @@ Terminal::decscusr_cursor_shape() const noexcept +@@ -9708,6 +9721,18 @@ Terminal::decscusr_cursor_shape() const noexcept } } ++#if _VTE_GTK == 3 +bool +Terminal::set_scroll_speed(unsigned int scroll_speed) +{ @@ -351,53 +376,61 @@ index 2c4a66b5..93fc18d2 100644 + m_scroll_speed = scroll_speed; + return true; +} ++#endif + bool Terminal::set_scrollback_lines(long lines) { diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 0fdfce1e..c1240e8a 100644 +index ac762498..972c4a0c 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -330,6 +330,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, +@@ -330,6 +330,12 @@ 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); ++#if _VTE_GTK == 3 +_VTE_PUBLIC +void vte_terminal_set_scroll_speed(VteTerminal *terminal, + guint scroll_speed) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); ++#endif + /* Set the number of scrollback lines, above or at an internal minimum. */ _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 778b69b2..3992766f 100644 +index 570f8e69..a9f58696 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -993,6 +993,9 @@ try +@@ -1002,6 +1002,11 @@ try case PROP_REWRAP_ON_RESIZE: g_value_set_boolean (value, vte_terminal_get_rewrap_on_resize (terminal)); break; ++#if _VTE_GTK == 3 + case PROP_SCROLL_SPEED: + g_value_set_uint (value, impl->m_scroll_speed); + break; ++#endif case PROP_SCROLLBACK_LINES: g_value_set_uint (value, vte_terminal_get_scrollback_lines(terminal)); break; -@@ -1130,6 +1133,9 @@ try +@@ -1123,6 +1128,11 @@ try case PROP_REWRAP_ON_RESIZE: vte_terminal_set_rewrap_on_resize (terminal, g_value_get_boolean (value)); break; ++#if _VTE_GTK == 3 + case PROP_SCROLL_SPEED: + vte_terminal_set_scroll_speed (terminal, g_value_get_uint (value)); + break; ++#endif case PROP_SCROLLBACK_LINES: vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); break; -@@ -2246,6 +2252,21 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -2223,6 +2233,23 @@ vte_terminal_class_init(VteTerminalClass *klass) TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); ++#if _VTE_GTK == 3 + /** + * VteTerminal:scroll-speed: + * @@ -412,14 +445,16 @@ index 778b69b2..3992766f 100644 + 0, G_MAXUINT, + 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); ++#endif + /** * VteTerminal:scrollback-lines: * -@@ -5851,6 +5872,36 @@ catch (...) +@@ -5958,6 +5985,38 @@ catch (...) return -1; } ++#if _VTE_GTK == 3 +/** + * vte_terminal_set_scroll_speed: + * @terminal: a #VteTerminal @@ -449,90 +484,103 @@ index 778b69b2..3992766f 100644 +{ + vte::log_exception(); +} ++#endif + /** * vte_terminal_set_scrollback_lines: * @terminal: a #VteTerminal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 67c456b5..64ff8be8 100644 +index d5379b16..3f1ae86d 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh -@@ -86,6 +86,7 @@ enum { +@@ -88,6 +88,9 @@ enum { PROP_MOUSE_POINTER_AUTOHIDE, PROP_PTY, PROP_REWRAP_ON_RESIZE, ++#if _VTE_GTK == 3 + PROP_SCROLL_SPEED, ++#endif PROP_SCROLLBACK_LINES, PROP_SCROLL_ON_KEYSTROKE, PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 1e8a27f6..0e5a8ace 100644 +index 8dba726c..4629c95f 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -439,6 +439,7 @@ public: +@@ -428,6 +428,9 @@ public: bool m_fallback_scrolling{true}; bool m_scroll_on_output{false}; bool m_scroll_on_keystroke{true}; ++#if _VTE_GTK == 3 + guint m_scroll_speed; ++#endif vte::grid::row_t m_scrollback_lines{0}; inline auto scroll_limit_lower() const noexcept -@@ -1412,6 +1413,7 @@ public: +@@ -1385,6 +1388,9 @@ public: bool set_input_enabled(bool enabled); bool set_mouse_autohide(bool autohide); bool set_rewrap_on_resize(bool rewrap); ++#if _VTE_GTK == 3 + bool set_scroll_speed(unsigned int scroll_speed); ++#endif bool set_scrollback_lines(long lines); bool set_fallback_scrolling(bool set); auto fallback_scrolling() const noexcept { return m_fallback_scrolling; } -- -2.37.1 +2.37.3 -From 57e1446aa0085ecb194ef91b6a54a67f6005230c Mon Sep 17 00:00:00 2001 +From 10f3d37fdc465152b805e54d3217a61d69e4c255 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 Subject: [PATCH 05/11] Test the scroll-speed property https://bugzilla.redhat.com/show_bug.cgi?id=1103380 --- - src/app/app.cc | 4 ++++ - 1 file changed, 4 insertions(+) + src/app/app.cc | 10 ++++++++++ + 1 file changed, 10 insertions(+) diff --git a/src/app/app.cc b/src/app/app.cc -index 3c666816..2c2e8bde 100644 +index 88fe5f2f..49a1689d 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -119,6 +119,7 @@ public: +@@ -118,6 +118,9 @@ public: int verbosity{0}; double cell_height_scale{1.0}; double cell_width_scale{1.0}; ++#if _VTE_GTK == 3 + unsigned int scroll_speed{0}; ++#endif VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM}; VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK}; VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS}; -@@ -647,6 +648,8 @@ public: +@@ -700,6 +703,10 @@ 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 }, ++#if _VTE_GTK == 3 + { "scroll-speed", 0, 0, G_OPTION_ARG_INT, &scroll_speed, + "Specify the scroll speed", nullptr }, ++#endif { "scroll-unit-is-pixels", 0, 0, G_OPTION_ARG_NONE, &scroll_unit_is_pixels, "Use pixels as scroll unit", nullptr }, { "scrollback-lines", 'n', 0, G_OPTION_ARG_INT, &scrollback_lines, -@@ -2586,6 +2589,7 @@ vteapp_window_constructed(GObject *object) +@@ -2626,6 +2633,9 @@ 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); ++#if _VTE_GTK == 3 + vte_terminal_set_scroll_speed(window->terminal, options.scroll_speed); ++#endif vte_terminal_set_scroll_unit_is_pixels(window->terminal, options.scroll_unit_is_pixels); vte_terminal_set_scrollback_lines(window->terminal, options.scrollback_lines); vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); -- -2.37.1 +2.37.3 -From 6909335767cfbdee9a8e05949eef21f9cedffe20 Mon Sep 17 00:00:00 2001 +From d2f139cc2f440a390bec6438a4292b50213f5818 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 06/11] Support preexec notifications from an interactive shell @@ -561,22 +609,22 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 93fc18d2..77c50558 100644 +index e2723342..766b7624 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10306,6 +10306,12 @@ Terminal::emit_pending_signals() +@@ -10197,6 +10197,12 @@ Terminal::emit_pending_signals() + m_notification_summary.c_str(), m_notification_body.c_str()); } - ++ + 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); + } -+ + #endif + 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 50242223..01b44e23 100644 --- a/src/vte.sh.in @@ -594,16 +642,15 @@ index 50242223..01b44e23 100644 elif [[ -n "${ZSH_VERSION:-}" ]]; then diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index c1240e8a..eba96927 100644 +index 972c4a0c..8bdd3ccf 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -109,11 +109,12 @@ struct _VteTerminalClass { - void (*bell)(VteTerminal* terminal); +@@ -110,10 +110,11 @@ struct _VteTerminalClass { + #if _VTE_GTK == 3 void (*notification_received)(VteTerminal* terminal, const gchar *summary, const gchar *body); + void (*shell_preexec)(VteTerminal* terminal); - #if _VTE_GTK == 3 /* Compatibility padding due to fedora patches intruding on our ABI */ /*< private >*/ - gpointer _extra_padding[2]; @@ -612,21 +659,22 @@ index c1240e8a..eba96927 100644 /* Add new vfuncs here, and subtract from the padding below. */ diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 3992766f..4ef646d7 100644 +index a9f58696..797865db 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -1281,6 +1281,7 @@ vte_terminal_class_init(VteTerminalClass *klass) - klass->encoding_changed = NULL; +@@ -1263,6 +1263,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->char_size_changed = NULL; + #if _VTE_GTK == 3 klass->notification_received = NULL; + klass->shell_preexec = NULL; + #endif klass->window_title_changed = NULL; klass->icon_title_changed = NULL; - klass->selection_changed = NULL; -@@ -1384,6 +1385,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1367,6 +1368,23 @@ vte_terminal_class_init(VteTerminalClass *klass) + _vte_marshal_VOID__STRING_STRING, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); - ++ + /** + * VteTerminal::shell-preexec: + * @vteterminal: the object which received the signal @@ -643,39 +691,38 @@ index 3992766f..4ef646d7 100644 + NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); -+ + #endif + /** - * VteTerminal::window-title-changed: - * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 64ff8be8..179222a1 100644 +index 3f1ae86d..0c86fb6e 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh -@@ -52,6 +52,7 @@ enum { - SIGNAL_RESIZE_WINDOW, +@@ -53,6 +53,7 @@ enum { SIGNAL_RESTORE_WINDOW, SIGNAL_SELECTION_CHANGED, + #if _VTE_GTK == 3 + SIGNAL_SHELL_PREEXEC, SIGNAL_NOTIFICATION_RECEIVED, + #endif SIGNAL_WINDOW_TITLE_CHANGED, - LAST_SIGNAL diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 0e5a8ace..11965778 100644 +index 4629c95f..dfa3c0b9 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -707,6 +707,7 @@ public: - CWD = 1u << 1, +@@ -686,6 +686,7 @@ public: CWF = 1u << 2, + #if _VTE_GTK == 3 NOTIFICATION = 1u << 3, + SHELL_PREEXEC = 1u << 4, + #endif }; unsigned m_pending_changes{0}; - diff --git a/src/vteseq.cc b/src/vteseq.cc -index 772ba4f3..76b9329e 100644 +index dda487c4..f2c86b2c 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1433,6 +1433,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1402,6 +1402,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, m_notification_body = *token; return; } @@ -684,13 +731,13 @@ index 772ba4f3..76b9329e 100644 + m_pending_changes |= vte::to_integral(PendingChanges::SHELL_PREEXEC); + } } + #endif - bool -- -2.37.1 +2.37.3 -From 39c75a48973425aad1bf25f0181d49600c7d8119 Mon Sep 17 00:00:00 2001 +From 05425620f9e65704eec774cd567e15f5e385f89d Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 20 Apr 2018 18:21:53 +0200 Subject: [PATCH 07/11] Test the shell-preexec signal @@ -702,10 +749,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 1 file changed, 7 insertions(+) diff --git a/src/app/app.cc b/src/app/app.cc -index 2c2e8bde..a66b56f0 100644 +index 49a1689d..90b2dfe5 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -2256,6 +2256,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -2301,6 +2301,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -718,7 +765,7 @@ index 2c2e8bde..a66b56f0 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2553,6 +2559,7 @@ vteapp_window_constructed(GObject *object) +@@ -2598,6 +2604,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); @@ -727,10 +774,10 @@ index 2c2e8bde..a66b56f0 100644 /* Settings */ #if VTE_GTK == 3 -- -2.37.1 +2.37.3 -From bfb447be5a97cda7523719ab901c1ea6b0293a6b Mon Sep 17 00:00:00 2001 +From 57dd88ebfe1b3df1bafe7fd904dd0df7c1094f59 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:20:30 +0200 Subject: [PATCH 08/11] Support precmd notifications from an interactive shell @@ -751,30 +798,30 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 --- src/vte.cc | 6 ++++++ src/vte.sh.in | 2 +- - src/vte/vteterminal.h | 7 +------ + src/vte/vteterminal.h | 5 +---- src/vtegtk.cc | 18 ++++++++++++++++++ src/vtegtk.hh | 1 + src/vteinternal.hh | 1 + src/vteseq.cc | 4 +++- - 7 files changed, 31 insertions(+), 8 deletions(-) + 7 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 77c50558..604890e3 100644 +index 766b7624..6cef7b17 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10312,6 +10312,12 @@ Terminal::emit_pending_signals() +@@ -10203,6 +10203,12 @@ Terminal::emit_pending_signals() + "Emitting `shell-preexec'.\n"); g_signal_emit(freezer.get(), signals[SIGNAL_SHELL_PREEXEC], 0); } - ++ + 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); + } -+ + #endif + 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 01b44e23..877fe93d 100644 --- a/src/vte.sh.in @@ -789,38 +836,35 @@ index 01b44e23..877fe93d 100644 } diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index eba96927..c49f217e 100644 +index 8bdd3ccf..31bb3b75 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -109,14 +109,9 @@ struct _VteTerminalClass { - void (*bell)(VteTerminal* terminal); +@@ -110,11 +110,8 @@ struct _VteTerminalClass { + #if _VTE_GTK == 3 void (*notification_received)(VteTerminal* terminal, const gchar *summary, const gchar *body); + void (*shell_precmd)(VteTerminal* terminal); void (*shell_preexec)(VteTerminal* terminal); - --#if _VTE_GTK == 3 +- - /* Compatibility padding due to fedora patches intruding on our ABI */ - /*< private >*/ - gpointer _extra_padding[1]; --#endif /* _VTE_GTK == 3 */ -- - /* Add new vfuncs here, and subtract from the padding below. */ + #endif /* _VTE_GTK == 3 */ - /* Padding for future expansion. */ + /* Add new vfuncs here, and subtract from the padding below. */ diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 4ef646d7..54ed6fc1 100644 +index 797865db..bd3a8798 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -1281,6 +1281,7 @@ vte_terminal_class_init(VteTerminalClass *klass) - klass->encoding_changed = NULL; +@@ -1263,6 +1263,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->char_size_changed = NULL; + #if _VTE_GTK == 3 klass->notification_received = NULL; + klass->shell_precmd = NULL; klass->shell_preexec = NULL; + #endif klass->window_title_changed = NULL; - klass->icon_title_changed = NULL; -@@ -1385,6 +1386,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1369,6 +1370,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -845,34 +889,34 @@ index 4ef646d7..54ed6fc1 100644 * VteTerminal::shell-preexec: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 179222a1..c66aeda2 100644 +index 0c86fb6e..e871b946 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh -@@ -52,6 +52,7 @@ enum { - SIGNAL_RESIZE_WINDOW, +@@ -53,6 +53,7 @@ enum { SIGNAL_RESTORE_WINDOW, SIGNAL_SELECTION_CHANGED, + #if _VTE_GTK == 3 + SIGNAL_SHELL_PRECMD, SIGNAL_SHELL_PREEXEC, SIGNAL_NOTIFICATION_RECEIVED, - SIGNAL_WINDOW_TITLE_CHANGED, + #endif diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 11965778..d4a10935 100644 +index dfa3c0b9..b8e30d15 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -708,6 +708,7 @@ public: - CWF = 1u << 2, +@@ -687,6 +687,7 @@ public: + #if _VTE_GTK == 3 NOTIFICATION = 1u << 3, SHELL_PREEXEC = 1u << 4, + SHELL_PRECMD = 1u << 5, + #endif }; unsigned m_pending_changes{0}; - diff --git a/src/vteseq.cc b/src/vteseq.cc -index 76b9329e..fb958962 100644 +index f2c86b2c..bae18595 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1434,7 +1434,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1403,7 +1403,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, return; } @@ -884,10 +928,10 @@ index 76b9329e..fb958962 100644 } } -- -2.37.1 +2.37.3 -From d84dd319c31ffdcfd73b08750228efba34e226fb Mon Sep 17 00:00:00 2001 +From 089580a09de21160f871875fe960e895bc5b5bc2 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:30:48 +0200 Subject: [PATCH 09/11] Test the shell-precmd signal @@ -899,10 +943,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 1 file changed, 7 insertions(+) diff --git a/src/app/app.cc b/src/app/app.cc -index a66b56f0..9d02499b 100644 +index 90b2dfe5..5c4946c9 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -2256,6 +2256,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -2301,6 +2301,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -915,7 +959,7 @@ index a66b56f0..9d02499b 100644 static void shell_preexec_cb(VteTerminal *terminal) { -@@ -2559,6 +2565,7 @@ vteapp_window_constructed(GObject *object) +@@ -2604,6 +2610,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); @@ -924,10 +968,10 @@ index a66b56f0..9d02499b 100644 /* Settings */ -- -2.37.1 +2.37.3 -From 691fece42c52662dcf53b4bf5360ca0d48822580 Mon Sep 17 00:00:00 2001 +From 2e940b5a720dea9a06fd47862381f27f765f76dd Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 10 Jun 2019 20:30:18 +0200 Subject: [PATCH 10/11] Support tracking the active container inside the @@ -961,21 +1005,22 @@ agreed upon across multiple different terminal emulators [1]. [1] https://gitlab.freedesktop.org/terminal-wg/specifications/issues/17 --- 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, 193 insertions(+) + src/vte/vteterminal.h | 6 +++ + src/vtegtk.cc | 83 +++++++++++++++++++++++++++++++++++++++ + src/vtegtk.hh | 4 ++ + src/vteinternal.hh | 20 ++++++++++ + src/vteseq.cc | 90 +++++++++++++++++++++++++++++++++++++++++++ + 6 files changed, 211 insertions(+) diff --git a/src/vte.cc b/src/vte.cc -index 604890e3..fca21ddf 100644 +index 6cef7b17..21823424 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10331,6 +10331,14 @@ Terminal::emit_pending_signals() - m_window_title_pending.clear(); - } - +@@ -10209,6 +10209,14 @@ Terminal::emit_pending_signals() + "Emitting `shell-precmd'.\n"); + g_signal_emit(freezer.get(), signals[SIGNAL_SHELL_PRECMD], 0); + } ++ + if (m_pending_changes & vte::to_integral(PendingChanges::CONTAINERS)) { + _vte_debug_print(VTE_DEBUG_SIGNALS, + "Notifying `current-container-name' and `current-container-runtime'.\n"); @@ -983,46 +1028,50 @@ index 604890e3..fca21ddf 100644 + g_object_notify_by_pspec(freezer.get(), pspecs[PROP_CURRENT_CONTAINER_NAME]); + g_object_notify_by_pspec(freezer.get(), pspecs[PROP_CURRENT_CONTAINER_RUNTIME]); + } -+ - 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); + #endif + + if (m_pending_changes & vte::to_integral(PendingChanges::TITLE)) { diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index c49f217e..c490f157 100644 +index 31bb3b75..12ecf181 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -514,6 +514,10 @@ glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VT +@@ -551,6 +551,12 @@ _VTE_PUBLIC + glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); _VTE_PUBLIC const char *vte_terminal_get_window_title(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); - _VTE_PUBLIC ++#if _VTE_GTK == 3 ++_VTE_PUBLIC +const char *vte_terminal_get_current_container_name(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); +_VTE_PUBLIC +const char *vte_terminal_get_current_container_runtime(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); -+_VTE_PUBLIC ++#endif + _VTE_PUBLIC const char *vte_terminal_get_current_directory_uri(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); _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 54ed6fc1..b2ec8f40 100644 +index bd3a8798..0457b2b9 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -942,6 +942,12 @@ try +@@ -951,6 +951,14 @@ try case PROP_CURSOR_BLINK_MODE: g_value_set_enum (value, vte_terminal_get_cursor_blink_mode (terminal)); break; ++#if _VTE_GTK == 3 + case PROP_CURRENT_CONTAINER_NAME: + g_value_set_string (value, vte_terminal_get_current_container_name (terminal)); + break; + case PROP_CURRENT_CONTAINER_RUNTIME: + g_value_set_string (value, vte_terminal_get_current_container_runtime (terminal)); + break; ++#endif case PROP_CURRENT_DIRECTORY_URI: g_value_set_string (value, vte_terminal_get_current_directory_uri (terminal)); break; -@@ -2393,6 +2399,27 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -2376,6 +2384,29 @@ vte_terminal_class_init(VteTerminalClass *klass) NULL, (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); ++#if _VTE_GTK == 3 + /** + * VteTerminal:current-container-name: + * @@ -1043,14 +1092,16 @@ index 54ed6fc1..b2ec8f40 100644 + g_param_spec_string ("current-container-runtime", NULL, NULL, + NULL, + (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); ++#endif + /** * VteTerminal:current-directory-uri: * -@@ -5022,6 +5049,56 @@ catch (...) +@@ -5129,6 +5160,58 @@ catch (...) return -1; } ++#if _VTE_GTK == 3 +/** + * vte_terminal_get_current_container_name: + * @terminal: a #VteTerminal @@ -1100,39 +1151,45 @@ index 54ed6fc1..b2ec8f40 100644 + vte::log_exception(); + return NULL; +} ++#endif + /** * vte_terminal_get_current_directory_uri: * @terminal: a #VteTerminal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index c66aeda2..cf572de4 100644 +index e871b946..0a31d205 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh -@@ -72,6 +72,8 @@ enum { +@@ -74,6 +74,10 @@ enum { PROP_CJK_AMBIGUOUS_WIDTH, PROP_CURSOR_BLINK_MODE, PROP_CURSOR_SHAPE, ++#if _VTE_GTK == 3 + PROP_CURRENT_CONTAINER_NAME, + PROP_CURRENT_CONTAINER_RUNTIME, ++#endif PROP_CURRENT_DIRECTORY_URI, PROP_CURRENT_FILE_URI, PROP_DELETE_BINDING, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index d4a10935..0f219dc6 100644 +index b8e30d15..0c52442b 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -59,6 +59,7 @@ +@@ -59,6 +59,9 @@ #include #include #include ++#if _VTE_GTK == 3 +#include ++#endif #include #include #include -@@ -114,6 +115,18 @@ typedef enum _VteCharacterReplacement { +@@ -110,6 +113,20 @@ typedef enum _VteCharacterReplacement { VTE_CHARACTER_REPLACEMENT_LINE_DRAWING } VteCharacterReplacement; ++#if _VTE_GTK == 3 +struct VteContainer { +public: + VteContainer(const std::string &name, const std::string &runtime) : @@ -1144,50 +1201,57 @@ index d4a10935..0f219dc6 100644 + std::string m_name; + std::string m_runtime; +}; ++#endif + typedef struct _VtePaletteColor { struct { vte::color::rgb color; -@@ -689,6 +702,8 @@ public: - gboolean m_cursor_moved_pending; +@@ -666,6 +683,8 @@ public: gboolean m_contents_changed_pending; + #if _VTE_GTK == 3 + std::stack m_containers; + /* desktop notification */ std::string m_notification_summary; std::string m_notification_body; -@@ -709,6 +724,7 @@ public: +@@ -688,6 +707,7 @@ public: NOTIFICATION = 1u << 3, SHELL_PREEXEC = 1u << 4, SHELL_PRECMD = 1u << 5, + CONTAINERS = 1u << 6, + #endif }; unsigned m_pending_changes{0}; - diff --git a/src/vteseq.cc b/src/vteseq.cc -index fb958962..5b36dd9b 100644 +index bae18595..8a7f5b34 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -19,10 +19,14 @@ +@@ -19,6 +19,7 @@ #include "config.h" -+#include + #include #include #include - #include +@@ -39,6 +40,11 @@ + #define ST_C0 _VTE_CAP_ST + + #include ++#if _VTE_GTK == 3 ++#include +#include +#include - #ifdef HAVE_SYS_SYSLIMITS_H - #include - #endif -@@ -1416,6 +1420,88 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, ++#endif + + using namespace std::literals; + +@@ -1385,6 +1391,90 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, if (token == endtoken) return; ++#if _VTE_GTK == 3 + if (*token == "container") { + ++token; + @@ -1269,15 +1333,16 @@ index fb958962..5b36dd9b 100644 + + return; + } ++#endif + if (*token == "notify") { ++token; -- -2.37.1 +2.37.3 -From 09b7ad967e395ef95f3428982596a2d80a0097e1 Mon Sep 17 00:00:00 2001 +From f15bfe821e0deefcf62d649c27e73b802f5338f0 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 @@ -1293,10 +1358,10 @@ This reverts commit 73713ec0644e232fb740170e399282be778d97f9. 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index fca21ddf..eeb29eab 100644 +index 21823424..20767b61 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -6566,10 +6566,7 @@ Terminal::maybe_end_selection() +@@ -6525,10 +6525,7 @@ Terminal::maybe_end_selection() /* * Terminal::select_all: * @@ -1308,7 +1373,7 @@ index fca21ddf..eeb29eab 100644 */ void Terminal::select_all() -@@ -6578,8 +6575,8 @@ Terminal::select_all() +@@ -6537,8 +6534,8 @@ Terminal::select_all() m_selecting_had_delta = TRUE; @@ -1320,5 +1385,5 @@ index fca21ddf..eeb29eab 100644 _vte_debug_print(VTE_DEBUG_SELECTION, "Selecting *all* text.\n"); -- -2.37.1 +2.37.3 diff --git a/vte291.spec b/vte291.spec index df8b019..5b48967 100644 --- a/vte291.spec +++ b/vte291.spec @@ -12,7 +12,7 @@ Name: vte291 Version: 0.70.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK+ 3 terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Sep 26 2022 David King - 0.70.0-2 +- Fix GTK4 ABI padding (#2122922) + * Mon Sep 19 2022 Kalev Lember - 0.70.0-1 - Update to 0.70.0 From 8ab9519d87d269e3c2b4b2803bd90377158672c3 Mon Sep 17 00:00:00 2001 From: David King Date: Fri, 28 Oct 2022 08:38:30 +0100 Subject: [PATCH 094/164] Update to 0.70.1 --- .gitignore | 1 + sources | 2 +- vte291.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 63efb75..2f9eedf 100644 --- a/.gitignore +++ b/.gitignore @@ -85,3 +85,4 @@ /vte-0.69.90.tar.xz /vte-0.69.92.tar.bz2 /vte-0.70.0.tar.xz +/vte-0.70.1.tar.xz diff --git a/sources b/sources index 229da36..c07e47c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.70.0.tar.xz) = 9058a844b68a16e9b3f7a5808e46b7adea0743063bee33a4d6239d42d2e6b2c26820254e3ac1615d00865e5a6dd71737fa6bd4ce604977a18fdafa7178303e99 +SHA512 (vte-0.70.1.tar.xz) = dd4ff3fd941d8adb761eea8b12b5b44c0ddab67681c8b28fb106096530906903cbf29c4a6f8a895e04232da3661c42b008c0c8f060410a54d22fd240741d6742 diff --git a/vte291.spec b/vte291.spec index 5b48967..430b0c6 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,8 +11,8 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.70.0 -Release: 2%{?dist} +Version: 0.70.1 +Release: 1%{?dist} Summary: GTK+ 3 terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Fri Oct 28 2022 David King - 0.70.1-1 +- Update to 0.70.1 + * Mon Sep 26 2022 David King - 0.70.0-2 - Fix GTK4 ABI padding (#2122922) From fb6fa5db7d8234006639834701818736f1ae13c1 Mon Sep 17 00:00:00 2001 From: David King Date: Tue, 6 Dec 2022 13:49:25 +0000 Subject: [PATCH 095/164] Update to 0.70.2 --- .gitignore | 1 + sources | 2 +- vte291.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 2f9eedf..7773a58 100644 --- a/.gitignore +++ b/.gitignore @@ -86,3 +86,4 @@ /vte-0.69.92.tar.bz2 /vte-0.70.0.tar.xz /vte-0.70.1.tar.xz +/vte-0.70.2.tar.xz diff --git a/sources b/sources index c07e47c..91ac12c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.70.1.tar.xz) = dd4ff3fd941d8adb761eea8b12b5b44c0ddab67681c8b28fb106096530906903cbf29c4a6f8a895e04232da3661c42b008c0c8f060410a54d22fd240741d6742 +SHA512 (vte-0.70.2.tar.xz) = ca54686a3e6cd8166be7f2d7fe93aaecde0845764911b56a6ea48918041b39d13da1ad9e2660cfac27564bda3236be001ca7dc87ab4576339c50fc2d3b0238b5 diff --git a/vte291.spec b/vte291.spec index 430b0c6..5f33068 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.70.1 +Version: 0.70.2 Release: 1%{?dist} Summary: GTK+ 3 terminal emulator library @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Tue Dec 06 2022 David King - 0.70.2-1 +- Update to 0.70.2 + * Fri Oct 28 2022 David King - 0.70.1-1 - Update to 0.70.1 From 3e4ce78c9c6f245d62dff2fce68ad9dad9946ba8 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Sat, 31 Dec 2022 03:28:47 +0000 Subject: [PATCH 096/164] Rebuild for ICU 72 --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index 5f33068..925e514 100644 --- a/vte291.spec +++ b/vte291.spec @@ -12,7 +12,7 @@ Name: vte291 Version: 0.70.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK+ 3 terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Sat Dec 31 2022 Pete Walter - 0.70.2-2 +- Rebuild for ICU 72 + * Tue Dec 06 2022 David King - 0.70.2-1 - Update to 0.70.2 From 90aa5085bce54331550473aaae023ecf7de08792 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 21 Jan 2023 06:31:52 +0000 Subject: [PATCH 097/164] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index 925e514..56ce935 100644 --- a/vte291.spec +++ b/vte291.spec @@ -12,7 +12,7 @@ Name: vte291 Version: 0.70.2 -Release: 2%{?dist} +Release: 3%{?dist} Summary: GTK+ 3 terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Sat Jan 21 2023 Fedora Release Engineering - 0.70.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Sat Dec 31 2022 Pete Walter - 0.70.2-2 - Rebuild for ICU 72 From 4647c6feb3bee06e80f842b7b4a90de2eff87805 Mon Sep 17 00:00:00 2001 From: David King Date: Wed, 15 Feb 2023 18:37:37 +0000 Subject: [PATCH 098/164] Update to 0.71.92 --- .gitignore | 1 + sources | 2 +- vte291.spec | 11 +++++++---- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 7773a58..c2b9ed1 100644 --- a/.gitignore +++ b/.gitignore @@ -87,3 +87,4 @@ /vte-0.70.0.tar.xz /vte-0.70.1.tar.xz /vte-0.70.2.tar.xz +/vte-0.71.92.tar.xz diff --git a/sources b/sources index 91ac12c..3ca1d8d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.70.2.tar.xz) = ca54686a3e6cd8166be7f2d7fe93aaecde0845764911b56a6ea48918041b39d13da1ad9e2660cfac27564bda3236be001ca7dc87ab4576339c50fc2d3b0238b5 +SHA512 (vte-0.71.92.tar.xz) = 7711607b4a0a28bdcf0d73be46dff206c40baa4b5e0b32c32b517114e9fbe2050a76150d5da48429644dc7765172101a910cdd74166c7c28cea07e0af6ca56a3 diff --git a/vte291.spec b/vte291.spec index 56ce935..f6ab735 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,15 +11,15 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.70.2 -Release: 3%{?dist} +Version: 0.71.92 +Release: 1%{?dist} Summary: GTK+ 3 terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources -License: LGPLv3+ and MIT +License: GPL-3.0-or-later AND LGPL-3.0-or-later and MIT-open-group AND CC-BY-4.0 URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://download.gnome.org/sources/vte/0.70/vte-%{version}.tar.xz +Source0: https://download.gnome.org/sources/vte/0.71/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Wed Feb 15 2023 David King - 0.71.92-1 +- Update to 0.71.92 + * Sat Jan 21 2023 Fedora Release Engineering - 0.70.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild From de03576168f1ec4beeb7330239f4debf3234b842 Mon Sep 17 00:00:00 2001 From: David King Date: Thu, 9 Mar 2023 12:01:10 +0000 Subject: [PATCH 099/164] Update to 0.71.99 --- .gitignore | 1 + sources | 2 +- vte291.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index c2b9ed1..070164c 100644 --- a/.gitignore +++ b/.gitignore @@ -88,3 +88,4 @@ /vte-0.70.1.tar.xz /vte-0.70.2.tar.xz /vte-0.71.92.tar.xz +/vte-0.71.99.tar.xz diff --git a/sources b/sources index 3ca1d8d..679af83 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.71.92.tar.xz) = 7711607b4a0a28bdcf0d73be46dff206c40baa4b5e0b32c32b517114e9fbe2050a76150d5da48429644dc7765172101a910cdd74166c7c28cea07e0af6ca56a3 +SHA512 (vte-0.71.99.tar.xz) = 3ff6d924a3921737e9e1d29d006c3d5bfa1114621f0b1b403406c6ceba982661d21d91f65fc9eeb89958302610ca5f8a8f41421a1fd849817f62d3465622026f diff --git a/vte291.spec b/vte291.spec index f6ab735..5ba6e5e 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.71.92 +Version: 0.71.99 Release: 1%{?dist} Summary: GTK+ 3 terminal emulator library @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Thu Mar 09 2023 David King - 0.71.99-1 +- Update to 0.71.99 + * Wed Feb 15 2023 David King - 0.71.92-1 - Update to 0.71.92 From 44a011ad2c2c775c6c8d5de6e7af4e13eb334333 Mon Sep 17 00:00:00 2001 From: David King Date: Mon, 20 Mar 2023 12:02:22 +0000 Subject: [PATCH 100/164] Update to 0.72.0 (#2179642) --- .gitignore | 2 + sources | 2 +- vte291-cntnr-precmd-preexec-scroll.patch | 153 ++++++++++++----------- vte291.spec | 7 +- 4 files changed, 86 insertions(+), 78 deletions(-) diff --git a/.gitignore b/.gitignore index 070164c..8dd4aac 100644 --- a/.gitignore +++ b/.gitignore @@ -89,3 +89,5 @@ /vte-0.70.2.tar.xz /vte-0.71.92.tar.xz /vte-0.71.99.tar.xz +/vte-0.72.0.tar.bz2 +/vte-0.72.0.tar.xz diff --git a/sources b/sources index 679af83..c63a6c3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.71.99.tar.xz) = 3ff6d924a3921737e9e1d29d006c3d5bfa1114621f0b1b403406c6ceba982661d21d91f65fc9eeb89958302610ca5f8a8f41421a1fd849817f62d3465622026f +SHA512 (vte-0.72.0.tar.xz) = df6713b260491e55c6c9f92842d62020711d77c81ee67f41f79182e436f83c588e8fb87b6d2d07e33ba561f6544274cae895a9d5a0977fcbf48bece55579a42f diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index dbc727f..06baac5 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,4 +1,4 @@ -From 3354db2ca10487dd6ced2c54130b12e3a7bc53f8 Mon Sep 17 00:00:00 2001 +From 229a985c1ce90d5a7b493dad1261dd72a25e910c Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 01/11] Add sequences and signals for desktop notification @@ -36,10 +36,10 @@ index 241128c3..4412cf3d 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index a8671845..77533d82 100644 +index 92b19fc8..03868606 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10164,6 +10164,16 @@ Terminal::emit_pending_signals() +@@ -10191,6 +10191,16 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); @@ -57,7 +57,7 @@ index a8671845..77533d82 100644 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 78176f97..ac762498 100644 +index 69b26ac3..13caec60 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -109,9 +109,11 @@ struct _VteTerminalClass { @@ -74,10 +74,10 @@ index 78176f97..ac762498 100644 /* Add new vfuncs here, and subtract from the padding below. */ diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 3945ba67..570f8e69 100644 +index 59b74367..e9af14d1 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -1251,6 +1251,9 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1263,6 +1263,9 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->child_exited = NULL; klass->encoding_changed = NULL; klass->char_size_changed = NULL; @@ -87,7 +87,7 @@ index 3945ba67..570f8e69 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -1334,6 +1337,28 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1346,6 +1349,28 @@ vte_terminal_class_init(VteTerminalClass *klass) G_OBJECT_CLASS_TYPE(klass), g_cclosure_marshal_VOID__INTv); @@ -233,10 +233,10 @@ index 874d2405..dda487c4 100644 default: break; -- -2.37.3 +2.40.0 -From ca0549eafe1fd03d11a632d07c0fab7fd4b333ac Mon Sep 17 00:00:00 2001 +From 74a4ad9c4472c9c628945c336ca1bfb535b105d6 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 Subject: [PATCH 02/11] vte.sh: Emit OSC 777 from PROMPT_COMMAND @@ -269,20 +269,20 @@ index 242d6c42..50242223 100644 } -- -2.37.3 +2.40.0 -From b281275ed320f9a2f82d6e436a397ad005dafce0 Mon Sep 17 00:00:00 2001 +From e67e4455cc51f9d272abd17770ae3cd395932695 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 Subject: [PATCH 03/11] Test the notification-received signal --- - src/app/app.cc | 10 ++++++++++ - 1 file changed, 10 insertions(+) + src/app/app.cc | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/app/app.cc b/src/app/app.cc -index a69d9327..88fe5f2f 100644 +index a69d9327..29e0e953 100644 --- a/src/app/app.cc +++ b/src/app/app.cc @@ -2286,6 +2286,14 @@ window_window_title_changed_cb(VteTerminal* terminal, @@ -300,20 +300,23 @@ index a69d9327..88fe5f2f 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2582,6 +2590,8 @@ vteapp_window_constructed(GObject *object) +@@ -2582,8 +2590,10 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); +- /* Settings */ + #if VTE_GTK == 3 + g_signal_connect(window->terminal, "notification-received", G_CALLBACK(notification_received_cb), NULL); + - /* Settings */ - #if VTE_GTK == 3 ++ /* Settings */ if (options.no_double_buffer) { + G_GNUC_BEGIN_IGNORE_DEPRECATIONS; + gtk_widget_set_double_buffered(GTK_WIDGET(window->terminal), false); -- -2.37.3 +2.40.0 -From 2832ac1e0bf8eb3e0147b0803637765a4b5ac832 Mon Sep 17 00:00:00 2001 +From 2514b0691278b74cab734cf29a47c7a86b138f5d Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 Subject: [PATCH 04/11] Add a property to configure the scroll speed @@ -331,10 +334,10 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1103380 5 files changed, 99 insertions(+) diff --git a/src/vte.cc b/src/vte.cc -index 77533d82..e2723342 100644 +index 03868606..1c9abbab 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9364,6 +9364,9 @@ vte_cairo_get_clip_region(cairo_t *cr) +@@ -9391,6 +9391,9 @@ vte_cairo_get_clip_region(cairo_t *cr) bool Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) { @@ -344,7 +347,7 @@ index 77533d82..e2723342 100644 gdouble v; gint cnt, i; int button; -@@ -9398,7 +9401,17 @@ Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) +@@ -9425,7 +9428,17 @@ Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) return true; } @@ -362,7 +365,7 @@ index 77533d82..e2723342 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -9708,6 +9721,18 @@ Terminal::decscusr_cursor_shape() const noexcept +@@ -9735,6 +9748,18 @@ Terminal::decscusr_cursor_shape() const noexcept } } @@ -382,7 +385,7 @@ index 77533d82..e2723342 100644 Terminal::set_scrollback_lines(long lines) { diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index ac762498..972c4a0c 100644 +index 13caec60..5985dda2 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -330,6 +330,12 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, @@ -399,10 +402,10 @@ index ac762498..972c4a0c 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 570f8e69..a9f58696 100644 +index e9af14d1..835470f7 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -1002,6 +1002,11 @@ try +@@ -1014,6 +1014,11 @@ try case PROP_REWRAP_ON_RESIZE: g_value_set_boolean (value, vte_terminal_get_rewrap_on_resize (terminal)); break; @@ -414,7 +417,7 @@ index 570f8e69..a9f58696 100644 case PROP_SCROLLBACK_LINES: g_value_set_uint (value, vte_terminal_get_scrollback_lines(terminal)); break; -@@ -1123,6 +1128,11 @@ try +@@ -1135,6 +1140,11 @@ try case PROP_REWRAP_ON_RESIZE: vte_terminal_set_rewrap_on_resize (terminal, g_value_get_boolean (value)); break; @@ -426,7 +429,7 @@ index 570f8e69..a9f58696 100644 case PROP_SCROLLBACK_LINES: vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); break; -@@ -2223,6 +2233,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -2235,6 +2245,23 @@ vte_terminal_class_init(VteTerminalClass *klass) TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -450,7 +453,7 @@ index 570f8e69..a9f58696 100644 /** * VteTerminal:scrollback-lines: * -@@ -5958,6 +5985,38 @@ catch (...) +@@ -6060,6 +6087,38 @@ catch (...) return -1; } @@ -528,10 +531,10 @@ index 8dba726c..4629c95f 100644 bool set_fallback_scrolling(bool set); auto fallback_scrolling() const noexcept { return m_fallback_scrolling; } -- -2.37.3 +2.40.0 -From 10f3d37fdc465152b805e54d3217a61d69e4c255 Mon Sep 17 00:00:00 2001 +From 431763fb3dc23ffc0144c8739d9b898bf7a436f4 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 Subject: [PATCH 05/11] Test the scroll-speed property @@ -542,7 +545,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1103380 1 file changed, 10 insertions(+) diff --git a/src/app/app.cc b/src/app/app.cc -index 88fe5f2f..49a1689d 100644 +index 29e0e953..a3cc9257 100644 --- a/src/app/app.cc +++ b/src/app/app.cc @@ -118,6 +118,9 @@ public: @@ -577,10 +580,10 @@ index 88fe5f2f..49a1689d 100644 vte_terminal_set_scrollback_lines(window->terminal, options.scrollback_lines); vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); -- -2.37.3 +2.40.0 -From d2f139cc2f440a390bec6438a4292b50213f5818 Mon Sep 17 00:00:00 2001 +From e20d22a23be7383f8114dc59598be6c8a9bb73a0 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 06/11] Support preexec notifications from an interactive shell @@ -609,10 +612,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index e2723342..766b7624 100644 +index 1c9abbab..32d3315a 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10197,6 +10197,12 @@ Terminal::emit_pending_signals() +@@ -10224,6 +10224,12 @@ Terminal::emit_pending_signals() m_notification_summary.c_str(), m_notification_body.c_str()); } @@ -642,7 +645,7 @@ index 50242223..01b44e23 100644 elif [[ -n "${ZSH_VERSION:-}" ]]; then diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 972c4a0c..8bdd3ccf 100644 +index 5985dda2..d6721a52 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -110,10 +110,11 @@ struct _VteTerminalClass { @@ -659,10 +662,10 @@ index 972c4a0c..8bdd3ccf 100644 /* Add new vfuncs here, and subtract from the padding below. */ diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index a9f58696..797865db 100644 +index 835470f7..8dd7ea50 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -1263,6 +1263,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1275,6 +1275,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->char_size_changed = NULL; #if _VTE_GTK == 3 klass->notification_received = NULL; @@ -670,7 +673,7 @@ index a9f58696..797865db 100644 #endif klass->window_title_changed = NULL; klass->icon_title_changed = NULL; -@@ -1367,6 +1368,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1379,6 +1380,23 @@ vte_terminal_class_init(VteTerminalClass *klass) _vte_marshal_VOID__STRING_STRING, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -734,10 +737,10 @@ index dda487c4..f2c86b2c 100644 #endif -- -2.37.3 +2.40.0 -From 05425620f9e65704eec774cd567e15f5e385f89d Mon Sep 17 00:00:00 2001 +From b3b23900327e439b50b29372ee89ce887e1c4d06 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 20 Apr 2018 18:21:53 +0200 Subject: [PATCH 07/11] Test the shell-preexec signal @@ -749,7 +752,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 1 file changed, 7 insertions(+) diff --git a/src/app/app.cc b/src/app/app.cc -index 49a1689d..90b2dfe5 100644 +index a3cc9257..813b6d1d 100644 --- a/src/app/app.cc +++ b/src/app/app.cc @@ -2301,6 +2301,12 @@ notification_received_cb(VteTerminal *terminal, @@ -765,19 +768,19 @@ index 49a1689d..90b2dfe5 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2598,6 +2604,7 @@ vteapp_window_constructed(GObject *object) - g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); +@@ -2599,6 +2605,7 @@ vteapp_window_constructed(GObject *object) + #if VTE_GTK == 3 g_signal_connect(window->terminal, "notification-received", G_CALLBACK(notification_received_cb), NULL); + g_signal_connect(window->terminal, "shell-preexec", G_CALLBACK(shell_preexec_cb), NULL); /* Settings */ - #if VTE_GTK == 3 + if (options.no_double_buffer) { -- -2.37.3 +2.40.0 -From 57dd88ebfe1b3df1bafe7fd904dd0df7c1094f59 Mon Sep 17 00:00:00 2001 +From 2058ed67cd3d427fb06a25c58c69bf9d9ae35a5e Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:20:30 +0200 Subject: [PATCH 08/11] Support precmd notifications from an interactive shell @@ -806,10 +809,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 766b7624..6cef7b17 100644 +index 32d3315a..98e60fcc 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10203,6 +10203,12 @@ Terminal::emit_pending_signals() +@@ -10230,6 +10230,12 @@ Terminal::emit_pending_signals() "Emitting `shell-preexec'.\n"); g_signal_emit(freezer.get(), signals[SIGNAL_SHELL_PREEXEC], 0); } @@ -836,7 +839,7 @@ index 01b44e23..877fe93d 100644 } diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 8bdd3ccf..31bb3b75 100644 +index d6721a52..e488dc40 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -110,11 +110,8 @@ struct _VteTerminalClass { @@ -853,10 +856,10 @@ index 8bdd3ccf..31bb3b75 100644 /* Add new vfuncs here, and subtract from the padding below. */ diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 797865db..bd3a8798 100644 +index 8dd7ea50..00045f3a 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -1263,6 +1263,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1275,6 +1275,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->char_size_changed = NULL; #if _VTE_GTK == 3 klass->notification_received = NULL; @@ -864,7 +867,7 @@ index 797865db..bd3a8798 100644 klass->shell_preexec = NULL; #endif klass->window_title_changed = NULL; -@@ -1369,6 +1370,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1381,6 +1382,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -928,10 +931,10 @@ index f2c86b2c..bae18595 100644 } } -- -2.37.3 +2.40.0 -From 089580a09de21160f871875fe960e895bc5b5bc2 Mon Sep 17 00:00:00 2001 +From 468a91b1d8fe95f3bd814361777dd171b9de3df6 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:30:48 +0200 Subject: [PATCH 09/11] Test the shell-precmd signal @@ -943,7 +946,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 1 file changed, 7 insertions(+) diff --git a/src/app/app.cc b/src/app/app.cc -index 90b2dfe5..5c4946c9 100644 +index 813b6d1d..eb962e86 100644 --- a/src/app/app.cc +++ b/src/app/app.cc @@ -2301,6 +2301,12 @@ notification_received_cb(VteTerminal *terminal, @@ -959,19 +962,19 @@ index 90b2dfe5..5c4946c9 100644 static void shell_preexec_cb(VteTerminal *terminal) { -@@ -2604,6 +2610,7 @@ vteapp_window_constructed(GObject *object) - g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); +@@ -2605,6 +2611,7 @@ vteapp_window_constructed(GObject *object) + #if VTE_GTK == 3 g_signal_connect(window->terminal, "notification-received", G_CALLBACK(notification_received_cb), NULL); + g_signal_connect(window->terminal, "shell-precmd", G_CALLBACK(shell_precmd_cb), NULL); g_signal_connect(window->terminal, "shell-preexec", G_CALLBACK(shell_preexec_cb), NULL); /* Settings */ -- -2.37.3 +2.40.0 -From 2e940b5a720dea9a06fd47862381f27f765f76dd Mon Sep 17 00:00:00 2001 +From 329db6eea1479a91f7de428d0b97173f67348b7c Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 10 Jun 2019 20:30:18 +0200 Subject: [PATCH 10/11] Support tracking the active container inside the @@ -1013,10 +1016,10 @@ agreed upon across multiple different terminal emulators [1]. 6 files changed, 211 insertions(+) diff --git a/src/vte.cc b/src/vte.cc -index 6cef7b17..21823424 100644 +index 98e60fcc..92ab5711 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10209,6 +10209,14 @@ Terminal::emit_pending_signals() +@@ -10236,6 +10236,14 @@ Terminal::emit_pending_signals() "Emitting `shell-precmd'.\n"); g_signal_emit(freezer.get(), signals[SIGNAL_SHELL_PRECMD], 0); } @@ -1032,10 +1035,10 @@ index 6cef7b17..21823424 100644 if (m_pending_changes & vte::to_integral(PendingChanges::TITLE)) { diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 31bb3b75..12ecf181 100644 +index e488dc40..b1c70824 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -551,6 +551,12 @@ _VTE_PUBLIC +@@ -566,6 +566,12 @@ _VTE_PUBLIC glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); _VTE_PUBLIC const char *vte_terminal_get_window_title(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); @@ -1049,10 +1052,10 @@ index 31bb3b75..12ecf181 100644 const char *vte_terminal_get_current_directory_uri(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); _VTE_PUBLIC diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index bd3a8798..0457b2b9 100644 +index 00045f3a..83ea636e 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -951,6 +951,14 @@ try +@@ -963,6 +963,14 @@ try case PROP_CURSOR_BLINK_MODE: g_value_set_enum (value, vte_terminal_get_cursor_blink_mode (terminal)); break; @@ -1067,7 +1070,7 @@ index bd3a8798..0457b2b9 100644 case PROP_CURRENT_DIRECTORY_URI: g_value_set_string (value, vte_terminal_get_current_directory_uri (terminal)); break; -@@ -2376,6 +2384,29 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -2388,6 +2396,29 @@ vte_terminal_class_init(VteTerminalClass *klass) NULL, (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -1097,7 +1100,7 @@ index bd3a8798..0457b2b9 100644 /** * VteTerminal:current-directory-uri: * -@@ -5129,6 +5160,58 @@ catch (...) +@@ -5204,6 +5235,58 @@ catch (...) return -1; } @@ -1339,10 +1342,10 @@ index bae18595..8a7f5b34 100644 ++token; -- -2.37.3 +2.40.0 -From f15bfe821e0deefcf62d649c27e73b802f5338f0 Mon Sep 17 00:00:00 2001 +From d1db595d6e91bd21dfc4ced7d6ae81ad851a20e9 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 @@ -1358,10 +1361,10 @@ This reverts commit 73713ec0644e232fb740170e399282be778d97f9. 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 21823424..20767b61 100644 +index 92ab5711..9527148c 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -6525,10 +6525,7 @@ Terminal::maybe_end_selection() +@@ -6552,10 +6552,7 @@ Terminal::maybe_end_selection() /* * Terminal::select_all: * @@ -1373,7 +1376,7 @@ index 21823424..20767b61 100644 */ void Terminal::select_all() -@@ -6537,8 +6534,8 @@ Terminal::select_all() +@@ -6564,8 +6561,8 @@ Terminal::select_all() m_selecting_had_delta = TRUE; @@ -1385,5 +1388,5 @@ index 21823424..20767b61 100644 _vte_debug_print(VTE_DEBUG_SELECTION, "Selecting *all* text.\n"); -- -2.37.3 +2.40.0 diff --git a/vte291.spec b/vte291.spec index 5ba6e5e..7097c27 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.71.99 +Version: 0.72.0 Release: 1%{?dist} Summary: GTK+ 3 terminal emulator library @@ -19,7 +19,7 @@ Summary: GTK+ 3 terminal emulator library License: GPL-3.0-or-later AND LGPL-3.0-or-later and MIT-open-group AND CC-BY-4.0 URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://download.gnome.org/sources/vte/0.71/vte-%{version}.tar.xz +Source0: https://download.gnome.org/sources/vte/0.72/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Mar 20 2023 David King - 0.72.0-1 +- Update to 0.72.0 (#2179642) + * Thu Mar 09 2023 David King - 0.71.99-1 - Update to 0.71.99 From 3a1f2a7247281424c850a653c4b06cca3c7842c2 Mon Sep 17 00:00:00 2001 From: David King Date: Sun, 16 Apr 2023 14:12:19 +0100 Subject: [PATCH 101/164] Update to 0.72.1 --- .gitignore | 1 + sources | 2 +- vte291.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 8dd4aac..b6fc37f 100644 --- a/.gitignore +++ b/.gitignore @@ -91,3 +91,4 @@ /vte-0.71.99.tar.xz /vte-0.72.0.tar.bz2 /vte-0.72.0.tar.xz +/vte-0.72.1.tar.bz2 diff --git a/sources b/sources index c63a6c3..f0ec00b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.72.0.tar.xz) = df6713b260491e55c6c9f92842d62020711d77c81ee67f41f79182e436f83c588e8fb87b6d2d07e33ba561f6544274cae895a9d5a0977fcbf48bece55579a42f +SHA512 (vte-0.72.1.tar.bz2) = a5655d2d2602183cbda1050003d7cf883e427c8e00976af4ee2685f43530d87169e31a3b9597133d14dffdc95f20f9ca1488186d8463997a2672510f5a95d145 diff --git a/vte291.spec b/vte291.spec index 7097c27..430d1ff 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.72.0 +Version: 0.72.1 Release: 1%{?dist} Summary: GTK+ 3 terminal emulator library @@ -19,7 +19,7 @@ Summary: GTK+ 3 terminal emulator library License: GPL-3.0-or-later AND LGPL-3.0-or-later and MIT-open-group AND CC-BY-4.0 URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://download.gnome.org/sources/vte/0.72/vte-%{version}.tar.xz +Source0: https://gitlab.gnome.org/GNOME/vte/-/archive/%{version}/vte-%{version}.tar.bz2 # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Sun Apr 16 2023 David King - 0.72.1-1 +- Update to 0.72.1 + * Mon Mar 20 2023 David King - 0.72.0-1 - Update to 0.72.0 (#2179642) From d8b290cd128c42b59fc615aab47154c79b913906 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Wed, 7 Jun 2023 14:59:55 +0200 Subject: [PATCH 102/164] Update to 0.72.2 --- .gitignore | 1 + sources | 2 +- vte291.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index b6fc37f..3e328bf 100644 --- a/.gitignore +++ b/.gitignore @@ -92,3 +92,4 @@ /vte-0.72.0.tar.bz2 /vte-0.72.0.tar.xz /vte-0.72.1.tar.bz2 +/vte-0.72.2.tar.xz diff --git a/sources b/sources index f0ec00b..d2b0b8b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.72.1.tar.bz2) = a5655d2d2602183cbda1050003d7cf883e427c8e00976af4ee2685f43530d87169e31a3b9597133d14dffdc95f20f9ca1488186d8463997a2672510f5a95d145 +SHA512 (vte-0.72.2.tar.xz) = 40562ca7c925d9b1f6937d5aceb1d0d8852339d3455569aaf92a684fe7c785f0c4023dbbc0f6f60ceb17a5e70ca41587ae0bd153bdc2d3cb27951f8b20598f44 diff --git a/vte291.spec b/vte291.spec index 430d1ff..90e7b35 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.72.1 +Version: 0.72.2 Release: 1%{?dist} Summary: GTK+ 3 terminal emulator library @@ -19,7 +19,7 @@ Summary: GTK+ 3 terminal emulator library License: GPL-3.0-or-later AND LGPL-3.0-or-later and MIT-open-group AND CC-BY-4.0 URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://gitlab.gnome.org/GNOME/vte/-/archive/%{version}/vte-%{version}.tar.bz2 +Source0: https://download.gnome.org/sources/vte/0.72/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Wed Jun 07 2023 Kalev Lember - 0.72.2-1 +- Update to 0.72.2 + * Sun Apr 16 2023 David King - 0.72.1-1 - Update to 0.72.1 From 5746c31a98a0cb139f81bf70d0b8542c6681daa7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Tue, 11 Jul 2023 22:23:16 +0200 Subject: [PATCH 103/164] Rebuilt for ICU 73.2 --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index 90e7b35..bd7b9f4 100644 --- a/vte291.spec +++ b/vte291.spec @@ -12,7 +12,7 @@ Name: vte291 Version: 0.72.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK+ 3 terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Tue Jul 11 2023 František Zatloukal - 0.72.2-2 +- Rebuilt for ICU 73.2 + * Wed Jun 07 2023 Kalev Lember - 0.72.2-1 - Update to 0.72.2 From f09a3123a4631523ecddb5860c95a68cda45499c Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 22 Jul 2023 17:54:05 +0000 Subject: [PATCH 104/164] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index bd7b9f4..7164bd9 100644 --- a/vte291.spec +++ b/vte291.spec @@ -12,7 +12,7 @@ Name: vte291 Version: 0.72.2 -Release: 2%{?dist} +Release: 3%{?dist} Summary: GTK+ 3 terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Sat Jul 22 2023 Fedora Release Engineering - 0.72.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Tue Jul 11 2023 František Zatloukal - 0.72.2-2 - Rebuilt for ICU 73.2 From 83e045ed72c695c811588293fc70ea5a8cbf7dba Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Tue, 8 Aug 2023 02:17:48 +0200 Subject: [PATCH 105/164] Update to 0.73.93 --- .gitignore | 1 + sources | 2 +- vte291.spec | 9 ++++++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 3e328bf..680435d 100644 --- a/.gitignore +++ b/.gitignore @@ -93,3 +93,4 @@ /vte-0.72.0.tar.xz /vte-0.72.1.tar.bz2 /vte-0.72.2.tar.xz +/vte-0.73.93.tar.xz diff --git a/sources b/sources index d2b0b8b..c86570e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.72.2.tar.xz) = 40562ca7c925d9b1f6937d5aceb1d0d8852339d3455569aaf92a684fe7c785f0c4023dbbc0f6f60ceb17a5e70ca41587ae0bd153bdc2d3cb27951f8b20598f44 +SHA512 (vte-0.73.93.tar.xz) = c9ad855876a85885d9d4a7a1a2b7f4e193e3473314c28a492b47778cf3f418864a50f677757760f602e603daa44fc143d645f082cfa65ab6302d11192c7e0abf diff --git a/vte291.spec b/vte291.spec index 7164bd9..00c4307 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,15 +11,15 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.72.2 -Release: 3%{?dist} +Version: 0.73.93 +Release: 1%{?dist} Summary: GTK+ 3 terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources License: GPL-3.0-or-later AND LGPL-3.0-or-later and MIT-open-group AND CC-BY-4.0 URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://download.gnome.org/sources/vte/0.72/vte-%{version}.tar.xz +Source0: https://download.gnome.org/sources/vte/0.73/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Tue Aug 08 2023 Kalev Lember - 0.73.93-1 +- Update to 0.73.93 + * Sat Jul 22 2023 Fedora Release Engineering - 0.72.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From 44829b00d41e3097d1a44910d4d49c659555e777 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Wed, 20 Sep 2023 00:01:30 +0200 Subject: [PATCH 106/164] Update to 0.74.0 --- .gitignore | 1 + sources | 2 +- vte291.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 680435d..1af4d3f 100644 --- a/.gitignore +++ b/.gitignore @@ -94,3 +94,4 @@ /vte-0.72.1.tar.bz2 /vte-0.72.2.tar.xz /vte-0.73.93.tar.xz +/vte-0.74.0.tar.xz diff --git a/sources b/sources index c86570e..c1ed96e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.73.93.tar.xz) = c9ad855876a85885d9d4a7a1a2b7f4e193e3473314c28a492b47778cf3f418864a50f677757760f602e603daa44fc143d645f082cfa65ab6302d11192c7e0abf +SHA512 (vte-0.74.0.tar.xz) = 4e33c0545641e553ec5b8b2fe0a953f1b4ee28e4e9598753eef3a4a72e7ee19bbae788cc31b7473ed14eb494eb5f5b32f186591339f213af194ce4b6b20b5929 diff --git a/vte291.spec b/vte291.spec index 00c4307..e2dfa06 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.73.93 +Version: 0.74.0 Release: 1%{?dist} Summary: GTK+ 3 terminal emulator library @@ -19,7 +19,7 @@ Summary: GTK+ 3 terminal emulator library License: GPL-3.0-or-later AND LGPL-3.0-or-later and MIT-open-group AND CC-BY-4.0 URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://download.gnome.org/sources/vte/0.73/vte-%{version}.tar.xz +Source0: https://download.gnome.org/sources/vte/0.74/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Tue Sep 19 2023 Kalev Lember - 0.74.0-1 +- Update to 0.74.0 + * Tue Aug 08 2023 Kalev Lember - 0.73.93-1 - Update to 0.73.93 From 486e715ea36f9a46101588a4801c67cf23684d3d Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Sun, 22 Oct 2023 23:06:41 +0200 Subject: [PATCH 107/164] Update to 0.74.1 --- .gitignore | 1 + sources | 2 +- vte291.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 1af4d3f..5a2786d 100644 --- a/.gitignore +++ b/.gitignore @@ -95,3 +95,4 @@ /vte-0.72.2.tar.xz /vte-0.73.93.tar.xz /vte-0.74.0.tar.xz +/vte-0.74.1.tar.xz diff --git a/sources b/sources index c1ed96e..95f3fa6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.74.0.tar.xz) = 4e33c0545641e553ec5b8b2fe0a953f1b4ee28e4e9598753eef3a4a72e7ee19bbae788cc31b7473ed14eb494eb5f5b32f186591339f213af194ce4b6b20b5929 +SHA512 (vte-0.74.1.tar.xz) = e193422d4ba197a733033d0e10d1b6906798e165fb85b73e66c8941d0b85ff8aaac56c1cfcb1cb7da598fd2e54d3850368c6ea323c97a9f59cb048a03042eecb diff --git a/vte291.spec b/vte291.spec index e2dfa06..30214ce 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.74.0 +Version: 0.74.1 Release: 1%{?dist} Summary: GTK+ 3 terminal emulator library @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Sun Oct 22 2023 Kalev Lember - 0.74.1-1 +- Update to 0.74.1 + * Tue Sep 19 2023 Kalev Lember - 0.74.0-1 - Update to 0.74.0 From effdc88925f27e048c767ea2ca951ef453d4c4b2 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Sat, 16 Dec 2023 23:57:48 +0100 Subject: [PATCH 108/164] Update to 0.74.2 --- .gitignore | 1 + sources | 2 +- vte291.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 5a2786d..4e6e3c6 100644 --- a/.gitignore +++ b/.gitignore @@ -96,3 +96,4 @@ /vte-0.73.93.tar.xz /vte-0.74.0.tar.xz /vte-0.74.1.tar.xz +/vte-0.74.2.tar.xz diff --git a/sources b/sources index 95f3fa6..80a3728 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.74.1.tar.xz) = e193422d4ba197a733033d0e10d1b6906798e165fb85b73e66c8941d0b85ff8aaac56c1cfcb1cb7da598fd2e54d3850368c6ea323c97a9f59cb048a03042eecb +SHA512 (vte-0.74.2.tar.xz) = a4f9cf8560a062d05eeac41d3a97ae58ea3b9b136faece0e8d16dacebd0f5d9ed7a91f724c643ce7377aad130268a71cbe611909977717d0f3af7601112d67f5 diff --git a/vte291.spec b/vte291.spec index 30214ce..308a24f 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.74.1 +Version: 0.74.2 Release: 1%{?dist} Summary: GTK+ 3 terminal emulator library @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Sat Dec 16 2023 Kalev Lember - 0.74.2-1 +- Update to 0.74.2 + * Sun Oct 22 2023 Kalev Lember - 0.74.1-1 - Update to 0.74.1 From 0e78f508727be1df88b0bb40ad2aa4ee0721b5b4 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 27 Jan 2024 08:15:53 +0000 Subject: [PATCH 109/164] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index 308a24f..c8af9e5 100644 --- a/vte291.spec +++ b/vte291.spec @@ -12,7 +12,7 @@ Name: vte291 Version: 0.74.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK+ 3 terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Sat Jan 27 2024 Fedora Release Engineering - 0.74.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Sat Dec 16 2023 Kalev Lember - 0.74.2-1 - Update to 0.74.2 From 3113f966e99eb2f546fd59224c8cd4ee9ac2ee3f Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Wed, 31 Jan 2024 20:25:28 +0000 Subject: [PATCH 110/164] Rebuild for ICU 74 --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index c8af9e5..10564ef 100644 --- a/vte291.spec +++ b/vte291.spec @@ -12,7 +12,7 @@ Name: vte291 Version: 0.74.2 -Release: 2%{?dist} +Release: 3%{?dist} Summary: GTK+ 3 terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Wed Jan 31 2024 Pete Walter - 0.74.2-3 +- Rebuild for ICU 74 + * Sat Jan 27 2024 Fedora Release Engineering - 0.74.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 4edddd0d235e43e9518759e747a9dd177652161b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Such=C3=BD?= Date: Thu, 25 Jan 2024 11:17:52 +0000 Subject: [PATCH 111/164] Migrate to SPDX license One line was already in SPDX, but with lowercase operator - they must be uppercase. Rest was in Callaway form. I corrected the MIT license and added X11, which is used in COPYING.XTERM This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_3 --- vte291.spec | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vte291.spec b/vte291.spec index 10564ef..1056963 100644 --- a/vte291.spec +++ b/vte291.spec @@ -16,7 +16,7 @@ Release: 3%{?dist} Summary: GTK+ 3 terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources -License: GPL-3.0-or-later AND LGPL-3.0-or-later and MIT-open-group AND CC-BY-4.0 +License: GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND X11 AND CC-BY-4.0 URL: https://wiki.gnome.org/Apps/Terminal/VTE Source0: https://download.gnome.org/sources/vte/0.74/vte-%{version}.tar.xz @@ -82,7 +82,7 @@ Summary: Development files for GTK+ 3 %{name} # vte-2.91 is generated from GPLv3+ sources, while the public headers are # LGPLv3+ -License: GPLv3+ and LGPLv3+ +License: GPL-3.0-or-later AND LGPL-3.0-or-later Requires: %{name}%{?_isa} = %{version}-%{release} @@ -95,7 +95,7 @@ Summary: Development files for GTK 4 %{name} # vte-2.91 is generated from GPLv3+ sources, while the public headers are # LGPLv3+ -License: GPLv3+ and LGPLv3+ +License: GPL-3.0-or-later AND LGPL-3.0-or-later Requires: %{name}-gtk4%{?_isa} = %{version}-%{release} Requires: %{name}-devel%{?_isa} = %{version}-%{release} @@ -110,7 +110,7 @@ developing GTK 4 applications that use %{name}. # of the multilib packages (i686 + x86_64) as the replacement. %package -n vte-profile Summary: Profile script for VTE terminal emulator library -License: GPLv3+ +License: GPL-3.0-or-later # vte.sh was previously part of the vte3 package Conflicts: vte3 < 0.36.1-3 From 3d3acf0be097546ed7f45e8a5584616961008381 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 12 Feb 2024 10:49:52 +0100 Subject: [PATCH 112/164] Build for the SPDX license format change --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index 1056963..98b17f4 100644 --- a/vte291.spec +++ b/vte291.spec @@ -12,7 +12,7 @@ Name: vte291 Version: 0.74.2 -Release: 3%{?dist} +Release: 4%{?dist} Summary: GTK+ 3 terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Feb 12 2024 Tomas Popela - 0.74.2-4 +- Build for the SPDX license format change + * Wed Jan 31 2024 Pete Walter - 0.74.2-3 - Rebuild for ICU 74 From ae73dd4d48b9c0913142056154e1ebd1cc3bfbd8 Mon Sep 17 00:00:00 2001 From: David King Date: Tue, 2 Apr 2024 14:34:18 +0100 Subject: [PATCH 113/164] Update to 0.76.0 Incorporate Christian Hergert's accessibility changes, as well as refreshing the notification patches. --- .gitignore | 1 + sources | 2 +- vte291-cntnr-precmd-preexec-scroll.patch | 1686 +++++++++++++++++++--- vte291.spec | 13 +- 4 files changed, 1510 insertions(+), 192 deletions(-) diff --git a/.gitignore b/.gitignore index 4e6e3c6..8e09438 100644 --- a/.gitignore +++ b/.gitignore @@ -97,3 +97,4 @@ /vte-0.74.0.tar.xz /vte-0.74.1.tar.xz /vte-0.74.2.tar.xz +/vte-0.76.0.tar.xz diff --git a/sources b/sources index 80a3728..532790f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.74.2.tar.xz) = a4f9cf8560a062d05eeac41d3a97ae58ea3b9b136faece0e8d16dacebd0f5d9ed7a91f724c643ce7377aad130268a71cbe611909977717d0f3af7601112d67f5 +SHA512 (vte-0.76.0.tar.xz) = 4eccdac2eeb33ae76c67000081b3ae26b0872ac3c1b89517db87a1574dc1121992ad708a0ffced34e30a0fd351166552215cf897d722b53d2313d5b8deed2385 diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index 06baac5..c0a6ace 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,7 +1,1332 @@ -From 229a985c1ce90d5a7b493dad1261dd72a25e910c Mon Sep 17 00:00:00 2001 +From aace6f9a1f217be6496a3df0833bf1cd9841bf24 Mon Sep 17 00:00:00 2001 +From: Christian Hergert +Date: Tue, 2 Apr 2024 11:25:40 +0100 +Subject: [PATCH 01/12] a11y: implement GtkAccessibleText + +This is an initial implementaiton of GtkAccessibleText which was added +to GTK for 4.14. It attempts to implement things in a very similar +fashion to the previous code for GTK 3 although considerable effort was +made to simplify and improve readability as to how it works. + +Currently, this supports reading back what you type and what has changed +on screen. It is not yet 1:1 what the GTK 3 a11y implementation did +because ATK was doing many other things (including proxying keyboard +keys) to the other side of the a11y bus. That appears to improve +readback by screen readers in the form of "backspace" and what character +was deleted. + +I expect things to get closer to 1:1 but that work is going to have to +be done inside of GTK itself first and should not require much if +anything here. + +A new VteTerminal:enable-a11y feature flag property has been added +because I'm concerned about enabling this by default until the a11y bus +learns to be more lazy. Currently there is no way to "do nothing" until +a peer (e.g. screenreader) is interested in the contents. + +Ideally, we would have a short-circuit like is currently implemented by +checking vte_terminal_get_enable_a11y() to avoid any sort of contents +calculation when there are no a11y observers. + +It also allows disabling the GTK 3 a11y implementation just to keep some +symmetry between the APIs. + +Currently, this does not implement "text-scrolled" like the GTK 3 +implementation does as I'm not sure yet if there is a benefit. +--- + src/meson.build | 13 +- + src/vte.cc | 11 + + src/vte/vteterminal.h | 7 + + src/vteaccess-gtk4.cc | 874 ++++++++++++++++++++++++++++++++++++++++++ + src/vteaccess-gtk4.h | 25 ++ + src/vteaccess.cc | 21 + + src/vtegtk.cc | 97 ++++- + src/vtegtk.hh | 1 + + src/vteinternal.hh | 8 + + 9 files changed, 1050 insertions(+), 7 deletions(-) + create mode 100644 src/vteaccess-gtk4.cc + create mode 100644 src/vteaccess-gtk4.h + +diff --git a/src/meson.build b/src/meson.build +index 3f89f492..6d1b4b2b 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -18,11 +18,16 @@ subdir('vte') + + src_inc = include_directories('.') + +-a11y_sources = files( ++a11y_gtk3_sources = files( + 'vteaccess.cc', + 'vteaccess.h', + ) + ++a11y_gtk4_sources = files( ++ 'vteaccess-gtk4.cc', ++ 'vteaccess-gtk4.h', ++) ++ + debug_sources = files( + 'debug.cc', + 'debug.h', +@@ -300,7 +305,7 @@ if get_option('gtk3') + libvte_gtk3_public_deps = libvte_common_public_deps + [gtk3_dep,] + + if get_option('a11y') +- libvte_gtk3_sources += a11y_sources ++ libvte_gtk3_sources += a11y_gtk3_sources + endif + + libvte_gtk3 = shared_library( +@@ -349,6 +354,10 @@ if get_option('gtk4') + libvte_gtk4_deps = libvte_common_deps + [gtk4_dep,] + libvte_gtk4_public_deps = libvte_common_public_deps + [gtk4_dep,] + ++ if get_option('a11y') ++ libvte_gtk4_sources += a11y_gtk4_sources ++ endif ++ + libvte_gtk4 = shared_library( + vte_gtk4_api_name, + sources: libvte_gtk4_sources, +diff --git a/src/vte.cc b/src/vte.cc +index b3bcc0a6..6f5ed505 100644 +--- a/src/vte.cc ++++ b/src/vte.cc +@@ -10134,6 +10134,17 @@ Terminal::set_text_blink_mode(TextBlinkMode setting) + return true; + } + ++bool ++Terminal::set_enable_a11y(bool setting) ++{ ++ if (setting == m_enable_a11y) ++ return false; ++ ++ m_enable_a11y = setting; ++ ++ return true; ++} ++ + bool + Terminal::set_enable_bidi(bool setting) + { +diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h +index a9e1e494..33360909 100644 +--- a/src/vte/vteterminal.h ++++ b/src/vte/vteterminal.h +@@ -388,6 +388,13 @@ _VTE_PUBLIC + void vte_terminal_set_delete_binding(VteTerminal *terminal, + VteEraseBinding binding) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); + ++/* Accessibility */ ++_VTE_PUBLIC ++void vte_terminal_set_enable_a11y(VteTerminal *terminal, ++ gboolean enable_a11y) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); ++_VTE_PUBLIC ++gboolean vte_terminal_get_enable_a11y(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); ++ + /* BiDi and shaping */ + _VTE_PUBLIC + void vte_terminal_set_enable_bidi(VteTerminal *terminal, +diff --git a/src/vteaccess-gtk4.cc b/src/vteaccess-gtk4.cc +new file mode 100644 +index 00000000..f42e7578 +--- /dev/null ++++ b/src/vteaccess-gtk4.cc +@@ -0,0 +1,874 @@ ++/* ++ * Copyright © 2024 Christian Hergert ++ * Copyright © 2002,2003 Red Hat, Inc. ++ * ++ * This library is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU Lesser General Public License as published ++ * by the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this library. If not, see . ++ */ ++ ++#include "config.h" ++ ++#include "vteinternal.hh" ++#include "vteaccess-gtk4.h" ++ ++#define GDK_ARRAY_NAME char_positions ++#define GDK_ARRAY_TYPE_NAME CharPositions ++#define GDK_ARRAY_ELEMENT_TYPE int ++#define GDK_ARRAY_BY_VALUE 1 ++#define GDK_ARRAY_PREALLOC 8 ++#define GDK_ARRAY_NO_MEMSET ++#include "gdkarrayimpl.c" ++ ++typedef struct _VteAccessibleTextContents ++{ ++ /* A GdkArrayImpl of attributes per byte */ ++ VteCharAttrList attrs; ++ ++ /* The byte position within the UTF-8 string where each visible ++ * character starts. ++ */ ++ CharPositions characters; ++ ++ /* The character position within the UTF-8 string where each line ++ * break occurs. To get byte offset, use @characters. ++ */ ++ CharPositions linebreaks; ++ ++ /* The UTF-8 string encoded as bytes so that we may reference it ++ * using GBytes for "substrings". However @string does include a ++ * trailing NUL byte in it's size so that the a11y infrastructure ++ * may elide some string copies. ++ */ ++ GBytes *string; ++ ++ /* Number of bytes in @string excluding trailing NUL. */ ++ gsize n_bytes; ++ ++ /* Number of unicode characters in @string. */ ++ gsize n_chars; ++ ++ /* The character position (not bytes) of the caret in @string */ ++ gsize caret; ++ ++ /* Cached column/row of the caret updated each time we are notified ++ * of the caret having moved. We cache this so that we can elide ++ * extraneous notifications after snapshoting. We will update the ++ * carent position synchronously when notified so @caret may always ++ * be relied upon as correct. ++ */ ++ long cached_caret_column; ++ long cached_caret_row; ++} VteAccessibleTextContents; ++ ++typedef struct _VteAccessibleText ++{ ++ VteTerminal *terminal; ++ VteAccessibleTextContents contents[2]; ++ guint contents_flip : 1; ++} VteAccessibleText; ++ ++static inline gboolean ++_pango_color_equal(const PangoColor *a, ++ const PangoColor *b) ++{ ++ return a->red == b->red && ++ a->green == b->green && ++ a->blue == b->blue; ++} ++ ++static void ++vte_accessible_text_contents_init (VteAccessibleTextContents *contents) ++{ ++ vte_char_attr_list_init (&contents->attrs); ++ char_positions_init (&contents->characters); ++ char_positions_init (&contents->linebreaks); ++ contents->string = nullptr; ++ contents->n_bytes = 0; ++ contents->n_chars = 0; ++ contents->caret = 0; ++ contents->cached_caret_row = 0; ++ contents->cached_caret_column = 0; ++} ++ ++static void ++vte_accessible_text_contents_clear (VteAccessibleTextContents *contents) ++{ ++ vte_char_attr_list_clear (&contents->attrs); ++ char_positions_clear (&contents->characters); ++ char_positions_clear (&contents->linebreaks); ++ g_clear_pointer (&contents->string, g_bytes_unref); ++ contents->n_bytes = 0; ++ contents->n_chars = 0; ++ contents->caret = 0; ++ contents->cached_caret_row = 0; ++ contents->cached_caret_column = 0; ++} ++ ++static void ++vte_accessible_text_contents_reset (VteAccessibleTextContents *contents) ++{ ++ vte_char_attr_list_set_size (&contents->attrs, 0); ++ char_positions_set_size (&contents->characters, 0); ++ char_positions_set_size (&contents->linebreaks, 0); ++ g_clear_pointer (&contents->string, g_bytes_unref); ++ contents->n_bytes = 0; ++ contents->n_chars = 0; ++ contents->caret = 0; ++ contents->cached_caret_row = 0; ++ contents->cached_caret_column = 0; ++} ++ ++static const char * ++vte_accessible_text_contents_get_string (VteAccessibleTextContents *contents, ++ gsize *len) ++{ ++ const char *ret; ++ ++ if (contents->string == nullptr || g_bytes_get_size (contents->string) == 0) { ++ *len = 0; ++ return ""; ++ } ++ ++ ret = (const char *)g_bytes_get_data (contents->string, len); ++ ++ if (*len > 0) { ++ (*len)--; ++ } ++ ++ return ret; ++} ++ ++static int ++vte_accessible_text_contents_offset_from_xy (VteAccessibleTextContents *contents, ++ int x, ++ int y) ++{ ++ int offset; ++ int linebreak; ++ int next_linebreak; ++ ++ if (y >= int(char_positions_get_size (&contents->linebreaks))) { ++ y = int(char_positions_get_size (&contents->linebreaks)) - 1; ++ if (y < 0) { ++ return 0; ++ } ++ } ++ ++ linebreak = *char_positions_index (&contents->linebreaks, y); ++ if (y + 1 == int(char_positions_get_size (&contents->linebreaks))) { ++ next_linebreak = int(char_positions_get_size (&contents->characters)); ++ } else { ++ next_linebreak = *char_positions_index (&contents->linebreaks, y + 1); ++ } ++ ++ offset = linebreak + x; ++ if (offset >= next_linebreak) { ++ offset = next_linebreak - 1; ++ } ++ ++ return offset; ++} ++ ++static gunichar ++vte_accessible_text_contents_get_char_at (VteAccessibleTextContents *contents, ++ guint offset) ++{ ++ const char *str; ++ ++ if (contents->string == nullptr) ++ return 0; ++ ++ if (offset >= contents->n_chars) ++ return 0; ++ ++ g_assert (offset < char_positions_get_size (&contents->characters)); ++ ++ str = (const char *)g_bytes_get_data (contents->string, nullptr); ++ str += *char_positions_index (&contents->characters, offset); ++ ++ return g_utf8_get_char (str); ++ ++} ++ ++static GBytes * ++_g_string_free_to_bytes_with_nul (GString *str) ++{ ++ /* g_string_free_to_bytes() will have a trailing-NUL but not include it ++ * in the size of the GBytes. We want the size included in our GBytes ++ * so that GtkAccessibleText may avoid some copies. ++ */ ++ gsize len = str->len + 1; ++ return g_bytes_new_take (g_string_free (str, FALSE), len); ++} ++ ++static inline gsize ++vte_accessible_text_contents_find_caret (VteAccessibleTextContents *contents, ++ long ccol, ++ long crow) ++{ ++ g_assert (contents != nullptr); ++ ++ /* Get the offsets to the beginnings of each line. */ ++ gsize caret = 0; ++ for (gsize i = 0; i < char_positions_get_size (&contents->characters); i++) { ++ /* Get the attributes for the current cell. */ ++ int offset = *char_positions_index (&contents->characters, i); ++ const struct _VteCharAttributes *attrs = vte_char_attr_list_get (&contents->attrs, offset); ++ ++ /* If this cell is "before" the cursor, move the caret to be "here". */ ++ if ((attrs->row < crow) || ++ ((attrs->row == crow) && (attrs->column < ccol))) { ++ caret = i + 1; ++ } ++ } ++ ++ return caret; ++} ++ ++static void ++vte_accessible_text_contents_snapshot (VteAccessibleTextContents *contents, ++ VteTerminal *terminal) ++{ ++ auto impl = _vte_terminal_get_impl (terminal); ++ GString *gstr = g_string_new (nullptr); ++ ++ try { ++ impl->get_text_displayed_a11y (gstr, &contents->attrs); ++ } catch (...) { ++ g_string_truncate (gstr, 0); ++ } ++ ++ if (vte_char_attr_list_get_size (&contents->attrs) >= G_MAXINT) { ++ g_string_truncate (gstr, 0); ++ return; ++ } ++ ++ /* Get the offsets to the beginnings of each character. */ ++ int i = 0; ++ const char *next = gstr->str; ++ int n_attrs = int(vte_char_attr_list_get_size (&contents->attrs)); ++ while (i < n_attrs) { ++ char_positions_append (&contents->characters, &i); ++ next = g_utf8_next_char (next); ++ if (next != nullptr) { ++ i = next - gstr->str; ++ continue; ++ } ++ break; ++ } ++ ++ /* Find offsets for the beginning of lines. */ ++ gsize n_chars = char_positions_get_size (&contents->characters); ++ int row; ++ for (i = 0, row = 0; i < int(n_chars); i++) { ++ /* Get the attributes for the current cell. */ ++ int offset = *char_positions_index (&contents->characters, i); ++ const struct _VteCharAttributes *attrs = vte_char_attr_list_get (&contents->attrs, offset); ++ ++ /* If this character is on a row different from the row ++ * the character we looked at previously was on, then ++ * it's a new line and we need to keep track of where ++ * it is. */ ++ if ((i == 0) || (attrs->row != row)) { ++ _vte_debug_print (VTE_DEBUG_ALLY, ++ "Row %d/%ld begins at %d.\n", ++ int(char_positions_get_size (&contents->linebreaks)), ++ attrs->row, i); ++ char_positions_append (&contents->linebreaks, &i); ++ } ++ ++ row = attrs->row; ++ } ++ ++ /* Add the final line break. */ ++ char_positions_append (&contents->linebreaks, &i); ++ ++ /* Update the caret position. */ ++ long ccol, crow; ++ vte_terminal_get_cursor_position (terminal, &ccol, &crow); ++ _vte_debug_print (VTE_DEBUG_ALLY, "Cursor at (%ld, " "%ld).\n", ccol, crow); ++ gsize caret = vte_accessible_text_contents_find_caret (contents, ccol, crow); ++ ++ contents->n_bytes = gstr->len; ++ contents->n_chars = n_chars; ++ contents->string = _g_string_free_to_bytes_with_nul (gstr); ++ contents->caret = caret; ++ contents->cached_caret_column = ccol; ++ contents->cached_caret_row = crow; ++ ++ _vte_debug_print (VTE_DEBUG_ALLY, ++ "Refreshed accessibility snapshot, " ++ "%ld cells, %ld characters.\n", ++ long(vte_char_attr_list_get_size(&contents->attrs)), ++ long(char_positions_get_size (&contents->characters))); ++} ++ ++static GBytes * ++vte_accessible_text_contents_slice (VteAccessibleTextContents *contents, ++ guint start, ++ guint end) ++{ ++ static const char empty[] = {0}; ++ guint start_offset; ++ guint end_offset; ++ ++ g_assert (contents != nullptr); ++ ++ if (contents->string == nullptr) ++ return g_bytes_new_static (empty, sizeof empty); ++ ++ if (start > contents->n_chars) ++ start = contents->n_chars; ++ ++ if (end > contents->n_chars) ++ end = contents->n_chars; ++ ++ if (end < start) ++ std::swap (end, start); ++ ++ g_assert (start <= char_positions_get_size (&contents->characters)); ++ g_assert (end <= char_positions_get_size (&contents->characters)); ++ ++ if (start == char_positions_get_size (&contents->characters)) ++ start_offset = g_bytes_get_size (contents->string); ++ else ++ start_offset = *char_positions_index (&contents->characters, start); ++ ++ if (end == char_positions_get_size (&contents->characters)) ++ end_offset = g_bytes_get_size (contents->string); ++ else ++ end_offset = *char_positions_index (&contents->characters, end); ++ ++ g_assert (start_offset <= end_offset); ++ ++ if (start_offset == end_offset) ++ return g_bytes_new_static (empty, sizeof empty); ++ ++ return g_bytes_new_from_bytes (contents->string, start_offset, end_offset - start_offset); ++} ++ ++static void ++vte_accessible_text_free (VteAccessibleText *state) ++{ ++ vte_accessible_text_contents_clear (&state->contents[0]); ++ vte_accessible_text_contents_clear (&state->contents[1]); ++ state->terminal = nullptr; ++ g_free (state); ++} ++ ++static VteAccessibleText * ++vte_accessible_text_get (VteTerminal *terminal) ++{ ++ return (VteAccessibleText *)g_object_get_data (G_OBJECT (terminal), "VTE_ACCESSIBLE_TEXT"); ++} ++ ++static GBytes * ++vte_accessible_text_get_contents (GtkAccessibleText *accessible, ++ guint start, ++ guint end) ++{ ++ VteTerminal *terminal = VTE_TERMINAL (accessible); ++ VteAccessibleText *state = vte_accessible_text_get (terminal); ++ VteAccessibleTextContents *contents = nullptr; ++ ++ g_assert (VTE_IS_TERMINAL (terminal)); ++ g_assert (state != nullptr); ++ g_assert (state->terminal == terminal); ++ ++ contents = &state->contents[state->contents_flip]; ++ ++ return vte_accessible_text_contents_slice (contents, start, end); ++} ++ ++static GBytes * ++vte_accessible_text_get_contents_at (GtkAccessibleText *accessible, ++ guint offset, ++ GtkAccessibleTextGranularity granularity, ++ guint *start, ++ guint *end) ++{ ++ VteTerminal *terminal = VTE_TERMINAL (accessible); ++ VteAccessibleText *state = vte_accessible_text_get (terminal); ++ VteAccessibleTextContents *contents; ++ ++ g_assert (VTE_IS_TERMINAL (terminal)); ++ g_assert (state != nullptr); ++ g_assert (state->terminal == terminal); ++ ++ auto impl = _vte_terminal_get_impl (terminal); ++ ++ contents = &state->contents[state->contents_flip]; ++ ++ if (contents->string == nullptr) { ++ return nullptr; ++ } ++ ++ if (offset > contents->n_chars) { ++ offset = contents->n_chars; ++ } ++ ++ switch (granularity) { ++ case GTK_ACCESSIBLE_TEXT_GRANULARITY_CHARACTER: { ++ *start = offset; ++ *end = offset + 1; ++ return vte_accessible_text_contents_slice (contents, offset, offset + 1); ++ } ++ ++ case GTK_ACCESSIBLE_TEXT_GRANULARITY_LINE: { ++ guint char_offset = *char_positions_index (&contents->characters, offset); ++ guint line; ++ ++ for (line = 0; ++ line < char_positions_get_size (&contents->linebreaks); ++ line++) { ++ guint line_offset = *char_positions_index (&contents->linebreaks, line); ++ ++ if (line_offset > char_offset) { ++ line--; ++ break; ++ } ++ } ++ ++ _vte_debug_print (VTE_DEBUG_ALLY, ++ "Character %u is on line %u.\n", ++ offset, line); ++ ++ *start = *char_positions_index (&contents->linebreaks, line); ++ if (line + 1 < char_positions_get_size (&contents->linebreaks)) ++ *end = *char_positions_index (&contents->linebreaks, line + 1); ++ else ++ *end = contents->n_chars; ++ ++ return vte_accessible_text_contents_slice (contents, *start, *end); ++ } ++ ++ case GTK_ACCESSIBLE_TEXT_GRANULARITY_WORD: { ++ gunichar ch = vte_accessible_text_contents_get_char_at (contents, offset); ++ ++ if (ch == 0 || !impl->is_word_char (ch)) ++ break; ++ ++ *start = offset; ++ *end = offset; ++ ++ while (*start > 0 && ++ (ch = vte_accessible_text_contents_get_char_at (contents, *start - 1)) && ++ impl->is_word_char (ch)) { ++ (*start)--; ++ } ++ ++ while (*end < contents->n_chars && ++ (ch = vte_accessible_text_contents_get_char_at (contents, *end + 1)) && ++ impl->is_word_char (ch)) { ++ (*end)++; ++ } ++ ++ return vte_accessible_text_contents_slice (contents, *start, *end); ++ } ++ ++ case GTK_ACCESSIBLE_TEXT_GRANULARITY_SENTENCE: ++ case GTK_ACCESSIBLE_TEXT_GRANULARITY_PARAGRAPH: ++ default: ++ break; ++ } ++ ++ return nullptr; ++} ++ ++static guint ++vte_accessible_text_get_caret_position (GtkAccessibleText *accessible) ++{ ++ VteTerminal *terminal = VTE_TERMINAL (accessible); ++ VteAccessibleText *state = vte_accessible_text_get (terminal); ++ ++ g_assert (VTE_IS_TERMINAL (accessible)); ++ g_assert (state != nullptr); ++ g_assert (state->terminal == terminal); ++ ++ return state->contents[state->contents_flip].caret; ++} ++ ++static gboolean ++vte_accessible_text_get_selection (GtkAccessibleText *accessible, ++ gsize *n_ranges, ++ GtkAccessibleTextRange **ranges) ++{ ++ VteTerminal *terminal = VTE_TERMINAL (accessible); ++ VteAccessibleText *state = vte_accessible_text_get (terminal); ++ ++ g_assert (VTE_IS_TERMINAL (terminal)); ++ g_assert (ranges != nullptr); ++ ++ *n_ranges = 0; ++ *ranges = nullptr; ++ ++ try { ++ auto impl = _vte_terminal_get_impl (terminal); ++ VteAccessibleTextContents *contents = &state->contents[state->contents_flip]; ++ GtkAccessibleTextRange range; ++ ++ if (impl->m_selection_resolved.empty() || ++ impl->m_selection[vte::to_integral(vte::platform::ClipboardType::PRIMARY)] == nullptr) ++ return FALSE; ++ ++ auto start_column = impl->m_selection_resolved.start_column(); ++ auto start_row = impl->m_selection_resolved.start_row(); ++ auto end_column = impl->m_selection_resolved.end_column(); ++ auto end_row = impl->m_selection_resolved.end_row(); ++ ++ auto start_offset = vte_accessible_text_contents_offset_from_xy (contents, start_column, start_row); ++ auto end_offset = vte_accessible_text_contents_offset_from_xy (contents, end_column, end_row); ++ ++ range.start = gsize(start_offset); ++ range.length = gsize(end_offset - start_offset); ++ ++ *n_ranges = 1; ++ *ranges = (GtkAccessibleTextRange *)g_memdup2 (&range, sizeof range); ++ ++ return TRUE; ++ } catch (...) { } ++ ++ return FALSE; ++} ++ ++static gboolean ++vte_accessible_text_get_attributes (GtkAccessibleText *accessible, ++ guint offset, ++ gsize *n_ranges, ++ GtkAccessibleTextRange **ranges, ++ char ***attribute_names, ++ char ***attribute_values) ++{ ++ VteTerminal *terminal = VTE_TERMINAL (accessible); ++ VteAccessibleText *state = vte_accessible_text_get (terminal); ++ VteAccessibleTextContents *contents; ++ struct _VteCharAttributes cur_attr; ++ struct _VteCharAttributes attr; ++ GtkAccessibleTextRange range; ++ struct { ++ const char *name; ++ const char *value; ++ } attrs[4]; ++ char fg_color[16]; ++ char bg_color[16]; ++ guint n_attrs = 0; ++ guint start = 0; ++ guint end = 0; ++ guint i; ++ ++ g_assert (VTE_IS_TERMINAL (accessible)); ++ g_assert (ranges != nullptr); ++ g_assert (attribute_names != nullptr); ++ g_assert (attribute_values != nullptr); ++ ++ contents = &state->contents[state->contents_flip]; ++ ++ *n_ranges = 0; ++ *ranges = nullptr; ++ *attribute_names = nullptr; ++ *attribute_values = nullptr; ++ ++ attr = *vte_char_attr_list_get (&contents->attrs, offset); ++ start = 0; ++ for (i = offset; i--;) { ++ cur_attr = *vte_char_attr_list_get (&contents->attrs, i); ++ if (!_pango_color_equal (&cur_attr.fore, &attr.fore) || ++ !_pango_color_equal (&cur_attr.back, &attr.back) || ++ cur_attr.underline != attr.underline || ++ cur_attr.strikethrough != attr.strikethrough) { ++ start = i + 1; ++ break; ++ } ++ } ++ end = vte_char_attr_list_get_size (&contents->attrs) - 1; ++ for (i = offset + 1; i < vte_char_attr_list_get_size (&contents->attrs); i++) { ++ cur_attr = *vte_char_attr_list_get (&contents->attrs, i); ++ if (!_pango_color_equal (&cur_attr.fore, &attr.fore) || ++ !_pango_color_equal (&cur_attr.back, &attr.back) || ++ cur_attr.underline != attr.underline || ++ cur_attr.strikethrough != attr.strikethrough) { ++ end = i - 1; ++ break; ++ } ++ } ++ ++ range.start = start; ++ range.length = end - start; ++ ++ if (range.length == 0) ++ return FALSE; ++ ++ if (attr.underline) { ++ attrs[n_attrs].name = "underline"; ++ attrs[n_attrs].value = "true"; ++ n_attrs++; ++ } ++ ++ if (attr.strikethrough) { ++ attrs[n_attrs].name = "strikethrough"; ++ attrs[n_attrs].value = "true"; ++ n_attrs++; ++ } ++ ++ g_snprintf (fg_color, sizeof fg_color, "%u,%u,%u", ++ attr.fore.red, attr.fore.green, attr.fore.blue); ++ attrs[n_attrs].name = "fg-color"; ++ attrs[n_attrs].value = fg_color; ++ n_attrs++; ++ ++ g_snprintf (bg_color, sizeof bg_color, "%u,%u,%u", ++ attr.back.red, attr.back.green, attr.back.blue); ++ attrs[n_attrs].name = "bg-color"; ++ attrs[n_attrs].value = bg_color; ++ n_attrs++; ++ ++ *attribute_names = g_new0 (char *, n_attrs + 1); ++ *attribute_values = g_new0 (char *, n_attrs + 1); ++ *n_ranges = 1; ++ *ranges = (GtkAccessibleTextRange *)g_memdup2 (&range, sizeof range); ++ ++ for (i = 0; i < n_attrs; i++) { ++ (*attribute_names)[i] = g_strdup (attrs[i].name); ++ (*attribute_values)[i] = g_strdup (attrs[i].value); ++ } ++ ++ return TRUE; ++} ++ ++void ++_vte_accessible_text_iface_init (GtkAccessibleTextInterface *iface) ++{ ++ iface->get_attributes = vte_accessible_text_get_attributes; ++ iface->get_caret_position = vte_accessible_text_get_caret_position; ++ iface->get_contents = vte_accessible_text_get_contents; ++ iface->get_contents_at = vte_accessible_text_get_contents_at; ++ iface->get_selection = vte_accessible_text_get_selection; ++} ++ ++static void ++vte_accessible_text_contents_changed (VteTerminal *terminal, ++ VteAccessibleText *state) ++{ ++ VteAccessibleTextContents *next = nullptr; ++ VteAccessibleTextContents *prev = nullptr; ++ const char *nextstr; ++ const char *prevstr; ++ gsize prevlen; ++ gsize nextlen; ++ ++ g_assert (VTE_IS_TERMINAL (terminal)); ++ g_assert (state != nullptr); ++ g_assert (state->terminal == terminal); ++ ++ if (!vte_terminal_get_enable_a11y (terminal)) ++ return; ++ ++ prev = &state->contents[state->contents_flip]; ++ next = &state->contents[!state->contents_flip]; ++ ++ /* Get a new snapshot of contents so that we can compare this to the ++ * previous contents. That way we can discover if it was a backspace ++ * that occurred or if it's more than that. ++ * ++ * We do not filp state->contents_flip immediately so that we can ++ * allow the AT context the ability to access the current contents ++ * on DELETE operations. ++ */ ++ vte_accessible_text_contents_reset (next); ++ vte_accessible_text_contents_snapshot (next, state->terminal); ++ ++ nextstr = vte_accessible_text_contents_get_string (next, &nextlen); ++ prevstr = vte_accessible_text_contents_get_string (prev, &prevlen); ++ ++ vte_assert_cmpint (char_positions_get_size (&prev->characters), ==, prev->n_chars); ++ vte_assert_cmpint (char_positions_get_size (&next->characters), ==, next->n_chars); ++ ++ /* NOTE: ++ * ++ * The code below is based upon what vteaccess.cc did for GTK 3. ++ * It does not do any sort of appropriate diffing to try to handle ++ * scrolling correctly. That would be a good idea to implement in ++ * the longer term. ++ * ++ * It just looks for a long prefix match, and then a long suffix ++ * match and attempts to diff what is between those to end points. ++ */ ++ ++ const char *prevc = prevstr; ++ const char *nextc = nextstr; ++ gsize offset = 0; ++ ++ /* Find the beginning of changes */ ++ while ((offset < prev->n_chars) && (offset < next->n_chars)) { ++ gunichar prevch = g_utf8_get_char (prevc); ++ gunichar nextch = g_utf8_get_char (nextc); ++ ++ if (prevch != nextch) { ++ break; ++ } ++ ++ offset++; ++ ++ prevc = g_utf8_next_char (prevc); ++ nextc = g_utf8_next_char (nextc); ++ } ++ ++ /* Find the end of changes */ ++ gsize next_end = next->n_chars; ++ gsize prev_end = prev->n_chars; ++ ++ prevc = prevstr + prevlen; ++ nextc = nextstr + nextlen; ++ ++ while ((next_end > offset) && (prev_end > offset)) { ++ prevc = g_utf8_prev_char (prevc); ++ nextc = g_utf8_prev_char (nextc); ++ ++ gunichar prevch = g_utf8_get_char (prevc); ++ gunichar nextch = g_utf8_get_char (nextc); ++ ++ if (prevch != nextch) { ++ break; ++ } ++ ++ next_end--; ++ prev_end--; ++ } ++ ++ if (offset < prev_end) { ++ gtk_accessible_text_update_contents (GTK_ACCESSIBLE_TEXT (terminal), ++ GTK_ACCESSIBLE_TEXT_CONTENT_CHANGE_REMOVE, ++ offset, prev_end); ++ } ++ ++ state->contents_flip = !state->contents_flip; ++ ++ if (offset < next_end) { ++ gtk_accessible_text_update_contents (GTK_ACCESSIBLE_TEXT (terminal), ++ GTK_ACCESSIBLE_TEXT_CONTENT_CHANGE_INSERT, ++ offset, next_end); ++ } ++ ++ if (prev->caret != next->caret) { ++ gtk_accessible_text_update_caret_position (GTK_ACCESSIBLE_TEXT (terminal)); ++ } ++} ++ ++static void ++vte_accessible_text_cursor_moved (VteTerminal *terminal, ++ VteAccessibleText *state) ++{ ++ VteAccessibleTextContents *contents = nullptr; ++ ++ g_assert (VTE_IS_TERMINAL (terminal)); ++ g_assert (state != nullptr); ++ g_assert (state->terminal == terminal); ++ ++ if (!vte_terminal_get_enable_a11y (terminal)) ++ return; ++ ++ contents = &state->contents[state->contents_flip]; ++ ++ long ccol, crow; ++ vte_terminal_get_cursor_position (terminal, &ccol, &crow); ++ if (ccol == contents->cached_caret_column && crow == contents->cached_caret_row) { ++ return; ++ } ++ ++ _vte_debug_print (VTE_DEBUG_ALLY, "Cursor at (%ld, " "%ld).\n", ccol, crow); ++ ++ contents->cached_caret_column = ccol; ++ contents->cached_caret_row = crow; ++ contents->caret = vte_accessible_text_contents_find_caret (contents, ccol, crow); ++ ++ gtk_accessible_text_update_caret_position (GTK_ACCESSIBLE_TEXT (terminal)); ++} ++ ++static void ++vte_accessible_text_window_title_changed (VteTerminal *terminal, ++ VteAccessibleText *state) ++{ ++ const char *window_title; ++ ++ g_assert (VTE_IS_TERMINAL (terminal)); ++ g_assert (state != nullptr); ++ g_assert (state->terminal == terminal); ++ ++ if (!vte_terminal_get_enable_a11y (terminal)) ++ return; ++ ++ window_title = vte_terminal_get_window_title (terminal); ++ ++ gtk_accessible_update_property (GTK_ACCESSIBLE (terminal), ++ GTK_ACCESSIBLE_PROPERTY_DESCRIPTION, window_title ? window_title : "", ++ GTK_ACCESSIBLE_VALUE_UNDEFINED); ++} ++ ++static void ++vte_accessible_text_selection_changed (VteTerminal *terminal, ++ VteAccessibleText *state) ++{ ++ g_assert (VTE_IS_TERMINAL (terminal)); ++ g_assert (state != nullptr); ++ g_assert (state->terminal == terminal); ++ ++ if (!vte_terminal_get_enable_a11y (terminal)) ++ return; ++ ++ gtk_accessible_text_update_caret_position (GTK_ACCESSIBLE_TEXT (terminal)); ++ gtk_accessible_text_update_selection_bound (GTK_ACCESSIBLE_TEXT (terminal)); ++} ++ ++void ++_vte_accessible_text_init (GtkAccessibleText *accessible) ++{ ++ VteTerminal *terminal = VTE_TERMINAL (accessible); ++ VteAccessibleText *state; ++ ++ state = g_new0 (VteAccessibleText, 1); ++ state->terminal = terminal; ++ ++ vte_accessible_text_contents_init (&state->contents[0]); ++ vte_accessible_text_contents_init (&state->contents[1]); ++ ++ g_object_set_data_full (G_OBJECT (terminal), ++ "VTE_ACCESSIBLE_TEXT", ++ state, ++ (GDestroyNotify)vte_accessible_text_free); ++ ++ g_signal_connect (terminal, ++ "contents-changed", ++ G_CALLBACK (vte_accessible_text_contents_changed), ++ state); ++ g_signal_connect (terminal, ++ "cursor-moved", ++ G_CALLBACK (vte_accessible_text_cursor_moved), ++ state); ++ g_signal_connect (terminal, ++ "selection-changed", ++ G_CALLBACK (vte_accessible_text_selection_changed), ++ state); ++ g_signal_connect (terminal, ++ "window-title-changed", ++ G_CALLBACK (vte_accessible_text_window_title_changed), ++ state); ++ ++ const char *window_title = vte_terminal_get_window_title (terminal); ++ ++ gtk_accessible_update_property (GTK_ACCESSIBLE (accessible), ++ GTK_ACCESSIBLE_PROPERTY_DESCRIPTION, window_title ? window_title : "", ++ GTK_ACCESSIBLE_PROPERTY_HAS_POPUP, TRUE, ++ GTK_ACCESSIBLE_PROPERTY_LABEL, "Terminal", ++ GTK_ACCESSIBLE_PROPERTY_MULTI_LINE, TRUE, ++ GTK_ACCESSIBLE_VALUE_UNDEFINED); ++} +diff --git a/src/vteaccess-gtk4.h b/src/vteaccess-gtk4.h +new file mode 100644 +index 00000000..37b09c7b +--- /dev/null ++++ b/src/vteaccess-gtk4.h +@@ -0,0 +1,25 @@ ++/* ++ * Copyright © 2024 Christian Hergert ++ * ++ * This library is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU Lesser General Public License as published ++ * by the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this library. If not, see . ++ */ ++ ++#include ++ ++G_BEGIN_DECLS ++ ++void _vte_accessible_text_iface_init (GtkAccessibleTextInterface *iface); ++void _vte_accessible_text_init (GtkAccessibleText *accessible); ++ ++G_END_DECLS +diff --git a/src/vteaccess.cc b/src/vteaccess.cc +index fff918dc..c1c1a4c0 100644 +--- a/src/vteaccess.cc ++++ b/src/vteaccess.cc +@@ -386,6 +386,12 @@ _vte_terminal_accessible_text_modified(VteTerminalAccessible* accessible) + glong offset, caret_offset, olen, clen; + gint old_snapshot_caret; + ++ auto widget = gtk_accessible_get_widget(GTK_ACCESSIBLE(accessible)); ++ auto terminal = VTE_TERMINAL(widget); ++ ++ if (!vte_terminal_get_enable_a11y (terminal)) ++ return; ++ + old_snapshot_caret = priv->snapshot_caret; + priv->snapshot_contents_invalid = TRUE; + vte_terminal_accessible_update_private_data_if_needed(accessible, +@@ -541,6 +547,9 @@ _vte_terminal_accessible_text_scrolled(VteTerminalAccessible* accessible, + auto widget = gtk_accessible_get_widget(GTK_ACCESSIBLE(accessible)); + auto terminal = VTE_TERMINAL(widget); + ++ if (!vte_terminal_get_enable_a11y (terminal)) ++ return; ++ + row_count = vte_terminal_get_row_count(terminal); + if (((howmuch < 0) && (howmuch <= -row_count)) || + ((howmuch > 0) && (howmuch >= row_count))) { +@@ -793,6 +802,9 @@ vte_terminal_accessible_invalidate_cursor(VteTerminal *terminal, gpointer data) + VteTerminalAccessible *accessible = (VteTerminalAccessible *)data; + VteTerminalAccessiblePrivate *priv = (VteTerminalAccessiblePrivate *)_vte_terminal_accessible_get_instance_private(accessible); + ++ if (!vte_terminal_get_enable_a11y (terminal)) ++ return; ++ + _vte_debug_print(VTE_DEBUG_ALLY, + "Invalidating accessibility cursor.\n"); + priv->snapshot_caret_invalid = TRUE; +@@ -807,6 +819,9 @@ vte_terminal_accessible_title_changed(VteTerminal *terminal, gpointer data) + { + VteTerminalAccessible *accessible = (VteTerminalAccessible *)data; + ++ if (!vte_terminal_get_enable_a11y (terminal)) ++ return; ++ + atk_object_set_description(ATK_OBJECT(accessible), vte_terminal_get_window_title(terminal)); + } + +@@ -820,6 +835,9 @@ vte_terminal_accessible_visibility_notify(VteTerminal *terminal, + GtkWidget *widget; + gboolean visible; + ++ if (!vte_terminal_get_enable_a11y (terminal)) ++ return FALSE; ++ + visible = event->state != GDK_VISIBILITY_FULLY_OBSCURED; + /* The VISIBLE state indicates that this widget is "visible". */ + atk_object_notify_state_change(ATK_OBJECT(accessible), +@@ -851,6 +869,9 @@ vte_terminal_accessible_selection_changed (VteTerminal *terminal, + { + VteTerminalAccessible *accessible = (VteTerminalAccessible *)data; + ++ if (!vte_terminal_get_enable_a11y (terminal)) ++ return; ++ + g_signal_emit_by_name (accessible, "text_selection_changed"); + } + +diff --git a/src/vtegtk.cc b/src/vtegtk.cc +index 92eb6881..082f3b95 100644 +--- a/src/vtegtk.cc ++++ b/src/vtegtk.cc +@@ -65,9 +65,11 @@ + #include + + #if WITH_A11Y +-#if VTE_GTK == 3 +-#include "vteaccess.h" +-#endif /* VTE_GTK == 3 */ ++# if VTE_GTK == 3 ++# include "vteaccess.h" ++# elif VTE_GTK == 4 ++# include "vteaccess-gtk4.h" ++# endif + #endif /* WITH_A11Y */ + + #if WITH_ICU +@@ -155,6 +157,14 @@ private: + std::shared_ptr m_widget; + }; + ++#if defined(WITH_A11Y) && VTE_GTK == 4 ++# define VTE_IMPLEMENT_ACCESSIBLE \ ++ G_IMPLEMENT_INTERFACE(GTK_TYPE_ACCESSIBLE_TEXT, \ ++ _vte_accessible_text_iface_init) ++#else ++# define VTE_IMPLEMENT_ACCESSIBLE ++#endif ++ + #if VTE_DEBUG + G_DEFINE_TYPE_WITH_CODE(VteTerminal, vte_terminal, GTK_TYPE_WIDGET, + { +@@ -163,6 +173,7 @@ G_DEFINE_TYPE_WITH_CODE(VteTerminal, vte_terminal, GTK_TYPE_WIDGET, + } + g_type_add_class_private (g_define_type_id, sizeof (VteTerminalClassPrivate)); + G_IMPLEMENT_INTERFACE(GTK_TYPE_SCROLLABLE, nullptr) ++ VTE_IMPLEMENT_ACCESSIBLE + if (_vte_debug_on(VTE_DEBUG_LIFECYCLE)) { + g_printerr("vte_terminal_get_type()\n"); + }) +@@ -173,7 +184,8 @@ G_DEFINE_TYPE_WITH_CODE(VteTerminal, vte_terminal, GTK_TYPE_WIDGET, + g_type_add_instance_private(g_define_type_id, sizeof(VteTerminalPrivate)); + } + g_type_add_class_private (g_define_type_id, sizeof (VteTerminalClassPrivate)); +- G_IMPLEMENT_INTERFACE(GTK_TYPE_SCROLLABLE, nullptr)) ++ G_IMPLEMENT_INTERFACE(GTK_TYPE_SCROLLABLE, nullptr) ++ VTE_IMPLEMENT_ACCESSIBLE) + #endif + + static inline auto +@@ -901,6 +913,10 @@ try + gtk_widget_set_has_window(&terminal->widget, FALSE); + #endif + ++#if defined(WITH_A11Y) && VTE_GTK == 4 ++ _vte_accessible_text_init (GTK_ACCESSIBLE_TEXT (terminal)); ++#endif ++ + place = vte_terminal_get_instance_private(terminal); + new (place) VteTerminalPrivate{terminal}; + } +@@ -1011,6 +1027,9 @@ try + case PROP_DELETE_BINDING: + g_value_set_enum (value, widget->delete_binding()); + break; ++ case PROP_ENABLE_A11Y: ++ g_value_set_boolean (value, vte_terminal_get_enable_a11y (terminal)); ++ break; + case PROP_ENABLE_BIDI: + g_value_set_boolean (value, vte_terminal_get_enable_bidi (terminal)); + break; +@@ -1166,6 +1185,9 @@ try + case PROP_DELETE_BINDING: + vte_terminal_set_delete_binding (terminal, (VteEraseBinding)g_value_get_enum (value)); + break; ++ case PROP_ENABLE_A11Y: ++ vte_terminal_set_enable_a11y (terminal, g_value_get_boolean (value)); ++ break; + case PROP_ENABLE_BIDI: + vte_terminal_set_enable_bidi (terminal, g_value_get_boolean (value)); + break; +@@ -2226,6 +2248,22 @@ vte_terminal_class_init(VteTerminalClass *klass) + VTE_ERASE_AUTO, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); + ++ /** ++ * VteTerminal:enable-a11y: ++ * ++ * Controls whether or not a11y is enabled for the widget. ++ * ++ * Since: 0.78 ++ */ ++ pspecs[PROP_ENABLE_A11Y] = ++ g_param_spec_boolean ("enable-a11y", NULL, NULL, ++#if VTE_GTK == 3 ++ TRUE, ++#else ++ FALSE, ++#endif ++ (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); ++ + /** + * VteTerminal:enable-bidi: + * +@@ -2631,10 +2669,12 @@ vte_terminal_class_init(VteTerminalClass *klass) + err.assert_no_error(); + #endif + +-#if VTE_GTK == 3 + #if WITH_A11Y ++#if VTE_GTK == 3 + /* a11y */ + gtk_widget_class_set_accessible_type(widget_class, VTE_TYPE_TERMINAL_ACCESSIBLE); ++#elif VTE_GTK == 4 ++ gtk_widget_class_set_accessible_role(widget_class, GTK_ACCESSIBLE_ROLE_TERMINAL); + #endif + #endif + } +@@ -5578,6 +5618,53 @@ catch (...) + vte::log_exception(); + } + ++/** ++ * vte_terminal_get_enable_a11y: ++ * @terminal: a #VteTerminal ++ * ++ * Checks whether the terminal communicates with a11y backends ++ * ++ * Returns: %TRUE if a11y is enabled, %FALSE if not ++ * ++ * Since: 0.78 ++ */ ++gboolean ++vte_terminal_get_enable_a11y(VteTerminal *terminal) noexcept ++try ++{ ++ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), false); ++ return IMPL(terminal)->m_enable_a11y; ++} ++catch (...) ++{ ++ vte::log_exception(); ++ return false; ++} ++ ++/** ++ * vte_terminal_set_enable_a11y: ++ * @terminal: a #VteTerminal ++ * @enable_a11y: %TRUE to enable a11y support ++ * ++ * Controls whether or not the terminal will communicate with a11y backends. ++ * ++ * Since: 0.78 ++ */ ++void ++vte_terminal_set_enable_a11y(VteTerminal *terminal, ++ gboolean enable_a11y) noexcept ++try ++{ ++ g_return_if_fail(VTE_IS_TERMINAL(terminal)); ++ ++ if (IMPL(terminal)->set_enable_a11y(enable_a11y != FALSE)) ++ g_object_notify_by_pspec(G_OBJECT(terminal), pspecs[PROP_ENABLE_A11Y]); ++} ++catch (...) ++{ ++ vte::log_exception(); ++} ++ + /** + * vte_terminal_get_enable_bidi: + * @terminal: a #VteTerminal +diff --git a/src/vtegtk.hh b/src/vtegtk.hh +index 1d1383af..a73957a0 100644 +--- a/src/vtegtk.hh ++++ b/src/vtegtk.hh +@@ -75,6 +75,7 @@ enum { + PROP_CURRENT_DIRECTORY_URI, + PROP_CURRENT_FILE_URI, + PROP_DELETE_BINDING, ++ PROP_ENABLE_A11Y, + PROP_ENABLE_BIDI, + PROP_ENABLE_FALLBACK_SCROLLING, + PROP_ENABLE_SHAPING, +diff --git a/src/vteinternal.hh b/src/vteinternal.hh +index ed57ad16..4f8ade65 100644 +--- a/src/vteinternal.hh ++++ b/src/vteinternal.hh +@@ -776,6 +776,13 @@ public: + const char *m_hyperlink_hover_uri; /* data is owned by the ring */ + long m_hyperlink_auto_id{0}; + ++ /* Accessibility support */ ++#if VTE_GTK == 3 ++ bool m_enable_a11y{true}; ++#elif VTE_GTK == 4 ++ bool m_enable_a11y{false}; ++#endif ++ + /* RingView and friends */ + vte::base::RingView m_ringview; + bool m_enable_bidi{true}; +@@ -1505,6 +1512,7 @@ public: + bool set_cursor_style(CursorStyle style); + bool set_delete_binding(EraseMode binding); + auto delete_binding() const noexcept { return m_delete_binding; } ++ bool set_enable_a11y(bool setting); + bool set_enable_bidi(bool setting); + bool set_enable_shaping(bool setting); + bool set_encoding(char const* codeset, +-- +2.44.0 + + +From 64ea71aef8878971fbca1c5f97b38be77a848eeb Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 -Subject: [PATCH 01/11] Add sequences and signals for desktop notification +Subject: [PATCH 02/12] Add sequences and signals for desktop notification Add sequences OSC 777 ; notify ; SUMMARY ; BODY BEL @@ -36,10 +1361,10 @@ index 241128c3..4412cf3d 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index 92b19fc8..03868606 100644 +index 6f5ed505..dd24a147 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10191,6 +10191,16 @@ Terminal::emit_pending_signals() +@@ -10784,6 +10784,16 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); @@ -57,10 +1382,10 @@ index 92b19fc8..03868606 100644 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 69b26ac3..13caec60 100644 +index 33360909..36a32881 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -109,9 +109,11 @@ struct _VteTerminalClass { +@@ -114,9 +114,11 @@ struct _VteTerminalClass { void (*bell)(VteTerminal* terminal); #if _VTE_GTK == 3 @@ -72,12 +1397,12 @@ index 69b26ac3..13caec60 100644 + gpointer _extra_padding[2]; #endif /* _VTE_GTK == 3 */ - /* Add new vfuncs here, and subtract from the padding below. */ + void (*setup_context_menu)(VteTerminal* terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 59b74367..e9af14d1 100644 +index 082f3b95..e253a379 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -1263,6 +1263,9 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1373,6 +1373,9 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->child_exited = NULL; klass->encoding_changed = NULL; klass->char_size_changed = NULL; @@ -87,7 +1412,7 @@ index 59b74367..e9af14d1 100644 klass->window_title_changed = NULL; klass->icon_title_changed = NULL; klass->selection_changed = NULL; -@@ -1346,6 +1349,28 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1456,6 +1459,28 @@ vte_terminal_class_init(VteTerminalClass *klass) G_OBJECT_CLASS_TYPE(klass), g_cclosure_marshal_VOID__INTv); @@ -117,13 +1442,13 @@ index 59b74367..e9af14d1 100644 * VteTerminal::window-title-changed: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 6b7a1ea2..d5379b16 100644 +index a73957a0..bd49ed9b 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh -@@ -52,6 +52,9 @@ enum { - SIGNAL_RESIZE_WINDOW, +@@ -53,6 +53,9 @@ enum { SIGNAL_RESTORE_WINDOW, SIGNAL_SELECTION_CHANGED, + SIGNAL_SETUP_CONTEXT_MENU, +#if _VTE_GTK == 3 + SIGNAL_NOTIFICATION_RECEIVED, +#endif @@ -131,10 +1456,10 @@ index 6b7a1ea2..d5379b16 100644 LAST_SIGNAL }; diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 0d454649..8dba726c 100644 +index 4f8ade65..d7c82654 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -662,6 +662,12 @@ public: +@@ -710,6 +710,12 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -147,7 +1472,7 @@ index 0d454649..8dba726c 100644 std::string m_window_title{}; std::string m_current_directory_uri{}; std::string m_current_file_uri{}; -@@ -675,6 +681,9 @@ public: +@@ -723,6 +729,9 @@ public: TITLE = 1u << 0, CWD = 1u << 1, CWF = 1u << 2, @@ -157,7 +1482,7 @@ index 0d454649..8dba726c 100644 }; unsigned m_pending_changes{0}; -@@ -1506,6 +1515,11 @@ public: +@@ -1662,6 +1671,11 @@ public: int osc) noexcept; /* OSC handlers */ @@ -170,10 +1495,10 @@ index 0d454649..8dba726c 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 874d2405..dda487c4 100644 +index 904837e1..7702c477 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1376,6 +1376,35 @@ Terminal::delete_lines(vte::grid::row_t param) +@@ -1276,6 +1276,35 @@ Terminal::erase_in_line(vte::parser::Sequence const& seq) m_text_deleted_flag = TRUE; } @@ -209,7 +1534,7 @@ index 874d2405..dda487c4 100644 bool Terminal::get_osc_color_index(int osc, int value, -@@ -6541,6 +6570,12 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6596,6 +6625,12 @@ Terminal::OSC(vte::parser::Sequence const& seq) reset_color(VTE_HIGHLIGHT_FG, VTE_COLOR_SOURCE_ESCAPE); break; @@ -222,7 +1547,7 @@ index 874d2405..dda487c4 100644 case VTE_OSC_XTERM_SET_ICON_TITLE: case VTE_OSC_XTERM_SET_XPROPERTY: case VTE_OSC_XTERM_SET_COLOR_MOUSE_CURSOR_FG: -@@ -6582,7 +6617,9 @@ Terminal::OSC(vte::parser::Sequence const& seq) +@@ -6636,7 +6671,9 @@ 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: @@ -233,13 +1558,13 @@ index 874d2405..dda487c4 100644 default: break; -- -2.40.0 +2.44.0 -From 74a4ad9c4472c9c628945c336ca1bfb535b105d6 Mon Sep 17 00:00:00 2001 +From d129d56171c4059a8622a63e7a27ee9306590377 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 -Subject: [PATCH 02/11] vte.sh: Emit OSC 777 from PROMPT_COMMAND +Subject: [PATCH 03/12] 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 @@ -251,41 +1576,41 @@ 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 242d6c42..50242223 100644 +index 2328a9ec..157bd29c 100644 --- a/src/vte.sh.in +++ b/src/vte.sh.in @@ -33,10 +33,12 @@ __vte_osc7 () { } __vte_prompt_command() { -+ local command=$(HISTTIMEFORMAT= history 1 | sed 's/^ *[0-9]\+ *//') -+ command="${command//;/ }" - local pwd='~' - [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} - pwd="${pwd//[[:cntrl:]]}" -- printf "\033]0;%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${pwd}" -+ printf '\033]777;notify;Command completed;%s\033\\\033]0;%s@%s:%s\033\\' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" - __vte_osc7 ++ local command=$(HISTTIMEFORMAT= history 1 | sed 's/^ *[0-9]\+ *//') ++ command="${command//;/ }" + local pwd='~' + [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} + pwd="${pwd//[[:cntrl:]]}" +- printf "\033]0;%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${pwd}" ++ printf '\033]777;notify;Command completed;%s\033\\\033]0;%s@%s:%s\033\\' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" + __vte_osc7 } -- -2.40.0 +2.44.0 -From e67e4455cc51f9d272abd17770ae3cd395932695 Mon Sep 17 00:00:00 2001 +From da46de7cb882f7682d3605f374730ddccd9dfa0d Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 -Subject: [PATCH 03/11] Test the notification-received signal +Subject: [PATCH 04/12] Test the notification-received signal --- - src/app/app.cc | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) + src/app/app.cc | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/app/app.cc b/src/app/app.cc -index a69d9327..29e0e953 100644 +index e4e7b978..875022e9 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -2286,6 +2286,14 @@ window_window_title_changed_cb(VteTerminal* terminal, +@@ -2943,6 +2943,14 @@ window_window_title_changed_cb(VteTerminal* terminal, gtk_window_set_title(GTK_WINDOW(window), title && title[0] ? title : "Terminal"); } @@ -300,7 +1625,7 @@ index a69d9327..29e0e953 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2582,8 +2590,10 @@ vteapp_window_constructed(GObject *object) +@@ -3234,8 +3242,9 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); @@ -308,18 +1633,17 @@ index a69d9327..29e0e953 100644 #if VTE_GTK == 3 + g_signal_connect(window->terminal, "notification-received", G_CALLBACK(notification_received_cb), NULL); + -+ /* Settings */ - if (options.no_double_buffer) { + if (!options.double_buffer) { G_GNUC_BEGIN_IGNORE_DEPRECATIONS; gtk_widget_set_double_buffered(GTK_WIDGET(window->terminal), false); -- -2.40.0 +2.44.0 -From 2514b0691278b74cab734cf29a47c7a86b138f5d Mon Sep 17 00:00:00 2001 +From 6a61519759cc00a7e8e2469eb4bebcfe39307215 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 -Subject: [PATCH 04/11] Add a property to configure the scroll speed +Subject: [PATCH 05/12] 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. @@ -334,10 +1658,10 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1103380 5 files changed, 99 insertions(+) diff --git a/src/vte.cc b/src/vte.cc -index 03868606..1c9abbab 100644 +index dd24a147..24deaead 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9391,6 +9391,9 @@ vte_cairo_get_clip_region(cairo_t *cr) +@@ -10033,6 +10033,9 @@ vte_cairo_get_clip_region(cairo_t *cr) bool Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) { @@ -347,7 +1671,7 @@ index 03868606..1c9abbab 100644 gdouble v; gint cnt, i; int button; -@@ -9425,7 +9428,17 @@ Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) +@@ -10068,7 +10071,17 @@ Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) return true; } @@ -365,7 +1689,7 @@ index 03868606..1c9abbab 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -9735,6 +9748,18 @@ Terminal::decscusr_cursor_shape() const noexcept +@@ -10399,6 +10412,18 @@ Terminal::decscusr_cursor_shape() const noexcept } } @@ -385,10 +1709,10 @@ index 03868606..1c9abbab 100644 Terminal::set_scrollback_lines(long lines) { diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 13caec60..5985dda2 100644 +index 36a32881..ec56a0ce 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -330,6 +330,12 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal, +@@ -343,6 +343,12 @@ 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 +1726,10 @@ index 13caec60..5985dda2 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index e9af14d1..835470f7 100644 +index e253a379..a22a7049 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -1014,6 +1014,11 @@ try +@@ -1072,6 +1072,11 @@ try case PROP_REWRAP_ON_RESIZE: g_value_set_boolean (value, vte_terminal_get_rewrap_on_resize (terminal)); break; @@ -417,7 +1741,7 @@ index e9af14d1..835470f7 100644 case PROP_SCROLLBACK_LINES: g_value_set_uint (value, vte_terminal_get_scrollback_lines(terminal)); break; -@@ -1135,6 +1140,11 @@ try +@@ -1225,6 +1230,11 @@ try case PROP_REWRAP_ON_RESIZE: vte_terminal_set_rewrap_on_resize (terminal, g_value_get_boolean (value)); break; @@ -429,7 +1753,7 @@ index e9af14d1..835470f7 100644 case PROP_SCROLLBACK_LINES: vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); break; -@@ -2235,6 +2245,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -2444,6 +2454,23 @@ vte_terminal_class_init(VteTerminalClass *klass) TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -453,7 +1777,7 @@ index e9af14d1..835470f7 100644 /** * VteTerminal:scrollback-lines: * -@@ -6060,6 +6087,38 @@ catch (...) +@@ -6503,6 +6530,38 @@ catch (...) return -1; } @@ -493,10 +1817,10 @@ index e9af14d1..835470f7 100644 * vte_terminal_set_scrollback_lines: * @terminal: a #VteTerminal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index d5379b16..3f1ae86d 100644 +index bd49ed9b..125c109d 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh -@@ -88,6 +88,9 @@ enum { +@@ -93,6 +93,9 @@ enum { PROP_MOUSE_POINTER_AUTOHIDE, PROP_PTY, PROP_REWRAP_ON_RESIZE, @@ -504,14 +1828,14 @@ index d5379b16..3f1ae86d 100644 + PROP_SCROLL_SPEED, +#endif PROP_SCROLLBACK_LINES, + PROP_SCROLL_ON_INSERT, PROP_SCROLL_ON_KEYSTROKE, - PROP_SCROLL_ON_OUTPUT, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 8dba726c..4629c95f 100644 +index d7c82654..53737f65 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -428,6 +428,9 @@ public: - bool m_fallback_scrolling{true}; +@@ -471,6 +471,9 @@ public: + bool m_scroll_on_insert{false}; bool m_scroll_on_output{false}; bool m_scroll_on_keystroke{true}; +#if _VTE_GTK == 3 @@ -520,7 +1844,7 @@ index 8dba726c..4629c95f 100644 vte::grid::row_t m_scrollback_lines{0}; inline auto scroll_limit_lower() const noexcept -@@ -1385,6 +1388,9 @@ public: +@@ -1534,6 +1537,9 @@ public: bool set_input_enabled(bool enabled); bool set_mouse_autohide(bool autohide); bool set_rewrap_on_resize(bool rewrap); @@ -531,24 +1855,24 @@ index 8dba726c..4629c95f 100644 bool set_fallback_scrolling(bool set); auto fallback_scrolling() const noexcept { return m_fallback_scrolling; } -- -2.40.0 +2.44.0 -From 431763fb3dc23ffc0144c8739d9b898bf7a436f4 Mon Sep 17 00:00:00 2001 +From a3a76d2dcd4f48dbe4c19c653dbd647d2c9d4e4d Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 -Subject: [PATCH 05/11] Test the scroll-speed property +Subject: [PATCH 06/12] Test the scroll-speed property https://bugzilla.redhat.com/show_bug.cgi?id=1103380 --- - src/app/app.cc | 10 ++++++++++ - 1 file changed, 10 insertions(+) + src/app/app.cc | 12 ++++++++++++ + 1 file changed, 12 insertions(+) diff --git a/src/app/app.cc b/src/app/app.cc -index 29e0e953..a3cc9257 100644 +index 875022e9..f1b96a33 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -118,6 +118,9 @@ public: +@@ -135,6 +135,9 @@ public: int verbosity{0}; double cell_height_scale{1.0}; double cell_width_scale{1.0}; @@ -558,21 +1882,23 @@ index 29e0e953..a3cc9257 100644 VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM}; VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK}; VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS}; -@@ -700,6 +703,10 @@ 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 }, +@@ -1309,6 +1312,12 @@ public: + "Enable the setting of the icon title", nullptr }, + { "output-file", 0, 0, G_OPTION_ARG_FILENAME, &output_filename, + "Save terminal contents to file at exit", nullptr }, +#if _VTE_GTK == 3 + { "scroll-speed", 0, 0, G_OPTION_ARG_INT, &scroll_speed, + "Specify the scroll speed", nullptr }, +#endif - { "scroll-unit-is-pixels", 0, 0, G_OPTION_ARG_NONE, &scroll_unit_is_pixels, - "Use pixels as scroll unit", nullptr }, ++ { "scroll-unit-is-pixels", 0, 0, G_OPTION_ARG_NONE, &scroll_unit_is_pixels, ++ "Use pixels as scroll unit", nullptr }, { "scrollback-lines", 'n', 0, G_OPTION_ARG_INT, &scrollback_lines, -@@ -2626,6 +2633,9 @@ 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); + "Specify the number of scrollback-lines (-1 for infinite)", nullptr }, + { "title", 0, 0, G_OPTION_ARG_STRING, &title, "Set the initial title of the window", "TITLE" }, +@@ -3279,6 +3288,9 @@ vteapp_window_constructed(GObject *object) + vte_terminal_set_scroll_on_insert(window->terminal, options.scroll_on_insert); + vte_terminal_set_scroll_on_output(window->terminal, options.scroll_on_output); + vte_terminal_set_scroll_on_keystroke(window->terminal, options.scroll_on_keystroke); +#if _VTE_GTK == 3 + vte_terminal_set_scroll_speed(window->terminal, options.scroll_speed); +#endif @@ -580,13 +1906,13 @@ index 29e0e953..a3cc9257 100644 vte_terminal_set_scrollback_lines(window->terminal, options.scrollback_lines); vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); -- -2.40.0 +2.44.0 -From e20d22a23be7383f8114dc59598be6c8a9bb73a0 Mon Sep 17 00:00:00 2001 +From 43dae28d61af42ccaa92854eaa64d5ba7d6d466d Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 -Subject: [PATCH 06/11] Support preexec notifications from an interactive shell +Subject: [PATCH 07/12] Support preexec notifications from an interactive shell Add sequences OSC 777 ; preexec BEL @@ -612,10 +1938,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 1c9abbab..32d3315a 100644 +index 24deaead..e9e51434 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10224,6 +10224,12 @@ Terminal::emit_pending_signals() +@@ -10817,6 +10817,12 @@ Terminal::emit_pending_signals() m_notification_summary.c_str(), m_notification_body.c_str()); } @@ -629,7 +1955,7 @@ index 1c9abbab..32d3315a 100644 if (m_pending_changes & vte::to_integral(PendingChanges::TITLE)) { diff --git a/src/vte.sh.in b/src/vte.sh.in -index 50242223..01b44e23 100644 +index 157bd29c..ffc0942a 100644 --- a/src/vte.sh.in +++ b/src/vte.sh.in @@ -51,9 +51,9 @@ if [[ -n "${BASH_VERSION:-}" ]]; then @@ -643,12 +1969,12 @@ index 50242223..01b44e23 100644 + PROMPT_COMMAND="__vte_prompt_command" && PS0=$(printf "\033]777;preexec\033\\") fi - elif [[ -n "${ZSH_VERSION:-}" ]]; then + # Shell integration diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 5985dda2..d6721a52 100644 +index ec56a0ce..efd8732b 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -110,10 +110,11 @@ struct _VteTerminalClass { +@@ -115,10 +115,11 @@ struct _VteTerminalClass { #if _VTE_GTK == 3 void (*notification_received)(VteTerminal* terminal, const gchar *summary, const gchar *body); @@ -660,12 +1986,12 @@ index 5985dda2..d6721a52 100644 + gpointer _extra_padding[1]; #endif /* _VTE_GTK == 3 */ - /* Add new vfuncs here, and subtract from the padding below. */ + void (*setup_context_menu)(VteTerminal* terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 835470f7..8dd7ea50 100644 +index a22a7049..f8d971c1 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -1275,6 +1275,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1385,6 +1385,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->char_size_changed = NULL; #if _VTE_GTK == 3 klass->notification_received = NULL; @@ -673,7 +1999,7 @@ index 835470f7..8dd7ea50 100644 #endif klass->window_title_changed = NULL; klass->icon_title_changed = NULL; -@@ -1379,6 +1380,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1489,6 +1490,23 @@ vte_terminal_class_init(VteTerminalClass *klass) _vte_marshal_VOID__STRING_STRING, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -698,22 +2024,22 @@ index 835470f7..8dd7ea50 100644 /** diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 3f1ae86d..0c86fb6e 100644 +index 125c109d..6252a2c8 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh -@@ -53,6 +53,7 @@ enum { - SIGNAL_RESTORE_WINDOW, +@@ -54,6 +54,7 @@ enum { SIGNAL_SELECTION_CHANGED, + SIGNAL_SETUP_CONTEXT_MENU, #if _VTE_GTK == 3 + SIGNAL_SHELL_PREEXEC, SIGNAL_NOTIFICATION_RECEIVED, #endif SIGNAL_WINDOW_TITLE_CHANGED, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 4629c95f..dfa3c0b9 100644 +index 53737f65..987aec0e 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -686,6 +686,7 @@ public: +@@ -734,6 +734,7 @@ public: CWF = 1u << 2, #if _VTE_GTK == 3 NOTIFICATION = 1u << 3, @@ -722,10 +2048,10 @@ index 4629c95f..dfa3c0b9 100644 }; unsigned m_pending_changes{0}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index dda487c4..f2c86b2c 100644 +index 7702c477..17fb51f5 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1402,6 +1402,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1302,6 +1302,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, m_notification_body = *token; return; } @@ -737,13 +2063,13 @@ index dda487c4..f2c86b2c 100644 #endif -- -2.40.0 +2.44.0 -From b3b23900327e439b50b29372ee89ce887e1c4d06 Mon Sep 17 00:00:00 2001 +From 1b4029e85ad578dc602fc23bc5be07cd1341cfd0 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 20 Apr 2018 18:21:53 +0200 -Subject: [PATCH 07/11] Test the shell-preexec signal +Subject: [PATCH 08/12] Test the shell-preexec signal https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 @@ -752,10 +2078,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 1 file changed, 7 insertions(+) diff --git a/src/app/app.cc b/src/app/app.cc -index a3cc9257..813b6d1d 100644 +index f1b96a33..4ccff275 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -2301,6 +2301,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -2960,6 +2960,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -768,22 +2094,22 @@ index a3cc9257..813b6d1d 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2599,6 +2605,7 @@ vteapp_window_constructed(GObject *object) +@@ -3253,6 +3259,7 @@ vteapp_window_constructed(GObject *object) #if VTE_GTK == 3 g_signal_connect(window->terminal, "notification-received", G_CALLBACK(notification_received_cb), NULL); + g_signal_connect(window->terminal, "shell-preexec", G_CALLBACK(shell_preexec_cb), NULL); - /* Settings */ - if (options.no_double_buffer) { + if (!options.double_buffer) { + G_GNUC_BEGIN_IGNORE_DEPRECATIONS; -- -2.40.0 +2.44.0 -From 2058ed67cd3d427fb06a25c58c69bf9d9ae35a5e Mon Sep 17 00:00:00 2001 +From 9f6f4ee417133de6149494036418497b1e620725 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:20:30 +0200 -Subject: [PATCH 08/11] Support precmd notifications from an interactive shell +Subject: [PATCH 09/12] Support precmd notifications from an interactive shell Add sequences OSC 777 ; precmd BEL @@ -809,10 +2135,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 32d3315a..98e60fcc 100644 +index e9e51434..94a9db05 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10230,6 +10230,12 @@ Terminal::emit_pending_signals() +@@ -10823,6 +10823,12 @@ Terminal::emit_pending_signals() "Emitting `shell-preexec'.\n"); g_signal_emit(freezer.get(), signals[SIGNAL_SHELL_PREEXEC], 0); } @@ -826,23 +2152,23 @@ index 32d3315a..98e60fcc 100644 if (m_pending_changes & vte::to_integral(PendingChanges::TITLE)) { diff --git a/src/vte.sh.in b/src/vte.sh.in -index 01b44e23..877fe93d 100644 +index ffc0942a..01e56c46 100644 --- a/src/vte.sh.in +++ b/src/vte.sh.in @@ -38,7 +38,7 @@ __vte_prompt_command() { - local pwd='~' - [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} - pwd="${pwd//[[:cntrl:]]}" -- printf '\033]777;notify;Command completed;%s\033\\\033]0;%s@%s:%s\033\\' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" -+ printf '\033]777;notify;Command completed;%s\033\\\033]777;precmd\033\\\033]0;%s@%s:%s\033\\' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" - __vte_osc7 + local pwd='~' + [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} + pwd="${pwd//[[:cntrl:]]}" +- printf '\033]777;notify;Command completed;%s\033\\\033]0;%s@%s:%s\033\\' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" ++ printf '\033]777;notify;Command completed;%s\033\\\033]777;precmd\033\\\033]0;%s@%s:%s\033\\' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" + __vte_osc7 } diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index d6721a52..e488dc40 100644 +index efd8732b..a2ff1b01 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -110,11 +110,8 @@ struct _VteTerminalClass { +@@ -115,11 +115,8 @@ struct _VteTerminalClass { #if _VTE_GTK == 3 void (*notification_received)(VteTerminal* terminal, const gchar *summary, const gchar *body); @@ -854,12 +2180,12 @@ index d6721a52..e488dc40 100644 - gpointer _extra_padding[1]; #endif /* _VTE_GTK == 3 */ - /* Add new vfuncs here, and subtract from the padding below. */ + void (*setup_context_menu)(VteTerminal* terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 8dd7ea50..00045f3a 100644 +index f8d971c1..d553a002 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -1275,6 +1275,7 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1385,6 +1385,7 @@ vte_terminal_class_init(VteTerminalClass *klass) klass->char_size_changed = NULL; #if _VTE_GTK == 3 klass->notification_received = NULL; @@ -867,7 +2193,7 @@ index 8dd7ea50..00045f3a 100644 klass->shell_preexec = NULL; #endif klass->window_title_changed = NULL; -@@ -1381,6 +1382,23 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -1491,6 +1492,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -892,22 +2218,22 @@ index 8dd7ea50..00045f3a 100644 * VteTerminal::shell-preexec: * @vteterminal: the object which received the signal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 0c86fb6e..e871b946 100644 +index 6252a2c8..3798ebc3 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh -@@ -53,6 +53,7 @@ enum { - SIGNAL_RESTORE_WINDOW, +@@ -54,6 +54,7 @@ enum { SIGNAL_SELECTION_CHANGED, + SIGNAL_SETUP_CONTEXT_MENU, #if _VTE_GTK == 3 + SIGNAL_SHELL_PRECMD, SIGNAL_SHELL_PREEXEC, SIGNAL_NOTIFICATION_RECEIVED, #endif diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index dfa3c0b9..b8e30d15 100644 +index 987aec0e..cfe2e0f0 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -687,6 +687,7 @@ public: +@@ -735,6 +735,7 @@ public: #if _VTE_GTK == 3 NOTIFICATION = 1u << 3, SHELL_PREEXEC = 1u << 4, @@ -916,10 +2242,10 @@ index dfa3c0b9..b8e30d15 100644 }; unsigned m_pending_changes{0}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index f2c86b2c..bae18595 100644 +index 17fb51f5..a1155b19 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1403,7 +1403,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1303,7 +1303,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, return; } @@ -931,13 +2257,13 @@ index f2c86b2c..bae18595 100644 } } -- -2.40.0 +2.44.0 -From 468a91b1d8fe95f3bd814361777dd171b9de3df6 Mon Sep 17 00:00:00 2001 +From c8fbd37a4d7cefb2d97b2f585773cdcfe731e570 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:30:48 +0200 -Subject: [PATCH 09/11] Test the shell-precmd signal +Subject: [PATCH 10/12] Test the shell-precmd signal https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 @@ -946,10 +2272,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 1 file changed, 7 insertions(+) diff --git a/src/app/app.cc b/src/app/app.cc -index 813b6d1d..eb962e86 100644 +index 4ccff275..bfb3d9f8 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -2301,6 +2301,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -2960,6 +2960,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -962,22 +2288,22 @@ index 813b6d1d..eb962e86 100644 static void shell_preexec_cb(VteTerminal *terminal) { -@@ -2605,6 +2611,7 @@ vteapp_window_constructed(GObject *object) +@@ -3259,6 +3265,7 @@ vteapp_window_constructed(GObject *object) #if VTE_GTK == 3 g_signal_connect(window->terminal, "notification-received", G_CALLBACK(notification_received_cb), NULL); + g_signal_connect(window->terminal, "shell-precmd", G_CALLBACK(shell_precmd_cb), NULL); g_signal_connect(window->terminal, "shell-preexec", G_CALLBACK(shell_preexec_cb), NULL); - /* Settings */ + if (!options.double_buffer) { -- -2.40.0 +2.44.0 -From 329db6eea1479a91f7de428d0b97173f67348b7c Mon Sep 17 00:00:00 2001 +From 805a31048470d65a64151d5d7ab69da52d534128 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 10 Jun 2019 20:30:18 +0200 -Subject: [PATCH 10/11] Support tracking the active container inside the +Subject: [PATCH 11/12] Support tracking the active container inside the terminal Add sequences @@ -1016,10 +2342,10 @@ agreed upon across multiple different terminal emulators [1]. 6 files changed, 211 insertions(+) diff --git a/src/vte.cc b/src/vte.cc -index 98e60fcc..92ab5711 100644 +index 94a9db05..645bf330 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10236,6 +10236,14 @@ Terminal::emit_pending_signals() +@@ -10829,6 +10829,14 @@ Terminal::emit_pending_signals() "Emitting `shell-precmd'.\n"); g_signal_emit(freezer.get(), signals[SIGNAL_SHELL_PRECMD], 0); } @@ -1035,10 +2361,10 @@ index 98e60fcc..92ab5711 100644 if (m_pending_changes & vte::to_integral(PendingChanges::TITLE)) { diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index e488dc40..b1c70824 100644 +index a2ff1b01..6d07e28e 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h -@@ -566,6 +566,12 @@ _VTE_PUBLIC +@@ -571,6 +571,12 @@ _VTE_PUBLIC glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); _VTE_PUBLIC const char *vte_terminal_get_window_title(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); @@ -1052,10 +2378,10 @@ index e488dc40..b1c70824 100644 const char *vte_terminal_get_current_directory_uri(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); _VTE_PUBLIC diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 00045f3a..83ea636e 100644 +index d553a002..1af238e1 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -963,6 +963,14 @@ try +@@ -1015,6 +1015,14 @@ try case PROP_CURSOR_BLINK_MODE: g_value_set_enum (value, vte_terminal_get_cursor_blink_mode (terminal)); break; @@ -1070,7 +2396,7 @@ index 00045f3a..83ea636e 100644 case PROP_CURRENT_DIRECTORY_URI: g_value_set_string (value, vte_terminal_get_current_directory_uri (terminal)); break; -@@ -2388,6 +2396,29 @@ vte_terminal_class_init(VteTerminalClass *klass) +@@ -2613,6 +2621,29 @@ vte_terminal_class_init(VteTerminalClass *klass) NULL, (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); @@ -1100,7 +2426,7 @@ index 00045f3a..83ea636e 100644 /** * VteTerminal:current-directory-uri: * -@@ -5204,6 +5235,58 @@ catch (...) +@@ -5547,6 +5578,58 @@ catch (...) return -1; } @@ -1160,11 +2486,11 @@ index 00045f3a..83ea636e 100644 * vte_terminal_get_current_directory_uri: * @terminal: a #VteTerminal diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index e871b946..0a31d205 100644 +index 3798ebc3..065a6744 100644 --- a/src/vtegtk.hh +++ b/src/vtegtk.hh -@@ -74,6 +74,10 @@ enum { - PROP_CJK_AMBIGUOUS_WIDTH, +@@ -77,6 +77,10 @@ enum { + PROP_CONTEXT_MENU, PROP_CURSOR_BLINK_MODE, PROP_CURSOR_SHAPE, +#if _VTE_GTK == 3 @@ -1175,10 +2501,10 @@ index e871b946..0a31d205 100644 PROP_CURRENT_FILE_URI, PROP_DELETE_BINDING, diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index b8e30d15..0c52442b 100644 +index cfe2e0f0..ccd81bef 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -59,6 +59,9 @@ +@@ -63,6 +63,9 @@ #include #include #include @@ -1188,7 +2514,7 @@ index b8e30d15..0c52442b 100644 #include #include #include -@@ -110,6 +113,20 @@ typedef enum _VteCharacterReplacement { +@@ -121,6 +124,20 @@ typedef enum _VteCharacterReplacement { VTE_CHARACTER_REPLACEMENT_LINE_DRAWING } VteCharacterReplacement; @@ -1209,7 +2535,7 @@ index b8e30d15..0c52442b 100644 typedef struct _VtePaletteColor { struct { vte::color::rgb color; -@@ -666,6 +683,8 @@ public: +@@ -714,6 +731,8 @@ public: gboolean m_contents_changed_pending; #if _VTE_GTK == 3 @@ -1218,7 +2544,7 @@ index b8e30d15..0c52442b 100644 /* desktop notification */ std::string m_notification_summary; std::string m_notification_body; -@@ -688,6 +707,7 @@ public: +@@ -736,6 +755,7 @@ public: NOTIFICATION = 1u << 3, SHELL_PREEXEC = 1u << 4, SHELL_PRECMD = 1u << 5, @@ -1227,7 +2553,7 @@ index b8e30d15..0c52442b 100644 }; unsigned m_pending_changes{0}; diff --git a/src/vteseq.cc b/src/vteseq.cc -index bae18595..8a7f5b34 100644 +index a1155b19..daa24703 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc @@ -19,6 +19,7 @@ @@ -1250,7 +2576,7 @@ index bae18595..8a7f5b34 100644 using namespace std::literals; -@@ -1385,6 +1391,90 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1285,6 +1291,90 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, if (token == endtoken) return; @@ -1342,13 +2668,13 @@ index bae18595..8a7f5b34 100644 ++token; -- -2.40.0 +2.44.0 -From d1db595d6e91bd21dfc4ced7d6ae81ad851a20e9 Mon Sep 17 00:00:00 2001 +From 96549613fb68fbe811b82905e49801fc16030371 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 +Subject: [PATCH 12/12] Revert "widget: Limit select-all to the writable region not including the scrollback" ... as decided by Fedora Workstation WG. @@ -1357,36 +2683,24 @@ https://pagure.io/fedora-workstation/issue/216 This reverts commit 73713ec0644e232fb740170e399282be778d97f9. --- - src/vte.cc | 9 +++------ - 1 file changed, 3 insertions(+), 6 deletions(-) + src/vte.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index 92ab5711..9527148c 100644 +index 645bf330..d8f0faec 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -6552,10 +6552,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() -@@ -6564,8 +6561,8 @@ Terminal::select_all() +@@ -7081,8 +7081,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 }); +- m_selection_resolved.set ({ (vte::grid::row_t)m_screen->row_data->delta(), 0 }, +- { (vte::grid::row_t)m_screen->row_data->next(), 0 }); ++ m_selection_resolved.set ({ (long)m_screen->row_data->delta(), 0 }, ++ { (long)m_screen->row_data->next(), 0 }); _vte_debug_print(VTE_DEBUG_SELECTION, "Selecting *all* text.\n"); -- -2.40.0 +2.44.0 diff --git a/vte291.spec b/vte291.spec index 98b17f4..be32e3c 100644 --- a/vte291.spec +++ b/vte291.spec @@ -4,22 +4,22 @@ %global glib2_version 2.52.0 %global gnutls_version 3.2.7 %global gtk3_version 3.24.22 -%global gtk4_version 4.0.1 +%global gtk4_version 4.14.0 %global icu_uc_version 4.8 %global libsystemd_version 220 %global pango_version 1.22.0 %global pcre2_version 10.21 Name: vte291 -Version: 0.74.2 -Release: 4%{?dist} +Version: 0.76.0 +Release: 1%{?dist} Summary: GTK+ 3 terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources License: GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND X11 AND CC-BY-4.0 URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://download.gnome.org/sources/vte/0.74/vte-%{version}.tar.xz +Source0: https://download.gnome.org/sources/vte/0.76/vte-%{version}.tar.xz # https://bugzilla.gnome.org/show_bug.cgi?id=711059 # https://bugzilla.redhat.com/show_bug.cgi?id=1103380 @@ -34,10 +34,10 @@ BuildRequires: pkgconfig(gobject-2.0) >= %{glib2_version} BuildRequires: pkgconfig(gtk+-3.0) >= %{gtk3_version} BuildRequires: pkgconfig(gtk4) >= %{gtk4_version} BuildRequires: pkgconfig(icu-uc) >= %{icu_uc_version} +BuildRequires: pkgconfig(liblz4) BuildRequires: pkgconfig(libpcre2-8) >= %{pcre2_version} BuildRequires: pkgconfig(libsystemd) >= %{libsystemd_version} BuildRequires: pkgconfig(pango) >= %{pango_version} -BuildRequires: pkgconfig(zlib) BuildRequires: gcc-c++ BuildRequires: gettext BuildRequires: gi-docgen @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Tue Apr 02 2024 David King - 0.76.0-1 +- Update to 0.76.0 + * Mon Feb 12 2024 Tomas Popela - 0.74.2-4 - Build for the SPDX license format change From d52a62db6d53b0900184688991391c99edb077ec Mon Sep 17 00:00:00 2001 From: David King Date: Fri, 3 May 2024 08:51:36 +0100 Subject: [PATCH 114/164] Update to 0.76.1 --- .gitignore | 1 + sources | 2 +- vte291-cntnr-precmd-preexec-scroll.patch | 37 +++++++++++++++++++----- vte291.spec | 5 +++- 4 files changed, 35 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 8e09438..1acd5b1 100644 --- a/.gitignore +++ b/.gitignore @@ -98,3 +98,4 @@ /vte-0.74.1.tar.xz /vte-0.74.2.tar.xz /vte-0.76.0.tar.xz +/vte-0.76.1.tar.xz diff --git a/sources b/sources index 532790f..15b1b8a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.76.0.tar.xz) = 4eccdac2eeb33ae76c67000081b3ae26b0872ac3c1b89517db87a1574dc1121992ad708a0ffced34e30a0fd351166552215cf897d722b53d2313d5b8deed2385 +SHA512 (vte-0.76.1.tar.xz) = 4baf944fa36e6c94cfd4adaa19dbe1bed26740e14565d5c81d002e6d57a33b171625e986a2fa0ffeba361063e631045dafe987dbf71ac478f97511f7a56c95df diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index c0a6ace..32ac71e 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -2106,7 +2106,7 @@ index f1b96a33..4ccff275 100644 2.44.0 -From 9f6f4ee417133de6149494036418497b1e620725 Mon Sep 17 00:00:00 2001 +From 4e78d1bf97245c72aabe8bb971cadfd946c8cc17 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:20:30 +0200 Subject: [PATCH 09/12] Support precmd notifications from an interactive shell @@ -2126,13 +2126,13 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711059 https://bugzilla.gnome.org/show_bug.cgi?id=711060 --- src/vte.cc | 6 ++++++ - src/vte.sh.in | 2 +- + src/vte.sh.in | 9 ++++++++- src/vte/vteterminal.h | 5 +---- src/vtegtk.cc | 18 ++++++++++++++++++ src/vtegtk.hh | 1 + src/vteinternal.hh | 1 + src/vteseq.cc | 4 +++- - 7 files changed, 31 insertions(+), 6 deletions(-) + 7 files changed, 38 insertions(+), 6 deletions(-) diff --git a/src/vte.cc b/src/vte.cc index e9e51434..94a9db05 100644 @@ -2152,18 +2152,39 @@ index e9e51434..94a9db05 100644 if (m_pending_changes & vte::to_integral(PendingChanges::TITLE)) { diff --git a/src/vte.sh.in b/src/vte.sh.in -index ffc0942a..01e56c46 100644 +index ffc0942a..5b415f5b 100644 --- a/src/vte.sh.in +++ b/src/vte.sh.in -@@ -38,7 +38,7 @@ __vte_prompt_command() { +@@ -28,6 +28,11 @@ case "$TERM" in + *) return 0 ;; + esac + ++__vte_shell_precmd() { ++ local command=$(HISTTIMEFORMAT= history 1 | sed 's/^ *[0-9]\+ *//') ++ command="${command//;/ }" ++ printf '\033]777;notify;Command completed;%s\033\\\033]777;precmd\033\\' "${command}" ++} + __vte_osc7 () { + printf "\033]7;file://%s%s\033\\" "${HOSTNAME}" "$(@libexecdir@/vte-urlencode-cwd)" + } +@@ -38,7 +43,8 @@ __vte_prompt_command() { local pwd='~' [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} pwd="${pwd//[[:cntrl:]]}" - printf '\033]777;notify;Command completed;%s\033\\\033]0;%s@%s:%s\033\\' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" + printf '\033]777;notify;Command completed;%s\033\\\033]777;precmd\033\\\033]0;%s@%s:%s\033\\' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" ++ __vte_shell_precmd __vte_osc7 } +@@ -51,6 +57,7 @@ if [[ -n "${BASH_VERSION:-}" ]]; then + # use the __vte_prompt_command function which also sets the title. + + if [[ "$(declare -p PROMPT_COMMAND 2>&1)" =~ "declare -a" ]]; then ++ PROMPT_COMMAND+=(__vte_shell_precmd) + PROMPT_COMMAND+=(__vte_osc7) && PS0=$(printf "\033]777;preexec\033\\") + else + PROMPT_COMMAND="__vte_prompt_command" && PS0=$(printf "\033]777;preexec\033\\") diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h index efd8732b..a2ff1b01 100644 --- a/src/vte/vteterminal.h @@ -2260,7 +2281,7 @@ index 17fb51f5..a1155b19 100644 2.44.0 -From c8fbd37a4d7cefb2d97b2f585773cdcfe731e570 Mon Sep 17 00:00:00 2001 +From 9424e6c777ea0a7488457ddc7649a39ee579a68b Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:30:48 +0200 Subject: [PATCH 10/12] Test the shell-precmd signal @@ -2300,7 +2321,7 @@ index 4ccff275..bfb3d9f8 100644 2.44.0 -From 805a31048470d65a64151d5d7ab69da52d534128 Mon Sep 17 00:00:00 2001 +From 2c262f071a679451312e141d940a8819ece44b52 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 10 Jun 2019 20:30:18 +0200 Subject: [PATCH 11/12] Support tracking the active container inside the @@ -2671,7 +2692,7 @@ index a1155b19..daa24703 100644 2.44.0 -From 96549613fb68fbe811b82905e49801fc16030371 Mon Sep 17 00:00:00 2001 +From 71a9ae3e685b492d50a23604865388cba7592d54 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Tue, 16 Feb 2021 16:30:44 +0100 Subject: [PATCH 12/12] Revert "widget: Limit select-all to the writable region diff --git a/vte291.spec b/vte291.spec index be32e3c..b97b070 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.76.0 +Version: 0.76.1 Release: 1%{?dist} Summary: GTK+ 3 terminal emulator library @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Fri May 03 2024 David King - 0.76.1-1 +- Update to 0.76.1 + * Tue Apr 02 2024 David King - 0.76.0-1 - Update to 0.76.0 From 2eac94bc7f6f5274924768063173633f849f83cc Mon Sep 17 00:00:00 2001 From: David King Date: Tue, 14 May 2024 20:21:13 +0100 Subject: [PATCH 115/164] Use SPDX license expression for gtk4 subpackage --- vte291.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index b97b070..522a847 100644 --- a/vte291.spec +++ b/vte291.spec @@ -68,7 +68,7 @@ console/terminal in games, editors, IDEs, etc. Summary: GTK4 terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources -License: LGPLv3+ and MIT +License: LGPL-3.0-or-later AND MIT AND X11 Requires: %{name}%{?_isa} = %{version}-%{release} From 5259739a74bc70754247b33195a09412738df036 Mon Sep 17 00:00:00 2001 From: David King Date: Tue, 28 May 2024 08:43:34 +0100 Subject: [PATCH 116/164] Update to 0.76.2 --- .gitignore | 1 + sources | 2 +- vte291.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 1acd5b1..11b2a42 100644 --- a/.gitignore +++ b/.gitignore @@ -99,3 +99,4 @@ /vte-0.74.2.tar.xz /vte-0.76.0.tar.xz /vte-0.76.1.tar.xz +/vte-0.76.2.tar.xz diff --git a/sources b/sources index 15b1b8a..1f4ac86 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.76.1.tar.xz) = 4baf944fa36e6c94cfd4adaa19dbe1bed26740e14565d5c81d002e6d57a33b171625e986a2fa0ffeba361063e631045dafe987dbf71ac478f97511f7a56c95df +SHA512 (vte-0.76.2.tar.xz) = 206e2706c926972d4f389cf0418b840345ba6eb0336a3cae8b0d604f773b8b86746ef4986c94cfd6b0716449351ecb51a62f3ba08885b9cc8c8a8580e75f7fbf diff --git a/vte291.spec b/vte291.spec index 522a847..7008c8b 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.76.1 +Version: 0.76.2 Release: 1%{?dist} Summary: GTK+ 3 terminal emulator library @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Tue May 28 2024 David King - 0.76.2-1 +- Update to 0.76.2 + * Fri May 03 2024 David King - 0.76.1-1 - Update to 0.76.1 From af91b0972e4948c36152952336c147ef0e137727 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 6 Jun 2024 14:05:45 -0400 Subject: [PATCH 117/164] Update patches for ptyxis --- 0001-a11y-implement-GtkAccessibleText.patch | 1324 ++++++++ ...otification-and-shell-precmd-preexec.patch | 533 ++++ vte291-cntnr-precmd-preexec-scroll.patch | 2727 ----------------- 3 files changed, 1857 insertions(+), 2727 deletions(-) create mode 100644 0001-a11y-implement-GtkAccessibleText.patch create mode 100644 0001-add-notification-and-shell-precmd-preexec.patch delete mode 100644 vte291-cntnr-precmd-preexec-scroll.patch diff --git a/0001-a11y-implement-GtkAccessibleText.patch b/0001-a11y-implement-GtkAccessibleText.patch new file mode 100644 index 0000000..4361311 --- /dev/null +++ b/0001-a11y-implement-GtkAccessibleText.patch @@ -0,0 +1,1324 @@ +From aa096f3c96d8f4a736be7fdb48103daffd332296 Mon Sep 17 00:00:00 2001 +From: Christian Hergert +Date: Mon, 4 Mar 2024 14:09:53 -0800 +Subject: [PATCH] a11y: implement GtkAccessibleText + +This is an initial implementaiton of GtkAccessibleText which was added +to GTK for 4.14. It attempts to implement things in a very similar +fashion to the previous code for GTK 3 although considerable effort was +made to simplify and improve readability as to how it works. + +Currently, this supports reading back what you type and what has changed +on screen. It is not yet 1:1 what the GTK 3 a11y implementation did +because ATK was doing many other things (including proxying keyboard +keys) to the other side of the a11y bus. That appears to improve +readback by screen readers in the form of "backspace" and what character +was deleted. + +I expect things to get closer to 1:1 but that work is going to have to +be done inside of GTK itself first and should not require much if +anything here. + +A new VteTerminal:enable-a11y feature flag property has been added +because I'm concerned about enabling this by default until the a11y bus +learns to be more lazy. Currently there is no way to "do nothing" until +a peer (e.g. screenreader) is interested in the contents. + +Ideally, we would have a short-circuit like is currently implemented +by checking vte_terminal_get_enable_a11y() to avoid any sort of +contents calculation when there are no a11y observers. + +It also allows disabling the GTK 3 a11y implementation just to keep +some symmetry between the APIs. + +Currently, this does not implement "text-scrolled" like the GTK 3 +implementation does as I'm not sure yet if there is a benefit. +--- + src/meson.build | 13 +- + src/vte.cc | 11 + + src/vte/vteterminal.h | 7 + + src/vteaccess-gtk4.cc | 874 ++++++++++++++++++++++++++++++++++++++++++ + src/vteaccess-gtk4.h | 25 ++ + src/vteaccess.cc | 21 + + src/vtegtk.cc | 97 ++++- + src/vtegtk.hh | 1 + + src/vteinternal.hh | 8 + + 10 files changed, 1053 insertions(+), 10 deletions(-) + create mode 100644 src/vteaccess-gtk4.cc + create mode 100644 src/vteaccess-gtk4.h + +diff --git a/src/meson.build b/src/meson.build +index 3f89f492..6d1b4b2b 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -18,11 +18,16 @@ subdir('vte') + + src_inc = include_directories('.') + +-a11y_sources = files( ++a11y_gtk3_sources = files( + 'vteaccess.cc', + 'vteaccess.h', + ) + ++a11y_gtk4_sources = files( ++ 'vteaccess-gtk4.cc', ++ 'vteaccess-gtk4.h', ++) ++ + debug_sources = files( + 'debug.cc', + 'debug.h', +@@ -300,7 +305,7 @@ if get_option('gtk3') + libvte_gtk3_public_deps = libvte_common_public_deps + [gtk3_dep,] + + if get_option('a11y') +- libvte_gtk3_sources += a11y_sources ++ libvte_gtk3_sources += a11y_gtk3_sources + endif + + libvte_gtk3 = shared_library( +@@ -349,6 +354,10 @@ if get_option('gtk4') + libvte_gtk4_deps = libvte_common_deps + [gtk4_dep,] + libvte_gtk4_public_deps = libvte_common_public_deps + [gtk4_dep,] + ++ if get_option('a11y') ++ libvte_gtk4_sources += a11y_gtk4_sources ++ endif ++ + libvte_gtk4 = shared_library( + vte_gtk4_api_name, + sources: libvte_gtk4_sources, +diff --git a/src/vte.cc b/src/vte.cc +index a8a0e22c..4d9bf411 100644 +--- a/src/vte.cc ++++ b/src/vte.cc +@@ -10132,6 +10132,17 @@ Terminal::set_text_blink_mode(TextBlinkMode setting) + return true; + } + ++bool ++Terminal::set_enable_a11y(bool setting) ++{ ++ if (setting == m_enable_a11y) ++ return false; ++ ++ m_enable_a11y = setting; ++ ++ return true; ++} ++ + bool + Terminal::set_enable_bidi(bool setting) + { +diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h +index 9c2e2dae..7f4bf6df 100644 +--- a/src/vte/vteterminal.h ++++ b/src/vte/vteterminal.h +@@ -388,6 +388,13 @@ _VTE_PUBLIC + void vte_terminal_set_delete_binding(VteTerminal *terminal, + VteEraseBinding binding) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); + ++/* Accessibility */ ++_VTE_PUBLIC ++void vte_terminal_set_enable_a11y(VteTerminal *terminal, ++ gboolean enable_a11y) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); ++_VTE_PUBLIC ++gboolean vte_terminal_get_enable_a11y(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); ++ + /* BiDi and shaping */ + _VTE_PUBLIC + void vte_terminal_set_enable_bidi(VteTerminal *terminal, +diff --git a/src/vteaccess-gtk4.cc b/src/vteaccess-gtk4.cc +new file mode 100644 +index 00000000..f42e7578 +--- /dev/null ++++ b/src/vteaccess-gtk4.cc +@@ -0,0 +1,874 @@ ++/* ++ * Copyright © 2024 Christian Hergert ++ * Copyright © 2002,2003 Red Hat, Inc. ++ * ++ * This library is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU Lesser General Public License as published ++ * by the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this library. If not, see . ++ */ ++ ++#include "config.h" ++ ++#include "vteinternal.hh" ++#include "vteaccess-gtk4.h" ++ ++#define GDK_ARRAY_NAME char_positions ++#define GDK_ARRAY_TYPE_NAME CharPositions ++#define GDK_ARRAY_ELEMENT_TYPE int ++#define GDK_ARRAY_BY_VALUE 1 ++#define GDK_ARRAY_PREALLOC 8 ++#define GDK_ARRAY_NO_MEMSET ++#include "gdkarrayimpl.c" ++ ++typedef struct _VteAccessibleTextContents ++{ ++ /* A GdkArrayImpl of attributes per byte */ ++ VteCharAttrList attrs; ++ ++ /* The byte position within the UTF-8 string where each visible ++ * character starts. ++ */ ++ CharPositions characters; ++ ++ /* The character position within the UTF-8 string where each line ++ * break occurs. To get byte offset, use @characters. ++ */ ++ CharPositions linebreaks; ++ ++ /* The UTF-8 string encoded as bytes so that we may reference it ++ * using GBytes for "substrings". However @string does include a ++ * trailing NUL byte in it's size so that the a11y infrastructure ++ * may elide some string copies. ++ */ ++ GBytes *string; ++ ++ /* Number of bytes in @string excluding trailing NUL. */ ++ gsize n_bytes; ++ ++ /* Number of unicode characters in @string. */ ++ gsize n_chars; ++ ++ /* The character position (not bytes) of the caret in @string */ ++ gsize caret; ++ ++ /* Cached column/row of the caret updated each time we are notified ++ * of the caret having moved. We cache this so that we can elide ++ * extraneous notifications after snapshoting. We will update the ++ * carent position synchronously when notified so @caret may always ++ * be relied upon as correct. ++ */ ++ long cached_caret_column; ++ long cached_caret_row; ++} VteAccessibleTextContents; ++ ++typedef struct _VteAccessibleText ++{ ++ VteTerminal *terminal; ++ VteAccessibleTextContents contents[2]; ++ guint contents_flip : 1; ++} VteAccessibleText; ++ ++static inline gboolean ++_pango_color_equal(const PangoColor *a, ++ const PangoColor *b) ++{ ++ return a->red == b->red && ++ a->green == b->green && ++ a->blue == b->blue; ++} ++ ++static void ++vte_accessible_text_contents_init (VteAccessibleTextContents *contents) ++{ ++ vte_char_attr_list_init (&contents->attrs); ++ char_positions_init (&contents->characters); ++ char_positions_init (&contents->linebreaks); ++ contents->string = nullptr; ++ contents->n_bytes = 0; ++ contents->n_chars = 0; ++ contents->caret = 0; ++ contents->cached_caret_row = 0; ++ contents->cached_caret_column = 0; ++} ++ ++static void ++vte_accessible_text_contents_clear (VteAccessibleTextContents *contents) ++{ ++ vte_char_attr_list_clear (&contents->attrs); ++ char_positions_clear (&contents->characters); ++ char_positions_clear (&contents->linebreaks); ++ g_clear_pointer (&contents->string, g_bytes_unref); ++ contents->n_bytes = 0; ++ contents->n_chars = 0; ++ contents->caret = 0; ++ contents->cached_caret_row = 0; ++ contents->cached_caret_column = 0; ++} ++ ++static void ++vte_accessible_text_contents_reset (VteAccessibleTextContents *contents) ++{ ++ vte_char_attr_list_set_size (&contents->attrs, 0); ++ char_positions_set_size (&contents->characters, 0); ++ char_positions_set_size (&contents->linebreaks, 0); ++ g_clear_pointer (&contents->string, g_bytes_unref); ++ contents->n_bytes = 0; ++ contents->n_chars = 0; ++ contents->caret = 0; ++ contents->cached_caret_row = 0; ++ contents->cached_caret_column = 0; ++} ++ ++static const char * ++vte_accessible_text_contents_get_string (VteAccessibleTextContents *contents, ++ gsize *len) ++{ ++ const char *ret; ++ ++ if (contents->string == nullptr || g_bytes_get_size (contents->string) == 0) { ++ *len = 0; ++ return ""; ++ } ++ ++ ret = (const char *)g_bytes_get_data (contents->string, len); ++ ++ if (*len > 0) { ++ (*len)--; ++ } ++ ++ return ret; ++} ++ ++static int ++vte_accessible_text_contents_offset_from_xy (VteAccessibleTextContents *contents, ++ int x, ++ int y) ++{ ++ int offset; ++ int linebreak; ++ int next_linebreak; ++ ++ if (y >= int(char_positions_get_size (&contents->linebreaks))) { ++ y = int(char_positions_get_size (&contents->linebreaks)) - 1; ++ if (y < 0) { ++ return 0; ++ } ++ } ++ ++ linebreak = *char_positions_index (&contents->linebreaks, y); ++ if (y + 1 == int(char_positions_get_size (&contents->linebreaks))) { ++ next_linebreak = int(char_positions_get_size (&contents->characters)); ++ } else { ++ next_linebreak = *char_positions_index (&contents->linebreaks, y + 1); ++ } ++ ++ offset = linebreak + x; ++ if (offset >= next_linebreak) { ++ offset = next_linebreak - 1; ++ } ++ ++ return offset; ++} ++ ++static gunichar ++vte_accessible_text_contents_get_char_at (VteAccessibleTextContents *contents, ++ guint offset) ++{ ++ const char *str; ++ ++ if (contents->string == nullptr) ++ return 0; ++ ++ if (offset >= contents->n_chars) ++ return 0; ++ ++ g_assert (offset < char_positions_get_size (&contents->characters)); ++ ++ str = (const char *)g_bytes_get_data (contents->string, nullptr); ++ str += *char_positions_index (&contents->characters, offset); ++ ++ return g_utf8_get_char (str); ++ ++} ++ ++static GBytes * ++_g_string_free_to_bytes_with_nul (GString *str) ++{ ++ /* g_string_free_to_bytes() will have a trailing-NUL but not include it ++ * in the size of the GBytes. We want the size included in our GBytes ++ * so that GtkAccessibleText may avoid some copies. ++ */ ++ gsize len = str->len + 1; ++ return g_bytes_new_take (g_string_free (str, FALSE), len); ++} ++ ++static inline gsize ++vte_accessible_text_contents_find_caret (VteAccessibleTextContents *contents, ++ long ccol, ++ long crow) ++{ ++ g_assert (contents != nullptr); ++ ++ /* Get the offsets to the beginnings of each line. */ ++ gsize caret = 0; ++ for (gsize i = 0; i < char_positions_get_size (&contents->characters); i++) { ++ /* Get the attributes for the current cell. */ ++ int offset = *char_positions_index (&contents->characters, i); ++ const struct _VteCharAttributes *attrs = vte_char_attr_list_get (&contents->attrs, offset); ++ ++ /* If this cell is "before" the cursor, move the caret to be "here". */ ++ if ((attrs->row < crow) || ++ ((attrs->row == crow) && (attrs->column < ccol))) { ++ caret = i + 1; ++ } ++ } ++ ++ return caret; ++} ++ ++static void ++vte_accessible_text_contents_snapshot (VteAccessibleTextContents *contents, ++ VteTerminal *terminal) ++{ ++ auto impl = _vte_terminal_get_impl (terminal); ++ GString *gstr = g_string_new (nullptr); ++ ++ try { ++ impl->get_text_displayed_a11y (gstr, &contents->attrs); ++ } catch (...) { ++ g_string_truncate (gstr, 0); ++ } ++ ++ if (vte_char_attr_list_get_size (&contents->attrs) >= G_MAXINT) { ++ g_string_truncate (gstr, 0); ++ return; ++ } ++ ++ /* Get the offsets to the beginnings of each character. */ ++ int i = 0; ++ const char *next = gstr->str; ++ int n_attrs = int(vte_char_attr_list_get_size (&contents->attrs)); ++ while (i < n_attrs) { ++ char_positions_append (&contents->characters, &i); ++ next = g_utf8_next_char (next); ++ if (next != nullptr) { ++ i = next - gstr->str; ++ continue; ++ } ++ break; ++ } ++ ++ /* Find offsets for the beginning of lines. */ ++ gsize n_chars = char_positions_get_size (&contents->characters); ++ int row; ++ for (i = 0, row = 0; i < int(n_chars); i++) { ++ /* Get the attributes for the current cell. */ ++ int offset = *char_positions_index (&contents->characters, i); ++ const struct _VteCharAttributes *attrs = vte_char_attr_list_get (&contents->attrs, offset); ++ ++ /* If this character is on a row different from the row ++ * the character we looked at previously was on, then ++ * it's a new line and we need to keep track of where ++ * it is. */ ++ if ((i == 0) || (attrs->row != row)) { ++ _vte_debug_print (VTE_DEBUG_ALLY, ++ "Row %d/%ld begins at %d.\n", ++ int(char_positions_get_size (&contents->linebreaks)), ++ attrs->row, i); ++ char_positions_append (&contents->linebreaks, &i); ++ } ++ ++ row = attrs->row; ++ } ++ ++ /* Add the final line break. */ ++ char_positions_append (&contents->linebreaks, &i); ++ ++ /* Update the caret position. */ ++ long ccol, crow; ++ vte_terminal_get_cursor_position (terminal, &ccol, &crow); ++ _vte_debug_print (VTE_DEBUG_ALLY, "Cursor at (%ld, " "%ld).\n", ccol, crow); ++ gsize caret = vte_accessible_text_contents_find_caret (contents, ccol, crow); ++ ++ contents->n_bytes = gstr->len; ++ contents->n_chars = n_chars; ++ contents->string = _g_string_free_to_bytes_with_nul (gstr); ++ contents->caret = caret; ++ contents->cached_caret_column = ccol; ++ contents->cached_caret_row = crow; ++ ++ _vte_debug_print (VTE_DEBUG_ALLY, ++ "Refreshed accessibility snapshot, " ++ "%ld cells, %ld characters.\n", ++ long(vte_char_attr_list_get_size(&contents->attrs)), ++ long(char_positions_get_size (&contents->characters))); ++} ++ ++static GBytes * ++vte_accessible_text_contents_slice (VteAccessibleTextContents *contents, ++ guint start, ++ guint end) ++{ ++ static const char empty[] = {0}; ++ guint start_offset; ++ guint end_offset; ++ ++ g_assert (contents != nullptr); ++ ++ if (contents->string == nullptr) ++ return g_bytes_new_static (empty, sizeof empty); ++ ++ if (start > contents->n_chars) ++ start = contents->n_chars; ++ ++ if (end > contents->n_chars) ++ end = contents->n_chars; ++ ++ if (end < start) ++ std::swap (end, start); ++ ++ g_assert (start <= char_positions_get_size (&contents->characters)); ++ g_assert (end <= char_positions_get_size (&contents->characters)); ++ ++ if (start == char_positions_get_size (&contents->characters)) ++ start_offset = g_bytes_get_size (contents->string); ++ else ++ start_offset = *char_positions_index (&contents->characters, start); ++ ++ if (end == char_positions_get_size (&contents->characters)) ++ end_offset = g_bytes_get_size (contents->string); ++ else ++ end_offset = *char_positions_index (&contents->characters, end); ++ ++ g_assert (start_offset <= end_offset); ++ ++ if (start_offset == end_offset) ++ return g_bytes_new_static (empty, sizeof empty); ++ ++ return g_bytes_new_from_bytes (contents->string, start_offset, end_offset - start_offset); ++} ++ ++static void ++vte_accessible_text_free (VteAccessibleText *state) ++{ ++ vte_accessible_text_contents_clear (&state->contents[0]); ++ vte_accessible_text_contents_clear (&state->contents[1]); ++ state->terminal = nullptr; ++ g_free (state); ++} ++ ++static VteAccessibleText * ++vte_accessible_text_get (VteTerminal *terminal) ++{ ++ return (VteAccessibleText *)g_object_get_data (G_OBJECT (terminal), "VTE_ACCESSIBLE_TEXT"); ++} ++ ++static GBytes * ++vte_accessible_text_get_contents (GtkAccessibleText *accessible, ++ guint start, ++ guint end) ++{ ++ VteTerminal *terminal = VTE_TERMINAL (accessible); ++ VteAccessibleText *state = vte_accessible_text_get (terminal); ++ VteAccessibleTextContents *contents = nullptr; ++ ++ g_assert (VTE_IS_TERMINAL (terminal)); ++ g_assert (state != nullptr); ++ g_assert (state->terminal == terminal); ++ ++ contents = &state->contents[state->contents_flip]; ++ ++ return vte_accessible_text_contents_slice (contents, start, end); ++} ++ ++static GBytes * ++vte_accessible_text_get_contents_at (GtkAccessibleText *accessible, ++ guint offset, ++ GtkAccessibleTextGranularity granularity, ++ guint *start, ++ guint *end) ++{ ++ VteTerminal *terminal = VTE_TERMINAL (accessible); ++ VteAccessibleText *state = vte_accessible_text_get (terminal); ++ VteAccessibleTextContents *contents; ++ ++ g_assert (VTE_IS_TERMINAL (terminal)); ++ g_assert (state != nullptr); ++ g_assert (state->terminal == terminal); ++ ++ auto impl = _vte_terminal_get_impl (terminal); ++ ++ contents = &state->contents[state->contents_flip]; ++ ++ if (contents->string == nullptr) { ++ return nullptr; ++ } ++ ++ if (offset > contents->n_chars) { ++ offset = contents->n_chars; ++ } ++ ++ switch (granularity) { ++ case GTK_ACCESSIBLE_TEXT_GRANULARITY_CHARACTER: { ++ *start = offset; ++ *end = offset + 1; ++ return vte_accessible_text_contents_slice (contents, offset, offset + 1); ++ } ++ ++ case GTK_ACCESSIBLE_TEXT_GRANULARITY_LINE: { ++ guint char_offset = *char_positions_index (&contents->characters, offset); ++ guint line; ++ ++ for (line = 0; ++ line < char_positions_get_size (&contents->linebreaks); ++ line++) { ++ guint line_offset = *char_positions_index (&contents->linebreaks, line); ++ ++ if (line_offset > char_offset) { ++ line--; ++ break; ++ } ++ } ++ ++ _vte_debug_print (VTE_DEBUG_ALLY, ++ "Character %u is on line %u.\n", ++ offset, line); ++ ++ *start = *char_positions_index (&contents->linebreaks, line); ++ if (line + 1 < char_positions_get_size (&contents->linebreaks)) ++ *end = *char_positions_index (&contents->linebreaks, line + 1); ++ else ++ *end = contents->n_chars; ++ ++ return vte_accessible_text_contents_slice (contents, *start, *end); ++ } ++ ++ case GTK_ACCESSIBLE_TEXT_GRANULARITY_WORD: { ++ gunichar ch = vte_accessible_text_contents_get_char_at (contents, offset); ++ ++ if (ch == 0 || !impl->is_word_char (ch)) ++ break; ++ ++ *start = offset; ++ *end = offset; ++ ++ while (*start > 0 && ++ (ch = vte_accessible_text_contents_get_char_at (contents, *start - 1)) && ++ impl->is_word_char (ch)) { ++ (*start)--; ++ } ++ ++ while (*end < contents->n_chars && ++ (ch = vte_accessible_text_contents_get_char_at (contents, *end + 1)) && ++ impl->is_word_char (ch)) { ++ (*end)++; ++ } ++ ++ return vte_accessible_text_contents_slice (contents, *start, *end); ++ } ++ ++ case GTK_ACCESSIBLE_TEXT_GRANULARITY_SENTENCE: ++ case GTK_ACCESSIBLE_TEXT_GRANULARITY_PARAGRAPH: ++ default: ++ break; ++ } ++ ++ return nullptr; ++} ++ ++static guint ++vte_accessible_text_get_caret_position (GtkAccessibleText *accessible) ++{ ++ VteTerminal *terminal = VTE_TERMINAL (accessible); ++ VteAccessibleText *state = vte_accessible_text_get (terminal); ++ ++ g_assert (VTE_IS_TERMINAL (accessible)); ++ g_assert (state != nullptr); ++ g_assert (state->terminal == terminal); ++ ++ return state->contents[state->contents_flip].caret; ++} ++ ++static gboolean ++vte_accessible_text_get_selection (GtkAccessibleText *accessible, ++ gsize *n_ranges, ++ GtkAccessibleTextRange **ranges) ++{ ++ VteTerminal *terminal = VTE_TERMINAL (accessible); ++ VteAccessibleText *state = vte_accessible_text_get (terminal); ++ ++ g_assert (VTE_IS_TERMINAL (terminal)); ++ g_assert (ranges != nullptr); ++ ++ *n_ranges = 0; ++ *ranges = nullptr; ++ ++ try { ++ auto impl = _vte_terminal_get_impl (terminal); ++ VteAccessibleTextContents *contents = &state->contents[state->contents_flip]; ++ GtkAccessibleTextRange range; ++ ++ if (impl->m_selection_resolved.empty() || ++ impl->m_selection[vte::to_integral(vte::platform::ClipboardType::PRIMARY)] == nullptr) ++ return FALSE; ++ ++ auto start_column = impl->m_selection_resolved.start_column(); ++ auto start_row = impl->m_selection_resolved.start_row(); ++ auto end_column = impl->m_selection_resolved.end_column(); ++ auto end_row = impl->m_selection_resolved.end_row(); ++ ++ auto start_offset = vte_accessible_text_contents_offset_from_xy (contents, start_column, start_row); ++ auto end_offset = vte_accessible_text_contents_offset_from_xy (contents, end_column, end_row); ++ ++ range.start = gsize(start_offset); ++ range.length = gsize(end_offset - start_offset); ++ ++ *n_ranges = 1; ++ *ranges = (GtkAccessibleTextRange *)g_memdup2 (&range, sizeof range); ++ ++ return TRUE; ++ } catch (...) { } ++ ++ return FALSE; ++} ++ ++static gboolean ++vte_accessible_text_get_attributes (GtkAccessibleText *accessible, ++ guint offset, ++ gsize *n_ranges, ++ GtkAccessibleTextRange **ranges, ++ char ***attribute_names, ++ char ***attribute_values) ++{ ++ VteTerminal *terminal = VTE_TERMINAL (accessible); ++ VteAccessibleText *state = vte_accessible_text_get (terminal); ++ VteAccessibleTextContents *contents; ++ struct _VteCharAttributes cur_attr; ++ struct _VteCharAttributes attr; ++ GtkAccessibleTextRange range; ++ struct { ++ const char *name; ++ const char *value; ++ } attrs[4]; ++ char fg_color[16]; ++ char bg_color[16]; ++ guint n_attrs = 0; ++ guint start = 0; ++ guint end = 0; ++ guint i; ++ ++ g_assert (VTE_IS_TERMINAL (accessible)); ++ g_assert (ranges != nullptr); ++ g_assert (attribute_names != nullptr); ++ g_assert (attribute_values != nullptr); ++ ++ contents = &state->contents[state->contents_flip]; ++ ++ *n_ranges = 0; ++ *ranges = nullptr; ++ *attribute_names = nullptr; ++ *attribute_values = nullptr; ++ ++ attr = *vte_char_attr_list_get (&contents->attrs, offset); ++ start = 0; ++ for (i = offset; i--;) { ++ cur_attr = *vte_char_attr_list_get (&contents->attrs, i); ++ if (!_pango_color_equal (&cur_attr.fore, &attr.fore) || ++ !_pango_color_equal (&cur_attr.back, &attr.back) || ++ cur_attr.underline != attr.underline || ++ cur_attr.strikethrough != attr.strikethrough) { ++ start = i + 1; ++ break; ++ } ++ } ++ end = vte_char_attr_list_get_size (&contents->attrs) - 1; ++ for (i = offset + 1; i < vte_char_attr_list_get_size (&contents->attrs); i++) { ++ cur_attr = *vte_char_attr_list_get (&contents->attrs, i); ++ if (!_pango_color_equal (&cur_attr.fore, &attr.fore) || ++ !_pango_color_equal (&cur_attr.back, &attr.back) || ++ cur_attr.underline != attr.underline || ++ cur_attr.strikethrough != attr.strikethrough) { ++ end = i - 1; ++ break; ++ } ++ } ++ ++ range.start = start; ++ range.length = end - start; ++ ++ if (range.length == 0) ++ return FALSE; ++ ++ if (attr.underline) { ++ attrs[n_attrs].name = "underline"; ++ attrs[n_attrs].value = "true"; ++ n_attrs++; ++ } ++ ++ if (attr.strikethrough) { ++ attrs[n_attrs].name = "strikethrough"; ++ attrs[n_attrs].value = "true"; ++ n_attrs++; ++ } ++ ++ g_snprintf (fg_color, sizeof fg_color, "%u,%u,%u", ++ attr.fore.red, attr.fore.green, attr.fore.blue); ++ attrs[n_attrs].name = "fg-color"; ++ attrs[n_attrs].value = fg_color; ++ n_attrs++; ++ ++ g_snprintf (bg_color, sizeof bg_color, "%u,%u,%u", ++ attr.back.red, attr.back.green, attr.back.blue); ++ attrs[n_attrs].name = "bg-color"; ++ attrs[n_attrs].value = bg_color; ++ n_attrs++; ++ ++ *attribute_names = g_new0 (char *, n_attrs + 1); ++ *attribute_values = g_new0 (char *, n_attrs + 1); ++ *n_ranges = 1; ++ *ranges = (GtkAccessibleTextRange *)g_memdup2 (&range, sizeof range); ++ ++ for (i = 0; i < n_attrs; i++) { ++ (*attribute_names)[i] = g_strdup (attrs[i].name); ++ (*attribute_values)[i] = g_strdup (attrs[i].value); ++ } ++ ++ return TRUE; ++} ++ ++void ++_vte_accessible_text_iface_init (GtkAccessibleTextInterface *iface) ++{ ++ iface->get_attributes = vte_accessible_text_get_attributes; ++ iface->get_caret_position = vte_accessible_text_get_caret_position; ++ iface->get_contents = vte_accessible_text_get_contents; ++ iface->get_contents_at = vte_accessible_text_get_contents_at; ++ iface->get_selection = vte_accessible_text_get_selection; ++} ++ ++static void ++vte_accessible_text_contents_changed (VteTerminal *terminal, ++ VteAccessibleText *state) ++{ ++ VteAccessibleTextContents *next = nullptr; ++ VteAccessibleTextContents *prev = nullptr; ++ const char *nextstr; ++ const char *prevstr; ++ gsize prevlen; ++ gsize nextlen; ++ ++ g_assert (VTE_IS_TERMINAL (terminal)); ++ g_assert (state != nullptr); ++ g_assert (state->terminal == terminal); ++ ++ if (!vte_terminal_get_enable_a11y (terminal)) ++ return; ++ ++ prev = &state->contents[state->contents_flip]; ++ next = &state->contents[!state->contents_flip]; ++ ++ /* Get a new snapshot of contents so that we can compare this to the ++ * previous contents. That way we can discover if it was a backspace ++ * that occurred or if it's more than that. ++ * ++ * We do not filp state->contents_flip immediately so that we can ++ * allow the AT context the ability to access the current contents ++ * on DELETE operations. ++ */ ++ vte_accessible_text_contents_reset (next); ++ vte_accessible_text_contents_snapshot (next, state->terminal); ++ ++ nextstr = vte_accessible_text_contents_get_string (next, &nextlen); ++ prevstr = vte_accessible_text_contents_get_string (prev, &prevlen); ++ ++ vte_assert_cmpint (char_positions_get_size (&prev->characters), ==, prev->n_chars); ++ vte_assert_cmpint (char_positions_get_size (&next->characters), ==, next->n_chars); ++ ++ /* NOTE: ++ * ++ * The code below is based upon what vteaccess.cc did for GTK 3. ++ * It does not do any sort of appropriate diffing to try to handle ++ * scrolling correctly. That would be a good idea to implement in ++ * the longer term. ++ * ++ * It just looks for a long prefix match, and then a long suffix ++ * match and attempts to diff what is between those to end points. ++ */ ++ ++ const char *prevc = prevstr; ++ const char *nextc = nextstr; ++ gsize offset = 0; ++ ++ /* Find the beginning of changes */ ++ while ((offset < prev->n_chars) && (offset < next->n_chars)) { ++ gunichar prevch = g_utf8_get_char (prevc); ++ gunichar nextch = g_utf8_get_char (nextc); ++ ++ if (prevch != nextch) { ++ break; ++ } ++ ++ offset++; ++ ++ prevc = g_utf8_next_char (prevc); ++ nextc = g_utf8_next_char (nextc); ++ } ++ ++ /* Find the end of changes */ ++ gsize next_end = next->n_chars; ++ gsize prev_end = prev->n_chars; ++ ++ prevc = prevstr + prevlen; ++ nextc = nextstr + nextlen; ++ ++ while ((next_end > offset) && (prev_end > offset)) { ++ prevc = g_utf8_prev_char (prevc); ++ nextc = g_utf8_prev_char (nextc); ++ ++ gunichar prevch = g_utf8_get_char (prevc); ++ gunichar nextch = g_utf8_get_char (nextc); ++ ++ if (prevch != nextch) { ++ break; ++ } ++ ++ next_end--; ++ prev_end--; ++ } ++ ++ if (offset < prev_end) { ++ gtk_accessible_text_update_contents (GTK_ACCESSIBLE_TEXT (terminal), ++ GTK_ACCESSIBLE_TEXT_CONTENT_CHANGE_REMOVE, ++ offset, prev_end); ++ } ++ ++ state->contents_flip = !state->contents_flip; ++ ++ if (offset < next_end) { ++ gtk_accessible_text_update_contents (GTK_ACCESSIBLE_TEXT (terminal), ++ GTK_ACCESSIBLE_TEXT_CONTENT_CHANGE_INSERT, ++ offset, next_end); ++ } ++ ++ if (prev->caret != next->caret) { ++ gtk_accessible_text_update_caret_position (GTK_ACCESSIBLE_TEXT (terminal)); ++ } ++} ++ ++static void ++vte_accessible_text_cursor_moved (VteTerminal *terminal, ++ VteAccessibleText *state) ++{ ++ VteAccessibleTextContents *contents = nullptr; ++ ++ g_assert (VTE_IS_TERMINAL (terminal)); ++ g_assert (state != nullptr); ++ g_assert (state->terminal == terminal); ++ ++ if (!vte_terminal_get_enable_a11y (terminal)) ++ return; ++ ++ contents = &state->contents[state->contents_flip]; ++ ++ long ccol, crow; ++ vte_terminal_get_cursor_position (terminal, &ccol, &crow); ++ if (ccol == contents->cached_caret_column && crow == contents->cached_caret_row) { ++ return; ++ } ++ ++ _vte_debug_print (VTE_DEBUG_ALLY, "Cursor at (%ld, " "%ld).\n", ccol, crow); ++ ++ contents->cached_caret_column = ccol; ++ contents->cached_caret_row = crow; ++ contents->caret = vte_accessible_text_contents_find_caret (contents, ccol, crow); ++ ++ gtk_accessible_text_update_caret_position (GTK_ACCESSIBLE_TEXT (terminal)); ++} ++ ++static void ++vte_accessible_text_window_title_changed (VteTerminal *terminal, ++ VteAccessibleText *state) ++{ ++ const char *window_title; ++ ++ g_assert (VTE_IS_TERMINAL (terminal)); ++ g_assert (state != nullptr); ++ g_assert (state->terminal == terminal); ++ ++ if (!vte_terminal_get_enable_a11y (terminal)) ++ return; ++ ++ window_title = vte_terminal_get_window_title (terminal); ++ ++ gtk_accessible_update_property (GTK_ACCESSIBLE (terminal), ++ GTK_ACCESSIBLE_PROPERTY_DESCRIPTION, window_title ? window_title : "", ++ GTK_ACCESSIBLE_VALUE_UNDEFINED); ++} ++ ++static void ++vte_accessible_text_selection_changed (VteTerminal *terminal, ++ VteAccessibleText *state) ++{ ++ g_assert (VTE_IS_TERMINAL (terminal)); ++ g_assert (state != nullptr); ++ g_assert (state->terminal == terminal); ++ ++ if (!vte_terminal_get_enable_a11y (terminal)) ++ return; ++ ++ gtk_accessible_text_update_caret_position (GTK_ACCESSIBLE_TEXT (terminal)); ++ gtk_accessible_text_update_selection_bound (GTK_ACCESSIBLE_TEXT (terminal)); ++} ++ ++void ++_vte_accessible_text_init (GtkAccessibleText *accessible) ++{ ++ VteTerminal *terminal = VTE_TERMINAL (accessible); ++ VteAccessibleText *state; ++ ++ state = g_new0 (VteAccessibleText, 1); ++ state->terminal = terminal; ++ ++ vte_accessible_text_contents_init (&state->contents[0]); ++ vte_accessible_text_contents_init (&state->contents[1]); ++ ++ g_object_set_data_full (G_OBJECT (terminal), ++ "VTE_ACCESSIBLE_TEXT", ++ state, ++ (GDestroyNotify)vte_accessible_text_free); ++ ++ g_signal_connect (terminal, ++ "contents-changed", ++ G_CALLBACK (vte_accessible_text_contents_changed), ++ state); ++ g_signal_connect (terminal, ++ "cursor-moved", ++ G_CALLBACK (vte_accessible_text_cursor_moved), ++ state); ++ g_signal_connect (terminal, ++ "selection-changed", ++ G_CALLBACK (vte_accessible_text_selection_changed), ++ state); ++ g_signal_connect (terminal, ++ "window-title-changed", ++ G_CALLBACK (vte_accessible_text_window_title_changed), ++ state); ++ ++ const char *window_title = vte_terminal_get_window_title (terminal); ++ ++ gtk_accessible_update_property (GTK_ACCESSIBLE (accessible), ++ GTK_ACCESSIBLE_PROPERTY_DESCRIPTION, window_title ? window_title : "", ++ GTK_ACCESSIBLE_PROPERTY_HAS_POPUP, TRUE, ++ GTK_ACCESSIBLE_PROPERTY_LABEL, "Terminal", ++ GTK_ACCESSIBLE_PROPERTY_MULTI_LINE, TRUE, ++ GTK_ACCESSIBLE_VALUE_UNDEFINED); ++} +diff --git a/src/vteaccess-gtk4.h b/src/vteaccess-gtk4.h +new file mode 100644 +index 00000000..37b09c7b +--- /dev/null ++++ b/src/vteaccess-gtk4.h +@@ -0,0 +1,25 @@ ++/* ++ * Copyright © 2024 Christian Hergert ++ * ++ * This library is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU Lesser General Public License as published ++ * by the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this library. If not, see . ++ */ ++ ++#include ++ ++G_BEGIN_DECLS ++ ++void _vte_accessible_text_iface_init (GtkAccessibleTextInterface *iface); ++void _vte_accessible_text_init (GtkAccessibleText *accessible); ++ ++G_END_DECLS +diff --git a/src/vteaccess.cc b/src/vteaccess.cc +index fff918dc..c1c1a4c0 100644 +--- a/src/vteaccess.cc ++++ b/src/vteaccess.cc +@@ -386,6 +386,12 @@ _vte_terminal_accessible_text_modified(VteTerminalAccessible* accessible) + glong offset, caret_offset, olen, clen; + gint old_snapshot_caret; + ++ auto widget = gtk_accessible_get_widget(GTK_ACCESSIBLE(accessible)); ++ auto terminal = VTE_TERMINAL(widget); ++ ++ if (!vte_terminal_get_enable_a11y (terminal)) ++ return; ++ + old_snapshot_caret = priv->snapshot_caret; + priv->snapshot_contents_invalid = TRUE; + vte_terminal_accessible_update_private_data_if_needed(accessible, +@@ -541,6 +547,9 @@ _vte_terminal_accessible_text_scrolled(VteTerminalAccessible* accessible, + auto widget = gtk_accessible_get_widget(GTK_ACCESSIBLE(accessible)); + auto terminal = VTE_TERMINAL(widget); + ++ if (!vte_terminal_get_enable_a11y (terminal)) ++ return; ++ + row_count = vte_terminal_get_row_count(terminal); + if (((howmuch < 0) && (howmuch <= -row_count)) || + ((howmuch > 0) && (howmuch >= row_count))) { +@@ -793,6 +802,9 @@ vte_terminal_accessible_invalidate_cursor(VteTerminal *terminal, gpointer data) + VteTerminalAccessible *accessible = (VteTerminalAccessible *)data; + VteTerminalAccessiblePrivate *priv = (VteTerminalAccessiblePrivate *)_vte_terminal_accessible_get_instance_private(accessible); + ++ if (!vte_terminal_get_enable_a11y (terminal)) ++ return; ++ + _vte_debug_print(VTE_DEBUG_ALLY, + "Invalidating accessibility cursor.\n"); + priv->snapshot_caret_invalid = TRUE; +@@ -807,6 +819,9 @@ vte_terminal_accessible_title_changed(VteTerminal *terminal, gpointer data) + { + VteTerminalAccessible *accessible = (VteTerminalAccessible *)data; + ++ if (!vte_terminal_get_enable_a11y (terminal)) ++ return; ++ + atk_object_set_description(ATK_OBJECT(accessible), vte_terminal_get_window_title(terminal)); + } + +@@ -820,6 +835,9 @@ vte_terminal_accessible_visibility_notify(VteTerminal *terminal, + GtkWidget *widget; + gboolean visible; + ++ if (!vte_terminal_get_enable_a11y (terminal)) ++ return FALSE; ++ + visible = event->state != GDK_VISIBILITY_FULLY_OBSCURED; + /* The VISIBLE state indicates that this widget is "visible". */ + atk_object_notify_state_change(ATK_OBJECT(accessible), +@@ -851,6 +869,9 @@ vte_terminal_accessible_selection_changed (VteTerminal *terminal, + { + VteTerminalAccessible *accessible = (VteTerminalAccessible *)data; + ++ if (!vte_terminal_get_enable_a11y (terminal)) ++ return; ++ + g_signal_emit_by_name (accessible, "text_selection_changed"); + } + +diff --git a/src/vtegtk.cc b/src/vtegtk.cc +index c713a95a..6ece18e9 100644 +--- a/src/vtegtk.cc ++++ b/src/vtegtk.cc +@@ -65,9 +65,11 @@ + #include + + #if WITH_A11Y +-#if VTE_GTK == 3 +-#include "vteaccess.h" +-#endif /* VTE_GTK == 3 */ ++# if VTE_GTK == 3 ++# include "vteaccess.h" ++# elif VTE_GTK == 4 ++# include "vteaccess-gtk4.h" ++# endif + #endif /* WITH_A11Y */ + + #if WITH_ICU +@@ -155,6 +157,14 @@ private: + std::shared_ptr m_widget; + }; + ++#if defined(WITH_A11Y) && VTE_GTK == 4 ++# define VTE_IMPLEMENT_ACCESSIBLE \ ++ G_IMPLEMENT_INTERFACE(GTK_TYPE_ACCESSIBLE_TEXT, \ ++ _vte_accessible_text_iface_init) ++#else ++# define VTE_IMPLEMENT_ACCESSIBLE ++#endif ++ + #if VTE_DEBUG + G_DEFINE_TYPE_WITH_CODE(VteTerminal, vte_terminal, GTK_TYPE_WIDGET, + { +@@ -163,6 +173,7 @@ G_DEFINE_TYPE_WITH_CODE(VteTerminal, vte_terminal, GTK_TYPE_WIDGET, + } + g_type_add_class_private (g_define_type_id, sizeof (VteTerminalClassPrivate)); + G_IMPLEMENT_INTERFACE(GTK_TYPE_SCROLLABLE, nullptr) ++ VTE_IMPLEMENT_ACCESSIBLE + if (_vte_debug_on(VTE_DEBUG_LIFECYCLE)) { + g_printerr("vte_terminal_get_type()\n"); + }) +@@ -173,7 +184,8 @@ G_DEFINE_TYPE_WITH_CODE(VteTerminal, vte_terminal, GTK_TYPE_WIDGET, + g_type_add_instance_private(g_define_type_id, sizeof(VteTerminalPrivate)); + } + g_type_add_class_private (g_define_type_id, sizeof (VteTerminalClassPrivate)); +- G_IMPLEMENT_INTERFACE(GTK_TYPE_SCROLLABLE, nullptr)) ++ G_IMPLEMENT_INTERFACE(GTK_TYPE_SCROLLABLE, nullptr) ++ VTE_IMPLEMENT_ACCESSIBLE) + #endif + + static inline auto +@@ -901,6 +913,10 @@ try + gtk_widget_set_has_window(&terminal->widget, FALSE); + #endif + ++#if defined(WITH_A11Y) && VTE_GTK == 4 ++ _vte_accessible_text_init (GTK_ACCESSIBLE_TEXT (terminal)); ++#endif ++ + place = vte_terminal_get_instance_private(terminal); + new (place) VteTerminalPrivate{terminal}; + } +@@ -1017,6 +1033,9 @@ try + case PROP_DELETE_BINDING: + g_value_set_enum (value, widget->delete_binding()); + break; ++ case PROP_ENABLE_A11Y: ++ g_value_set_boolean (value, vte_terminal_get_enable_a11y (terminal)); ++ break; + case PROP_ENABLE_BIDI: + g_value_set_boolean (value, vte_terminal_get_enable_bidi (terminal)); + break; +@@ -1172,6 +1191,9 @@ try + case PROP_DELETE_BINDING: + vte_terminal_set_delete_binding (terminal, (VteEraseBinding)g_value_get_enum (value)); + break; ++ case PROP_ENABLE_A11Y: ++ vte_terminal_set_enable_a11y (terminal, g_value_get_boolean (value)); ++ break; + case PROP_ENABLE_BIDI: + vte_terminal_set_enable_bidi (terminal, g_value_get_boolean (value)); + break; +@@ -2286,6 +2308,22 @@ vte_terminal_class_init(VteTerminalClass *klass) + VTE_ERASE_AUTO, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); + ++ /** ++ * VteTerminal:enable-a11y: ++ * ++ * Controls whether or not a11y is enabled for the widget. ++ * ++ * Since: 0.78 ++ */ ++ pspecs[PROP_ENABLE_A11Y] = ++ g_param_spec_boolean ("enable-a11y", NULL, NULL, ++#if VTE_GTK == 3 ++ TRUE, ++#else ++ FALSE, ++#endif ++ (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); ++ + /** + * VteTerminal:enable-bidi: + * +@@ -2712,10 +2750,12 @@ vte_terminal_class_init(VteTerminalClass *klass) + err.assert_no_error(); + #endif + +-#if VTE_GTK == 3 + #if WITH_A11Y ++#if VTE_GTK == 3 + /* a11y */ + gtk_widget_class_set_accessible_type(widget_class, VTE_TYPE_TERMINAL_ACCESSIBLE); ++#elif VTE_GTK == 4 ++ gtk_widget_class_set_accessible_role(widget_class, GTK_ACCESSIBLE_ROLE_TERMINAL); + #endif + #endif + } +@@ -5709,6 +5749,53 @@ catch (...) + vte::log_exception(); + } + ++/** ++ * vte_terminal_get_enable_a11y: ++ * @terminal: a #VteTerminal ++ * ++ * Checks whether the terminal communicates with a11y backends ++ * ++ * Returns: %TRUE if a11y is enabled, %FALSE if not ++ * ++ * Since: 0.78 ++ */ ++gboolean ++vte_terminal_get_enable_a11y(VteTerminal *terminal) noexcept ++try ++{ ++ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), false); ++ return IMPL(terminal)->m_enable_a11y; ++} ++catch (...) ++{ ++ vte::log_exception(); ++ return false; ++} ++ ++/** ++ * vte_terminal_set_enable_a11y: ++ * @terminal: a #VteTerminal ++ * @enable_a11y: %TRUE to enable a11y support ++ * ++ * Controls whether or not the terminal will communicate with a11y backends. ++ * ++ * Since: 0.78 ++ */ ++void ++vte_terminal_set_enable_a11y(VteTerminal *terminal, ++ gboolean enable_a11y) noexcept ++try ++{ ++ g_return_if_fail(VTE_IS_TERMINAL(terminal)); ++ ++ if (IMPL(terminal)->set_enable_a11y(enable_a11y != FALSE)) ++ g_object_notify_by_pspec(G_OBJECT(terminal), pspecs[PROP_ENABLE_A11Y]); ++} ++catch (...) ++{ ++ vte::log_exception(); ++} ++ + /** + * vte_terminal_get_enable_bidi: + * @terminal: a #VteTerminal +diff --git a/src/vtegtk.hh b/src/vtegtk.hh +index 566c8508..87259680 100644 +--- a/src/vtegtk.hh ++++ b/src/vtegtk.hh +@@ -80,6 +80,7 @@ enum { + PROP_CURRENT_DIRECTORY_URI, + PROP_CURRENT_FILE_URI, + PROP_DELETE_BINDING, ++ PROP_ENABLE_A11Y, + PROP_ENABLE_BIDI, + PROP_ENABLE_FALLBACK_SCROLLING, + PROP_ENABLE_SHAPING, +diff --git a/src/vteinternal.hh b/src/vteinternal.hh +index 07a9e993..6e2c2e7f 100644 +--- a/src/vteinternal.hh ++++ b/src/vteinternal.hh +@@ -799,6 +799,13 @@ public: + const char *m_hyperlink_hover_uri; /* data is owned by the ring */ + long m_hyperlink_auto_id{0}; + ++ /* Accessibility support */ ++#if VTE_GTK == 3 ++ bool m_enable_a11y{true}; ++#elif VTE_GTK == 4 ++ bool m_enable_a11y{false}; ++#endif ++ + /* RingView and friends */ + vte::base::RingView m_ringview; + bool m_enable_bidi{true}; +@@ -1528,6 +1535,7 @@ public: + bool set_cursor_style(CursorStyle style); + bool set_delete_binding(EraseMode binding); + auto delete_binding() const noexcept { return m_delete_binding; } ++ bool set_enable_a11y(bool setting); + bool set_enable_bidi(bool setting); + bool set_enable_shaping(bool setting); + bool set_encoding(char const* codeset, +-- +2.43.1 + diff --git a/0001-add-notification-and-shell-precmd-preexec.patch b/0001-add-notification-and-shell-precmd-preexec.patch new file mode 100644 index 0000000..ffc02b2 --- /dev/null +++ b/0001-add-notification-and-shell-precmd-preexec.patch @@ -0,0 +1,533 @@ +From f31af265a19a406cd193a82b96dff1dd2e4595b4 Mon Sep 17 00:00:00 2001 +From: Christian Hergert +Date: Mon, 4 Mar 2024 14:03:38 -0800 +Subject: [PATCH] add notification and shell precmd/preexec + +This is a bit simpler to manage as a single patch rather than a series of +patches which incrementally update things. + +This alters some of the original patches so that we don't need to have +such careful integration with the vtable of the class as that isn't used. + +You can always connect to the signal rather than the vtable default func. +--- + src/marshal.list | 1 + + src/vte.cc | 28 +++++++++ + src/vte.sh.in | 7 ++- + src/vte/vteterminal.h | 4 ++ + src/vtegtk.cc | 131 ++++++++++++++++++++++++++++++++++++++++++ + src/vtegtk.hh | 5 ++ + src/vteinternal.hh | 26 +++++++++ + src/vteseq.cc | 123 ++++++++++++++++++++++++++++++++++++++- + 8 files changed, 322 insertions(+), 3 deletions(-) + +diff --git a/src/marshal.list b/src/marshal.list +index 241128c3..f9b3818f 100644 +--- a/src/marshal.list ++++ b/src/marshal.list +@@ -1,3 +1,4 @@ + VOID:STRING,BOXED + VOID:STRING,UINT ++VOID:STRING,STRING + VOID:UINT,UINT +diff --git a/src/vte.cc b/src/vte.cc +index 2cba7369..a8a0e22c 100644 +--- a/src/vte.cc ++++ b/src/vte.cc +@@ -10771,6 +10771,34 @@ Terminal::emit_pending_signals() + + emit_adjustment_changed(); + ++ 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()); ++ } ++ ++ 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); ++ } ++ ++ 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); ++ } ++ ++ 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]); ++ } ++ + 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 2328a9ec..93f45ea8 100644 +--- a/src/vte.sh.in ++++ b/src/vte.sh.in +@@ -28,6 +28,12 @@ case "$TERM" in + *) return 0 ;; + esac + ++__vte_shell_precmd() { ++ local command=$(HISTTIMEFORMAT= history 1 | sed 's/^ *[0-9]\+ *//') ++ command="${command//;/ }" ++ printf '\033]777;notify;Command completed;%s\033\\\033]777;precmd\033\\' "${command}" ++} ++ + __vte_osc7 () { + printf "\033]7;file://%s%s\033\\" "${HOSTNAME}" "$(@libexecdir@/vte-urlencode-cwd)" + } +@@ -37,6 +43,7 @@ __vte_prompt_command() { + [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} + pwd="${pwd//[[:cntrl:]]}" + printf "\033]0;%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${pwd}" ++ __vte_shell_precmd + __vte_osc7 + } + +@@ -49,9 +56,12 @@ if [[ -n "${BASH_VERSION:-}" ]]; then + # use the __vte_prompt_command function which also sets the title. + + if [[ "$(declare -p PROMPT_COMMAND 2>&1)" =~ "declare -a" ]]; then ++ PROMPT_COMMAND+=(__vte_shell_precmd) + PROMPT_COMMAND+=(__vte_osc7) ++ PS0=$(printf "\033]777;preexec\033\\") + else + PROMPT_COMMAND="__vte_prompt_command" ++ PS0=$(printf "\033]777;preexec\033\\") + fi + + # Shell integration +diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h +index a9e1e494..9c2e2dae 100644 +--- a/src/vte/vteterminal.h ++++ b/src/vte/vteterminal.h +@@ -559,6 +559,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 ++const char *vte_terminal_get_current_container_name(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); ++_VTE_PUBLIC ++const char *vte_terminal_get_current_container_runtime(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); ++_VTE_PUBLIC + const char *vte_terminal_get_current_directory_uri(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); + _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 92eb6881..c713a95a 100644 +--- a/src/vtegtk.cc ++++ b/src/vtegtk.cc +@@ -999,6 +999,12 @@ try + case PROP_CURSOR_BLINK_MODE: + g_value_set_enum (value, vte_terminal_get_cursor_blink_mode (terminal)); + break; ++ case PROP_CURRENT_CONTAINER_NAME: ++ g_value_set_string (value, vte_terminal_get_current_container_name (terminal)); ++ break; ++ case PROP_CURRENT_CONTAINER_RUNTIME: ++ g_value_set_string (value, vte_terminal_get_current_container_runtime (terminal)); ++ break; + case PROP_CURRENT_DIRECTORY_URI: + g_value_set_string (value, vte_terminal_get_current_directory_uri (terminal)); + break; +@@ -1434,6 +1440,60 @@ vte_terminal_class_init(VteTerminalClass *klass) + G_OBJECT_CLASS_TYPE(klass), + g_cclosure_marshal_VOID__INTv); + ++ /** ++ * VteTerminal::notification-received: ++ * @vteterminal: the object which received the signal ++ * @summary: The summary ++ * @body: (allow-none): Extra optional text ++ * ++ * Emitted when a process running in the terminal wants to ++ * send a notification to the desktop environment. ++ */ ++ signals[SIGNAL_NOTIFICATION_RECEIVED] = ++ g_signal_new(I_("notification-received"), ++ G_OBJECT_CLASS_TYPE(klass), ++ G_SIGNAL_RUN_LAST, ++ 0, ++ NULL, ++ NULL, ++ _vte_marshal_VOID__STRING_STRING, ++ G_TYPE_NONE, ++ 2, G_TYPE_STRING, G_TYPE_STRING); ++ ++ /** ++ * VteTerminal::shell-precmd: ++ * @vteterminal: the object which received the signal ++ * ++ * Emitted right before an interactive shell shows a ++ * first-level prompt. ++ */ ++ signals[SIGNAL_SHELL_PRECMD] = ++ g_signal_new(I_("shell-precmd"), ++ G_OBJECT_CLASS_TYPE(klass), ++ G_SIGNAL_RUN_LAST, ++ 0, ++ NULL, ++ NULL, ++ g_cclosure_marshal_VOID__VOID, ++ G_TYPE_NONE, 0); ++ ++ /** ++ * VteTerminal::shell-preexec: ++ * @vteterminal: the object which received the signal ++ * ++ * Emitted when the interactive shell has read in a complete ++ * command and is about to execute it. ++ */ ++ signals[SIGNAL_SHELL_PREEXEC] = ++ g_signal_new(I_("shell-preexec"), ++ G_OBJECT_CLASS_TYPE(klass), ++ G_SIGNAL_RUN_LAST, ++ 0, ++ NULL, ++ NULL, ++ g_cclosure_marshal_VOID__VOID, ++ G_TYPE_NONE, 0); ++ + /** + * VteTerminal::window-title-changed: + * @vteterminal: the object which received the signal +@@ -2487,6 +2547,27 @@ vte_terminal_class_init(VteTerminalClass *klass) + NULL, + (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); + ++ /** ++ * VteTerminal:current-container-name: ++ * ++ * The name of the current container, or %NULL if unset. ++ */ ++ pspecs[PROP_CURRENT_CONTAINER_NAME] = ++ g_param_spec_string ("current-container-name", NULL, NULL, ++ NULL, ++ (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); ++ ++ /** ++ * VteTerminal:current-container-runtime: ++ * ++ * The name of the runtime toolset used to set up the current ++ * container, or %NULL if unset. ++ */ ++ pspecs[PROP_CURRENT_CONTAINER_RUNTIME] = ++ g_param_spec_string ("current-container-runtime", NULL, NULL, ++ NULL, ++ (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); ++ + /** + * VteTerminal:current-directory-uri: + * +@@ -5419,6 +5500,56 @@ catch (...) + return -1; + } + ++/** ++ * vte_terminal_get_current_container_name: ++ * @terminal: a #VteTerminal ++ * ++ * Returns: (nullable) (transfer none): the name of the current ++ * container, or %NULL ++ */ ++const char * ++vte_terminal_get_current_container_name(VteTerminal *terminal) noexcept ++try ++{ ++ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL); ++ auto impl = IMPL(terminal); ++ if (impl->m_containers.empty()) ++ return NULL; ++ ++ const VteContainer &container = impl->m_containers.top(); ++ return container.m_name.c_str(); ++} ++catch (...) ++{ ++ vte::log_exception(); ++ return NULL; ++} ++ ++/** ++ * vte_terminal_get_current_container_runtime: ++ * @terminal: a #VteTerminal ++ * ++ * Returns: (nullable) (transfer none): the name of the runtime ++ * toolset used to set up the current container, or %NULL ++ */ ++const char * ++vte_terminal_get_current_container_runtime(VteTerminal *terminal) noexcept ++try ++{ ++ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL); ++ auto impl = IMPL(terminal); ++ if (impl->m_containers.empty()) ++ return NULL; ++ ++ const VteContainer &container = impl->m_containers.top(); ++ return container.m_runtime.c_str(); ++} ++catch (...) ++{ ++ vte::log_exception(); ++ return NULL; ++} ++ + /** + * vte_terminal_get_current_directory_uri: + * @terminal: a #VteTerminal +diff --git a/src/vtegtk.hh b/src/vtegtk.hh +index 1d1383af..566c8508 100644 +--- a/src/vtegtk.hh ++++ b/src/vtegtk.hh +@@ -53,6 +53,9 @@ enum { + SIGNAL_RESTORE_WINDOW, + SIGNAL_SELECTION_CHANGED, + SIGNAL_SETUP_CONTEXT_MENU, ++ SIGNAL_SHELL_PRECMD, ++ SIGNAL_SHELL_PREEXEC, ++ SIGNAL_NOTIFICATION_RECEIVED, + SIGNAL_WINDOW_TITLE_CHANGED, + LAST_SIGNAL + }; +@@ -72,6 +75,8 @@ enum { + PROP_CONTEXT_MENU, + PROP_CURSOR_BLINK_MODE, + PROP_CURSOR_SHAPE, ++ PROP_CURRENT_CONTAINER_NAME, ++ PROP_CURRENT_CONTAINER_RUNTIME, + PROP_CURRENT_DIRECTORY_URI, + PROP_CURRENT_FILE_URI, + PROP_DELETE_BINDING, +diff --git a/src/vteinternal.hh b/src/vteinternal.hh +index ed57ad16..07a9e993 100644 +--- a/src/vteinternal.hh ++++ b/src/vteinternal.hh +@@ -63,6 +63,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -121,6 +122,18 @@ typedef enum _VteCharacterReplacement { + VTE_CHARACTER_REPLACEMENT_LINE_DRAWING + } VteCharacterReplacement; + ++struct VteContainer { ++public: ++ VteContainer(const std::string &name, const std::string &runtime) : ++ m_name{name}, ++ m_runtime{runtime} ++ { ++ } ++ ++ std::string m_name; ++ std::string m_runtime; ++}; ++ + typedef struct _VtePaletteColor { + struct { + vte::color::rgb color; +@@ -710,6 +723,12 @@ public: + gboolean m_cursor_moved_pending; + gboolean m_contents_changed_pending; + ++ /* desktop notification */ ++ std::stack m_containers; ++ ++ 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{}; +@@ -723,6 +742,10 @@ public: + TITLE = 1u << 0, + CWD = 1u << 1, + CWF = 1u << 2, ++ NOTIFICATION = 1u << 4, ++ SHELL_PREEXEC = 1u << 5, ++ SHELL_PRECMD = 1u << 6, ++ CONTAINERS = 1u << 7, + }; + unsigned m_pending_changes{0}; + +@@ -1654,6 +1677,9 @@ public: + int osc) noexcept; + + /* OSC handlers */ ++ void handle_urxvt_extension(vte::parser::Sequence const& seq, ++ vte::parser::StringTokeniser::const_iterator& token, ++ vte::parser::StringTokeniser::const_iterator const& endtoken) noexcept; + void set_color(vte::parser::Sequence const& seq, + vte::parser::StringTokeniser::const_iterator& token, + vte::parser::StringTokeniser::const_iterator const& endtoken, +diff --git a/src/vteseq.cc b/src/vteseq.cc +index 904837e1..26f7b0d6 100644 +--- a/src/vteseq.cc ++++ b/src/vteseq.cc +@@ -39,6 +39,9 @@ + #define ST_C0 _VTE_CAP_ST + + #include ++#include ++#include ++#include + + using namespace std::literals; + +@@ -1276,6 +1279,121 @@ Terminal::erase_in_line(vte::parser::Sequence const& seq) + m_text_deleted_flag = TRUE; + } + ++void ++Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, ++ vte::parser::StringTokeniser::const_iterator& token, ++ vte::parser::StringTokeniser::const_iterator const& endtoken) noexcept ++{ ++ if (token == endtoken) ++ return; ++ ++ if (*token == "container") { ++ ++token; ++ ++ if (token == endtoken) ++ return; ++ ++ const std::string sub_command = *token; ++ ++token; ++ ++ if (sub_command == "pop") { ++ if (token == endtoken) ++ return; ++ ++ ++token; ++ ++ if (token == endtoken) ++ return; ++ ++ ++token; ++ ++ if (token == endtoken) { ++ if (!m_containers.empty()) { ++ m_containers.pop(); ++ m_pending_changes |= vte::to_integral(PendingChanges::CONTAINERS); ++ } ++ ++ return; ++ } ++ ++ const std::string uid_token = *token; ++ ++token; ++ ++ const uid_t uid = getuid(); ++ const std::string uid_str = std::to_string(uid); ++ ++ if (uid_token == uid_str) { ++ if (!m_containers.empty()) { ++ m_containers.pop(); ++ m_pending_changes |= vte::to_integral(PendingChanges::CONTAINERS); ++ } ++ ++ return; ++ } ++ ++ return; ++ } else if (sub_command == "push") { ++ if (token == endtoken) ++ return; ++ ++ const std::string name = *token; ++ ++token; ++ ++ if (token == endtoken) ++ return; ++ ++ const std::string runtime = *token; ++ ++token; ++ ++ if (token == endtoken) { ++ m_containers.emplace(name, runtime); ++ m_pending_changes |= vte::to_integral(PendingChanges::CONTAINERS); ++ return; ++ } ++ ++ const std::string uid_token = *token; ++ ++token; ++ ++ const uid_t uid = getuid(); ++ const std::string uid_str = std::to_string(uid); ++ ++ if (uid_token == uid_str) { ++ m_containers.emplace(name, runtime); ++ m_pending_changes |= vte::to_integral(PendingChanges::CONTAINERS); ++ return; ++ } ++ ++ return; ++ } ++ ++ return; ++ } ++ ++ if (*token == "notify") { ++ ++token; ++ ++ if (token == endtoken) ++ return; ++ ++ m_notification_summary = *token; ++ m_notification_body.clear(); ++ m_pending_changes |= vte::to_integral(PendingChanges::NOTIFICATION); ++ ++token; ++ ++ if (token == endtoken) ++ return; ++ ++ m_notification_body = *token; ++ return; ++ } ++ ++ if (*token == "precmd") { ++ m_pending_changes |= vte::to_integral(PendingChanges::SHELL_PRECMD); ++ } else if (*token == "preexec") { ++ m_pending_changes |= vte::to_integral(PendingChanges::SHELL_PREEXEC); ++ } ++} ++ + bool + Terminal::get_osc_color_index(int osc, + int value, +@@ -6596,6 +6714,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) + reset_color(VTE_HIGHLIGHT_FG, VTE_COLOR_SOURCE_ESCAPE); + break; + ++ case VTE_OSC_URXVT_EXTENSION: ++ handle_urxvt_extension(seq, it, cend); ++ break; ++ + case VTE_OSC_XTERM_SET_ICON_TITLE: + case VTE_OSC_XTERM_SET_XPROPERTY: + case VTE_OSC_XTERM_SET_COLOR_MOUSE_CURSOR_FG: +@@ -6636,7 +6758,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: +- case VTE_OSC_URXVT_EXTENSION: + case VTE_OSC_YF_RQGWR: + default: + break; +-- +2.43.1 + diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch deleted file mode 100644 index 32ac71e..0000000 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ /dev/null @@ -1,2727 +0,0 @@ -From aace6f9a1f217be6496a3df0833bf1cd9841bf24 Mon Sep 17 00:00:00 2001 -From: Christian Hergert -Date: Tue, 2 Apr 2024 11:25:40 +0100 -Subject: [PATCH 01/12] a11y: implement GtkAccessibleText - -This is an initial implementaiton of GtkAccessibleText which was added -to GTK for 4.14. It attempts to implement things in a very similar -fashion to the previous code for GTK 3 although considerable effort was -made to simplify and improve readability as to how it works. - -Currently, this supports reading back what you type and what has changed -on screen. It is not yet 1:1 what the GTK 3 a11y implementation did -because ATK was doing many other things (including proxying keyboard -keys) to the other side of the a11y bus. That appears to improve -readback by screen readers in the form of "backspace" and what character -was deleted. - -I expect things to get closer to 1:1 but that work is going to have to -be done inside of GTK itself first and should not require much if -anything here. - -A new VteTerminal:enable-a11y feature flag property has been added -because I'm concerned about enabling this by default until the a11y bus -learns to be more lazy. Currently there is no way to "do nothing" until -a peer (e.g. screenreader) is interested in the contents. - -Ideally, we would have a short-circuit like is currently implemented by -checking vte_terminal_get_enable_a11y() to avoid any sort of contents -calculation when there are no a11y observers. - -It also allows disabling the GTK 3 a11y implementation just to keep some -symmetry between the APIs. - -Currently, this does not implement "text-scrolled" like the GTK 3 -implementation does as I'm not sure yet if there is a benefit. ---- - src/meson.build | 13 +- - src/vte.cc | 11 + - src/vte/vteterminal.h | 7 + - src/vteaccess-gtk4.cc | 874 ++++++++++++++++++++++++++++++++++++++++++ - src/vteaccess-gtk4.h | 25 ++ - src/vteaccess.cc | 21 + - src/vtegtk.cc | 97 ++++- - src/vtegtk.hh | 1 + - src/vteinternal.hh | 8 + - 9 files changed, 1050 insertions(+), 7 deletions(-) - create mode 100644 src/vteaccess-gtk4.cc - create mode 100644 src/vteaccess-gtk4.h - -diff --git a/src/meson.build b/src/meson.build -index 3f89f492..6d1b4b2b 100644 ---- a/src/meson.build -+++ b/src/meson.build -@@ -18,11 +18,16 @@ subdir('vte') - - src_inc = include_directories('.') - --a11y_sources = files( -+a11y_gtk3_sources = files( - 'vteaccess.cc', - 'vteaccess.h', - ) - -+a11y_gtk4_sources = files( -+ 'vteaccess-gtk4.cc', -+ 'vteaccess-gtk4.h', -+) -+ - debug_sources = files( - 'debug.cc', - 'debug.h', -@@ -300,7 +305,7 @@ if get_option('gtk3') - libvte_gtk3_public_deps = libvte_common_public_deps + [gtk3_dep,] - - if get_option('a11y') -- libvte_gtk3_sources += a11y_sources -+ libvte_gtk3_sources += a11y_gtk3_sources - endif - - libvte_gtk3 = shared_library( -@@ -349,6 +354,10 @@ if get_option('gtk4') - libvte_gtk4_deps = libvte_common_deps + [gtk4_dep,] - libvte_gtk4_public_deps = libvte_common_public_deps + [gtk4_dep,] - -+ if get_option('a11y') -+ libvte_gtk4_sources += a11y_gtk4_sources -+ endif -+ - libvte_gtk4 = shared_library( - vte_gtk4_api_name, - sources: libvte_gtk4_sources, -diff --git a/src/vte.cc b/src/vte.cc -index b3bcc0a6..6f5ed505 100644 ---- a/src/vte.cc -+++ b/src/vte.cc -@@ -10134,6 +10134,17 @@ Terminal::set_text_blink_mode(TextBlinkMode setting) - return true; - } - -+bool -+Terminal::set_enable_a11y(bool setting) -+{ -+ if (setting == m_enable_a11y) -+ return false; -+ -+ m_enable_a11y = setting; -+ -+ return true; -+} -+ - bool - Terminal::set_enable_bidi(bool setting) - { -diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index a9e1e494..33360909 100644 ---- a/src/vte/vteterminal.h -+++ b/src/vte/vteterminal.h -@@ -388,6 +388,13 @@ _VTE_PUBLIC - void vte_terminal_set_delete_binding(VteTerminal *terminal, - VteEraseBinding binding) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); - -+/* Accessibility */ -+_VTE_PUBLIC -+void vte_terminal_set_enable_a11y(VteTerminal *terminal, -+ gboolean enable_a11y) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); -+_VTE_PUBLIC -+gboolean vte_terminal_get_enable_a11y(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); -+ - /* BiDi and shaping */ - _VTE_PUBLIC - void vte_terminal_set_enable_bidi(VteTerminal *terminal, -diff --git a/src/vteaccess-gtk4.cc b/src/vteaccess-gtk4.cc -new file mode 100644 -index 00000000..f42e7578 ---- /dev/null -+++ b/src/vteaccess-gtk4.cc -@@ -0,0 +1,874 @@ -+/* -+ * Copyright © 2024 Christian Hergert -+ * Copyright © 2002,2003 Red Hat, Inc. -+ * -+ * This library is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU Lesser General Public License as published -+ * by the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public License -+ * along with this library. If not, see . -+ */ -+ -+#include "config.h" -+ -+#include "vteinternal.hh" -+#include "vteaccess-gtk4.h" -+ -+#define GDK_ARRAY_NAME char_positions -+#define GDK_ARRAY_TYPE_NAME CharPositions -+#define GDK_ARRAY_ELEMENT_TYPE int -+#define GDK_ARRAY_BY_VALUE 1 -+#define GDK_ARRAY_PREALLOC 8 -+#define GDK_ARRAY_NO_MEMSET -+#include "gdkarrayimpl.c" -+ -+typedef struct _VteAccessibleTextContents -+{ -+ /* A GdkArrayImpl of attributes per byte */ -+ VteCharAttrList attrs; -+ -+ /* The byte position within the UTF-8 string where each visible -+ * character starts. -+ */ -+ CharPositions characters; -+ -+ /* The character position within the UTF-8 string where each line -+ * break occurs. To get byte offset, use @characters. -+ */ -+ CharPositions linebreaks; -+ -+ /* The UTF-8 string encoded as bytes so that we may reference it -+ * using GBytes for "substrings". However @string does include a -+ * trailing NUL byte in it's size so that the a11y infrastructure -+ * may elide some string copies. -+ */ -+ GBytes *string; -+ -+ /* Number of bytes in @string excluding trailing NUL. */ -+ gsize n_bytes; -+ -+ /* Number of unicode characters in @string. */ -+ gsize n_chars; -+ -+ /* The character position (not bytes) of the caret in @string */ -+ gsize caret; -+ -+ /* Cached column/row of the caret updated each time we are notified -+ * of the caret having moved. We cache this so that we can elide -+ * extraneous notifications after snapshoting. We will update the -+ * carent position synchronously when notified so @caret may always -+ * be relied upon as correct. -+ */ -+ long cached_caret_column; -+ long cached_caret_row; -+} VteAccessibleTextContents; -+ -+typedef struct _VteAccessibleText -+{ -+ VteTerminal *terminal; -+ VteAccessibleTextContents contents[2]; -+ guint contents_flip : 1; -+} VteAccessibleText; -+ -+static inline gboolean -+_pango_color_equal(const PangoColor *a, -+ const PangoColor *b) -+{ -+ return a->red == b->red && -+ a->green == b->green && -+ a->blue == b->blue; -+} -+ -+static void -+vte_accessible_text_contents_init (VteAccessibleTextContents *contents) -+{ -+ vte_char_attr_list_init (&contents->attrs); -+ char_positions_init (&contents->characters); -+ char_positions_init (&contents->linebreaks); -+ contents->string = nullptr; -+ contents->n_bytes = 0; -+ contents->n_chars = 0; -+ contents->caret = 0; -+ contents->cached_caret_row = 0; -+ contents->cached_caret_column = 0; -+} -+ -+static void -+vte_accessible_text_contents_clear (VteAccessibleTextContents *contents) -+{ -+ vte_char_attr_list_clear (&contents->attrs); -+ char_positions_clear (&contents->characters); -+ char_positions_clear (&contents->linebreaks); -+ g_clear_pointer (&contents->string, g_bytes_unref); -+ contents->n_bytes = 0; -+ contents->n_chars = 0; -+ contents->caret = 0; -+ contents->cached_caret_row = 0; -+ contents->cached_caret_column = 0; -+} -+ -+static void -+vte_accessible_text_contents_reset (VteAccessibleTextContents *contents) -+{ -+ vte_char_attr_list_set_size (&contents->attrs, 0); -+ char_positions_set_size (&contents->characters, 0); -+ char_positions_set_size (&contents->linebreaks, 0); -+ g_clear_pointer (&contents->string, g_bytes_unref); -+ contents->n_bytes = 0; -+ contents->n_chars = 0; -+ contents->caret = 0; -+ contents->cached_caret_row = 0; -+ contents->cached_caret_column = 0; -+} -+ -+static const char * -+vte_accessible_text_contents_get_string (VteAccessibleTextContents *contents, -+ gsize *len) -+{ -+ const char *ret; -+ -+ if (contents->string == nullptr || g_bytes_get_size (contents->string) == 0) { -+ *len = 0; -+ return ""; -+ } -+ -+ ret = (const char *)g_bytes_get_data (contents->string, len); -+ -+ if (*len > 0) { -+ (*len)--; -+ } -+ -+ return ret; -+} -+ -+static int -+vte_accessible_text_contents_offset_from_xy (VteAccessibleTextContents *contents, -+ int x, -+ int y) -+{ -+ int offset; -+ int linebreak; -+ int next_linebreak; -+ -+ if (y >= int(char_positions_get_size (&contents->linebreaks))) { -+ y = int(char_positions_get_size (&contents->linebreaks)) - 1; -+ if (y < 0) { -+ return 0; -+ } -+ } -+ -+ linebreak = *char_positions_index (&contents->linebreaks, y); -+ if (y + 1 == int(char_positions_get_size (&contents->linebreaks))) { -+ next_linebreak = int(char_positions_get_size (&contents->characters)); -+ } else { -+ next_linebreak = *char_positions_index (&contents->linebreaks, y + 1); -+ } -+ -+ offset = linebreak + x; -+ if (offset >= next_linebreak) { -+ offset = next_linebreak - 1; -+ } -+ -+ return offset; -+} -+ -+static gunichar -+vte_accessible_text_contents_get_char_at (VteAccessibleTextContents *contents, -+ guint offset) -+{ -+ const char *str; -+ -+ if (contents->string == nullptr) -+ return 0; -+ -+ if (offset >= contents->n_chars) -+ return 0; -+ -+ g_assert (offset < char_positions_get_size (&contents->characters)); -+ -+ str = (const char *)g_bytes_get_data (contents->string, nullptr); -+ str += *char_positions_index (&contents->characters, offset); -+ -+ return g_utf8_get_char (str); -+ -+} -+ -+static GBytes * -+_g_string_free_to_bytes_with_nul (GString *str) -+{ -+ /* g_string_free_to_bytes() will have a trailing-NUL but not include it -+ * in the size of the GBytes. We want the size included in our GBytes -+ * so that GtkAccessibleText may avoid some copies. -+ */ -+ gsize len = str->len + 1; -+ return g_bytes_new_take (g_string_free (str, FALSE), len); -+} -+ -+static inline gsize -+vte_accessible_text_contents_find_caret (VteAccessibleTextContents *contents, -+ long ccol, -+ long crow) -+{ -+ g_assert (contents != nullptr); -+ -+ /* Get the offsets to the beginnings of each line. */ -+ gsize caret = 0; -+ for (gsize i = 0; i < char_positions_get_size (&contents->characters); i++) { -+ /* Get the attributes for the current cell. */ -+ int offset = *char_positions_index (&contents->characters, i); -+ const struct _VteCharAttributes *attrs = vte_char_attr_list_get (&contents->attrs, offset); -+ -+ /* If this cell is "before" the cursor, move the caret to be "here". */ -+ if ((attrs->row < crow) || -+ ((attrs->row == crow) && (attrs->column < ccol))) { -+ caret = i + 1; -+ } -+ } -+ -+ return caret; -+} -+ -+static void -+vte_accessible_text_contents_snapshot (VteAccessibleTextContents *contents, -+ VteTerminal *terminal) -+{ -+ auto impl = _vte_terminal_get_impl (terminal); -+ GString *gstr = g_string_new (nullptr); -+ -+ try { -+ impl->get_text_displayed_a11y (gstr, &contents->attrs); -+ } catch (...) { -+ g_string_truncate (gstr, 0); -+ } -+ -+ if (vte_char_attr_list_get_size (&contents->attrs) >= G_MAXINT) { -+ g_string_truncate (gstr, 0); -+ return; -+ } -+ -+ /* Get the offsets to the beginnings of each character. */ -+ int i = 0; -+ const char *next = gstr->str; -+ int n_attrs = int(vte_char_attr_list_get_size (&contents->attrs)); -+ while (i < n_attrs) { -+ char_positions_append (&contents->characters, &i); -+ next = g_utf8_next_char (next); -+ if (next != nullptr) { -+ i = next - gstr->str; -+ continue; -+ } -+ break; -+ } -+ -+ /* Find offsets for the beginning of lines. */ -+ gsize n_chars = char_positions_get_size (&contents->characters); -+ int row; -+ for (i = 0, row = 0; i < int(n_chars); i++) { -+ /* Get the attributes for the current cell. */ -+ int offset = *char_positions_index (&contents->characters, i); -+ const struct _VteCharAttributes *attrs = vte_char_attr_list_get (&contents->attrs, offset); -+ -+ /* If this character is on a row different from the row -+ * the character we looked at previously was on, then -+ * it's a new line and we need to keep track of where -+ * it is. */ -+ if ((i == 0) || (attrs->row != row)) { -+ _vte_debug_print (VTE_DEBUG_ALLY, -+ "Row %d/%ld begins at %d.\n", -+ int(char_positions_get_size (&contents->linebreaks)), -+ attrs->row, i); -+ char_positions_append (&contents->linebreaks, &i); -+ } -+ -+ row = attrs->row; -+ } -+ -+ /* Add the final line break. */ -+ char_positions_append (&contents->linebreaks, &i); -+ -+ /* Update the caret position. */ -+ long ccol, crow; -+ vte_terminal_get_cursor_position (terminal, &ccol, &crow); -+ _vte_debug_print (VTE_DEBUG_ALLY, "Cursor at (%ld, " "%ld).\n", ccol, crow); -+ gsize caret = vte_accessible_text_contents_find_caret (contents, ccol, crow); -+ -+ contents->n_bytes = gstr->len; -+ contents->n_chars = n_chars; -+ contents->string = _g_string_free_to_bytes_with_nul (gstr); -+ contents->caret = caret; -+ contents->cached_caret_column = ccol; -+ contents->cached_caret_row = crow; -+ -+ _vte_debug_print (VTE_DEBUG_ALLY, -+ "Refreshed accessibility snapshot, " -+ "%ld cells, %ld characters.\n", -+ long(vte_char_attr_list_get_size(&contents->attrs)), -+ long(char_positions_get_size (&contents->characters))); -+} -+ -+static GBytes * -+vte_accessible_text_contents_slice (VteAccessibleTextContents *contents, -+ guint start, -+ guint end) -+{ -+ static const char empty[] = {0}; -+ guint start_offset; -+ guint end_offset; -+ -+ g_assert (contents != nullptr); -+ -+ if (contents->string == nullptr) -+ return g_bytes_new_static (empty, sizeof empty); -+ -+ if (start > contents->n_chars) -+ start = contents->n_chars; -+ -+ if (end > contents->n_chars) -+ end = contents->n_chars; -+ -+ if (end < start) -+ std::swap (end, start); -+ -+ g_assert (start <= char_positions_get_size (&contents->characters)); -+ g_assert (end <= char_positions_get_size (&contents->characters)); -+ -+ if (start == char_positions_get_size (&contents->characters)) -+ start_offset = g_bytes_get_size (contents->string); -+ else -+ start_offset = *char_positions_index (&contents->characters, start); -+ -+ if (end == char_positions_get_size (&contents->characters)) -+ end_offset = g_bytes_get_size (contents->string); -+ else -+ end_offset = *char_positions_index (&contents->characters, end); -+ -+ g_assert (start_offset <= end_offset); -+ -+ if (start_offset == end_offset) -+ return g_bytes_new_static (empty, sizeof empty); -+ -+ return g_bytes_new_from_bytes (contents->string, start_offset, end_offset - start_offset); -+} -+ -+static void -+vte_accessible_text_free (VteAccessibleText *state) -+{ -+ vte_accessible_text_contents_clear (&state->contents[0]); -+ vte_accessible_text_contents_clear (&state->contents[1]); -+ state->terminal = nullptr; -+ g_free (state); -+} -+ -+static VteAccessibleText * -+vte_accessible_text_get (VteTerminal *terminal) -+{ -+ return (VteAccessibleText *)g_object_get_data (G_OBJECT (terminal), "VTE_ACCESSIBLE_TEXT"); -+} -+ -+static GBytes * -+vte_accessible_text_get_contents (GtkAccessibleText *accessible, -+ guint start, -+ guint end) -+{ -+ VteTerminal *terminal = VTE_TERMINAL (accessible); -+ VteAccessibleText *state = vte_accessible_text_get (terminal); -+ VteAccessibleTextContents *contents = nullptr; -+ -+ g_assert (VTE_IS_TERMINAL (terminal)); -+ g_assert (state != nullptr); -+ g_assert (state->terminal == terminal); -+ -+ contents = &state->contents[state->contents_flip]; -+ -+ return vte_accessible_text_contents_slice (contents, start, end); -+} -+ -+static GBytes * -+vte_accessible_text_get_contents_at (GtkAccessibleText *accessible, -+ guint offset, -+ GtkAccessibleTextGranularity granularity, -+ guint *start, -+ guint *end) -+{ -+ VteTerminal *terminal = VTE_TERMINAL (accessible); -+ VteAccessibleText *state = vte_accessible_text_get (terminal); -+ VteAccessibleTextContents *contents; -+ -+ g_assert (VTE_IS_TERMINAL (terminal)); -+ g_assert (state != nullptr); -+ g_assert (state->terminal == terminal); -+ -+ auto impl = _vte_terminal_get_impl (terminal); -+ -+ contents = &state->contents[state->contents_flip]; -+ -+ if (contents->string == nullptr) { -+ return nullptr; -+ } -+ -+ if (offset > contents->n_chars) { -+ offset = contents->n_chars; -+ } -+ -+ switch (granularity) { -+ case GTK_ACCESSIBLE_TEXT_GRANULARITY_CHARACTER: { -+ *start = offset; -+ *end = offset + 1; -+ return vte_accessible_text_contents_slice (contents, offset, offset + 1); -+ } -+ -+ case GTK_ACCESSIBLE_TEXT_GRANULARITY_LINE: { -+ guint char_offset = *char_positions_index (&contents->characters, offset); -+ guint line; -+ -+ for (line = 0; -+ line < char_positions_get_size (&contents->linebreaks); -+ line++) { -+ guint line_offset = *char_positions_index (&contents->linebreaks, line); -+ -+ if (line_offset > char_offset) { -+ line--; -+ break; -+ } -+ } -+ -+ _vte_debug_print (VTE_DEBUG_ALLY, -+ "Character %u is on line %u.\n", -+ offset, line); -+ -+ *start = *char_positions_index (&contents->linebreaks, line); -+ if (line + 1 < char_positions_get_size (&contents->linebreaks)) -+ *end = *char_positions_index (&contents->linebreaks, line + 1); -+ else -+ *end = contents->n_chars; -+ -+ return vte_accessible_text_contents_slice (contents, *start, *end); -+ } -+ -+ case GTK_ACCESSIBLE_TEXT_GRANULARITY_WORD: { -+ gunichar ch = vte_accessible_text_contents_get_char_at (contents, offset); -+ -+ if (ch == 0 || !impl->is_word_char (ch)) -+ break; -+ -+ *start = offset; -+ *end = offset; -+ -+ while (*start > 0 && -+ (ch = vte_accessible_text_contents_get_char_at (contents, *start - 1)) && -+ impl->is_word_char (ch)) { -+ (*start)--; -+ } -+ -+ while (*end < contents->n_chars && -+ (ch = vte_accessible_text_contents_get_char_at (contents, *end + 1)) && -+ impl->is_word_char (ch)) { -+ (*end)++; -+ } -+ -+ return vte_accessible_text_contents_slice (contents, *start, *end); -+ } -+ -+ case GTK_ACCESSIBLE_TEXT_GRANULARITY_SENTENCE: -+ case GTK_ACCESSIBLE_TEXT_GRANULARITY_PARAGRAPH: -+ default: -+ break; -+ } -+ -+ return nullptr; -+} -+ -+static guint -+vte_accessible_text_get_caret_position (GtkAccessibleText *accessible) -+{ -+ VteTerminal *terminal = VTE_TERMINAL (accessible); -+ VteAccessibleText *state = vte_accessible_text_get (terminal); -+ -+ g_assert (VTE_IS_TERMINAL (accessible)); -+ g_assert (state != nullptr); -+ g_assert (state->terminal == terminal); -+ -+ return state->contents[state->contents_flip].caret; -+} -+ -+static gboolean -+vte_accessible_text_get_selection (GtkAccessibleText *accessible, -+ gsize *n_ranges, -+ GtkAccessibleTextRange **ranges) -+{ -+ VteTerminal *terminal = VTE_TERMINAL (accessible); -+ VteAccessibleText *state = vte_accessible_text_get (terminal); -+ -+ g_assert (VTE_IS_TERMINAL (terminal)); -+ g_assert (ranges != nullptr); -+ -+ *n_ranges = 0; -+ *ranges = nullptr; -+ -+ try { -+ auto impl = _vte_terminal_get_impl (terminal); -+ VteAccessibleTextContents *contents = &state->contents[state->contents_flip]; -+ GtkAccessibleTextRange range; -+ -+ if (impl->m_selection_resolved.empty() || -+ impl->m_selection[vte::to_integral(vte::platform::ClipboardType::PRIMARY)] == nullptr) -+ return FALSE; -+ -+ auto start_column = impl->m_selection_resolved.start_column(); -+ auto start_row = impl->m_selection_resolved.start_row(); -+ auto end_column = impl->m_selection_resolved.end_column(); -+ auto end_row = impl->m_selection_resolved.end_row(); -+ -+ auto start_offset = vte_accessible_text_contents_offset_from_xy (contents, start_column, start_row); -+ auto end_offset = vte_accessible_text_contents_offset_from_xy (contents, end_column, end_row); -+ -+ range.start = gsize(start_offset); -+ range.length = gsize(end_offset - start_offset); -+ -+ *n_ranges = 1; -+ *ranges = (GtkAccessibleTextRange *)g_memdup2 (&range, sizeof range); -+ -+ return TRUE; -+ } catch (...) { } -+ -+ return FALSE; -+} -+ -+static gboolean -+vte_accessible_text_get_attributes (GtkAccessibleText *accessible, -+ guint offset, -+ gsize *n_ranges, -+ GtkAccessibleTextRange **ranges, -+ char ***attribute_names, -+ char ***attribute_values) -+{ -+ VteTerminal *terminal = VTE_TERMINAL (accessible); -+ VteAccessibleText *state = vte_accessible_text_get (terminal); -+ VteAccessibleTextContents *contents; -+ struct _VteCharAttributes cur_attr; -+ struct _VteCharAttributes attr; -+ GtkAccessibleTextRange range; -+ struct { -+ const char *name; -+ const char *value; -+ } attrs[4]; -+ char fg_color[16]; -+ char bg_color[16]; -+ guint n_attrs = 0; -+ guint start = 0; -+ guint end = 0; -+ guint i; -+ -+ g_assert (VTE_IS_TERMINAL (accessible)); -+ g_assert (ranges != nullptr); -+ g_assert (attribute_names != nullptr); -+ g_assert (attribute_values != nullptr); -+ -+ contents = &state->contents[state->contents_flip]; -+ -+ *n_ranges = 0; -+ *ranges = nullptr; -+ *attribute_names = nullptr; -+ *attribute_values = nullptr; -+ -+ attr = *vte_char_attr_list_get (&contents->attrs, offset); -+ start = 0; -+ for (i = offset; i--;) { -+ cur_attr = *vte_char_attr_list_get (&contents->attrs, i); -+ if (!_pango_color_equal (&cur_attr.fore, &attr.fore) || -+ !_pango_color_equal (&cur_attr.back, &attr.back) || -+ cur_attr.underline != attr.underline || -+ cur_attr.strikethrough != attr.strikethrough) { -+ start = i + 1; -+ break; -+ } -+ } -+ end = vte_char_attr_list_get_size (&contents->attrs) - 1; -+ for (i = offset + 1; i < vte_char_attr_list_get_size (&contents->attrs); i++) { -+ cur_attr = *vte_char_attr_list_get (&contents->attrs, i); -+ if (!_pango_color_equal (&cur_attr.fore, &attr.fore) || -+ !_pango_color_equal (&cur_attr.back, &attr.back) || -+ cur_attr.underline != attr.underline || -+ cur_attr.strikethrough != attr.strikethrough) { -+ end = i - 1; -+ break; -+ } -+ } -+ -+ range.start = start; -+ range.length = end - start; -+ -+ if (range.length == 0) -+ return FALSE; -+ -+ if (attr.underline) { -+ attrs[n_attrs].name = "underline"; -+ attrs[n_attrs].value = "true"; -+ n_attrs++; -+ } -+ -+ if (attr.strikethrough) { -+ attrs[n_attrs].name = "strikethrough"; -+ attrs[n_attrs].value = "true"; -+ n_attrs++; -+ } -+ -+ g_snprintf (fg_color, sizeof fg_color, "%u,%u,%u", -+ attr.fore.red, attr.fore.green, attr.fore.blue); -+ attrs[n_attrs].name = "fg-color"; -+ attrs[n_attrs].value = fg_color; -+ n_attrs++; -+ -+ g_snprintf (bg_color, sizeof bg_color, "%u,%u,%u", -+ attr.back.red, attr.back.green, attr.back.blue); -+ attrs[n_attrs].name = "bg-color"; -+ attrs[n_attrs].value = bg_color; -+ n_attrs++; -+ -+ *attribute_names = g_new0 (char *, n_attrs + 1); -+ *attribute_values = g_new0 (char *, n_attrs + 1); -+ *n_ranges = 1; -+ *ranges = (GtkAccessibleTextRange *)g_memdup2 (&range, sizeof range); -+ -+ for (i = 0; i < n_attrs; i++) { -+ (*attribute_names)[i] = g_strdup (attrs[i].name); -+ (*attribute_values)[i] = g_strdup (attrs[i].value); -+ } -+ -+ return TRUE; -+} -+ -+void -+_vte_accessible_text_iface_init (GtkAccessibleTextInterface *iface) -+{ -+ iface->get_attributes = vte_accessible_text_get_attributes; -+ iface->get_caret_position = vte_accessible_text_get_caret_position; -+ iface->get_contents = vte_accessible_text_get_contents; -+ iface->get_contents_at = vte_accessible_text_get_contents_at; -+ iface->get_selection = vte_accessible_text_get_selection; -+} -+ -+static void -+vte_accessible_text_contents_changed (VteTerminal *terminal, -+ VteAccessibleText *state) -+{ -+ VteAccessibleTextContents *next = nullptr; -+ VteAccessibleTextContents *prev = nullptr; -+ const char *nextstr; -+ const char *prevstr; -+ gsize prevlen; -+ gsize nextlen; -+ -+ g_assert (VTE_IS_TERMINAL (terminal)); -+ g_assert (state != nullptr); -+ g_assert (state->terminal == terminal); -+ -+ if (!vte_terminal_get_enable_a11y (terminal)) -+ return; -+ -+ prev = &state->contents[state->contents_flip]; -+ next = &state->contents[!state->contents_flip]; -+ -+ /* Get a new snapshot of contents so that we can compare this to the -+ * previous contents. That way we can discover if it was a backspace -+ * that occurred or if it's more than that. -+ * -+ * We do not filp state->contents_flip immediately so that we can -+ * allow the AT context the ability to access the current contents -+ * on DELETE operations. -+ */ -+ vte_accessible_text_contents_reset (next); -+ vte_accessible_text_contents_snapshot (next, state->terminal); -+ -+ nextstr = vte_accessible_text_contents_get_string (next, &nextlen); -+ prevstr = vte_accessible_text_contents_get_string (prev, &prevlen); -+ -+ vte_assert_cmpint (char_positions_get_size (&prev->characters), ==, prev->n_chars); -+ vte_assert_cmpint (char_positions_get_size (&next->characters), ==, next->n_chars); -+ -+ /* NOTE: -+ * -+ * The code below is based upon what vteaccess.cc did for GTK 3. -+ * It does not do any sort of appropriate diffing to try to handle -+ * scrolling correctly. That would be a good idea to implement in -+ * the longer term. -+ * -+ * It just looks for a long prefix match, and then a long suffix -+ * match and attempts to diff what is between those to end points. -+ */ -+ -+ const char *prevc = prevstr; -+ const char *nextc = nextstr; -+ gsize offset = 0; -+ -+ /* Find the beginning of changes */ -+ while ((offset < prev->n_chars) && (offset < next->n_chars)) { -+ gunichar prevch = g_utf8_get_char (prevc); -+ gunichar nextch = g_utf8_get_char (nextc); -+ -+ if (prevch != nextch) { -+ break; -+ } -+ -+ offset++; -+ -+ prevc = g_utf8_next_char (prevc); -+ nextc = g_utf8_next_char (nextc); -+ } -+ -+ /* Find the end of changes */ -+ gsize next_end = next->n_chars; -+ gsize prev_end = prev->n_chars; -+ -+ prevc = prevstr + prevlen; -+ nextc = nextstr + nextlen; -+ -+ while ((next_end > offset) && (prev_end > offset)) { -+ prevc = g_utf8_prev_char (prevc); -+ nextc = g_utf8_prev_char (nextc); -+ -+ gunichar prevch = g_utf8_get_char (prevc); -+ gunichar nextch = g_utf8_get_char (nextc); -+ -+ if (prevch != nextch) { -+ break; -+ } -+ -+ next_end--; -+ prev_end--; -+ } -+ -+ if (offset < prev_end) { -+ gtk_accessible_text_update_contents (GTK_ACCESSIBLE_TEXT (terminal), -+ GTK_ACCESSIBLE_TEXT_CONTENT_CHANGE_REMOVE, -+ offset, prev_end); -+ } -+ -+ state->contents_flip = !state->contents_flip; -+ -+ if (offset < next_end) { -+ gtk_accessible_text_update_contents (GTK_ACCESSIBLE_TEXT (terminal), -+ GTK_ACCESSIBLE_TEXT_CONTENT_CHANGE_INSERT, -+ offset, next_end); -+ } -+ -+ if (prev->caret != next->caret) { -+ gtk_accessible_text_update_caret_position (GTK_ACCESSIBLE_TEXT (terminal)); -+ } -+} -+ -+static void -+vte_accessible_text_cursor_moved (VteTerminal *terminal, -+ VteAccessibleText *state) -+{ -+ VteAccessibleTextContents *contents = nullptr; -+ -+ g_assert (VTE_IS_TERMINAL (terminal)); -+ g_assert (state != nullptr); -+ g_assert (state->terminal == terminal); -+ -+ if (!vte_terminal_get_enable_a11y (terminal)) -+ return; -+ -+ contents = &state->contents[state->contents_flip]; -+ -+ long ccol, crow; -+ vte_terminal_get_cursor_position (terminal, &ccol, &crow); -+ if (ccol == contents->cached_caret_column && crow == contents->cached_caret_row) { -+ return; -+ } -+ -+ _vte_debug_print (VTE_DEBUG_ALLY, "Cursor at (%ld, " "%ld).\n", ccol, crow); -+ -+ contents->cached_caret_column = ccol; -+ contents->cached_caret_row = crow; -+ contents->caret = vte_accessible_text_contents_find_caret (contents, ccol, crow); -+ -+ gtk_accessible_text_update_caret_position (GTK_ACCESSIBLE_TEXT (terminal)); -+} -+ -+static void -+vte_accessible_text_window_title_changed (VteTerminal *terminal, -+ VteAccessibleText *state) -+{ -+ const char *window_title; -+ -+ g_assert (VTE_IS_TERMINAL (terminal)); -+ g_assert (state != nullptr); -+ g_assert (state->terminal == terminal); -+ -+ if (!vte_terminal_get_enable_a11y (terminal)) -+ return; -+ -+ window_title = vte_terminal_get_window_title (terminal); -+ -+ gtk_accessible_update_property (GTK_ACCESSIBLE (terminal), -+ GTK_ACCESSIBLE_PROPERTY_DESCRIPTION, window_title ? window_title : "", -+ GTK_ACCESSIBLE_VALUE_UNDEFINED); -+} -+ -+static void -+vte_accessible_text_selection_changed (VteTerminal *terminal, -+ VteAccessibleText *state) -+{ -+ g_assert (VTE_IS_TERMINAL (terminal)); -+ g_assert (state != nullptr); -+ g_assert (state->terminal == terminal); -+ -+ if (!vte_terminal_get_enable_a11y (terminal)) -+ return; -+ -+ gtk_accessible_text_update_caret_position (GTK_ACCESSIBLE_TEXT (terminal)); -+ gtk_accessible_text_update_selection_bound (GTK_ACCESSIBLE_TEXT (terminal)); -+} -+ -+void -+_vte_accessible_text_init (GtkAccessibleText *accessible) -+{ -+ VteTerminal *terminal = VTE_TERMINAL (accessible); -+ VteAccessibleText *state; -+ -+ state = g_new0 (VteAccessibleText, 1); -+ state->terminal = terminal; -+ -+ vte_accessible_text_contents_init (&state->contents[0]); -+ vte_accessible_text_contents_init (&state->contents[1]); -+ -+ g_object_set_data_full (G_OBJECT (terminal), -+ "VTE_ACCESSIBLE_TEXT", -+ state, -+ (GDestroyNotify)vte_accessible_text_free); -+ -+ g_signal_connect (terminal, -+ "contents-changed", -+ G_CALLBACK (vte_accessible_text_contents_changed), -+ state); -+ g_signal_connect (terminal, -+ "cursor-moved", -+ G_CALLBACK (vte_accessible_text_cursor_moved), -+ state); -+ g_signal_connect (terminal, -+ "selection-changed", -+ G_CALLBACK (vte_accessible_text_selection_changed), -+ state); -+ g_signal_connect (terminal, -+ "window-title-changed", -+ G_CALLBACK (vte_accessible_text_window_title_changed), -+ state); -+ -+ const char *window_title = vte_terminal_get_window_title (terminal); -+ -+ gtk_accessible_update_property (GTK_ACCESSIBLE (accessible), -+ GTK_ACCESSIBLE_PROPERTY_DESCRIPTION, window_title ? window_title : "", -+ GTK_ACCESSIBLE_PROPERTY_HAS_POPUP, TRUE, -+ GTK_ACCESSIBLE_PROPERTY_LABEL, "Terminal", -+ GTK_ACCESSIBLE_PROPERTY_MULTI_LINE, TRUE, -+ GTK_ACCESSIBLE_VALUE_UNDEFINED); -+} -diff --git a/src/vteaccess-gtk4.h b/src/vteaccess-gtk4.h -new file mode 100644 -index 00000000..37b09c7b ---- /dev/null -+++ b/src/vteaccess-gtk4.h -@@ -0,0 +1,25 @@ -+/* -+ * Copyright © 2024 Christian Hergert -+ * -+ * This library is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU Lesser General Public License as published -+ * by the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public License -+ * along with this library. If not, see . -+ */ -+ -+#include -+ -+G_BEGIN_DECLS -+ -+void _vte_accessible_text_iface_init (GtkAccessibleTextInterface *iface); -+void _vte_accessible_text_init (GtkAccessibleText *accessible); -+ -+G_END_DECLS -diff --git a/src/vteaccess.cc b/src/vteaccess.cc -index fff918dc..c1c1a4c0 100644 ---- a/src/vteaccess.cc -+++ b/src/vteaccess.cc -@@ -386,6 +386,12 @@ _vte_terminal_accessible_text_modified(VteTerminalAccessible* accessible) - glong offset, caret_offset, olen, clen; - gint old_snapshot_caret; - -+ auto widget = gtk_accessible_get_widget(GTK_ACCESSIBLE(accessible)); -+ auto terminal = VTE_TERMINAL(widget); -+ -+ if (!vte_terminal_get_enable_a11y (terminal)) -+ return; -+ - old_snapshot_caret = priv->snapshot_caret; - priv->snapshot_contents_invalid = TRUE; - vte_terminal_accessible_update_private_data_if_needed(accessible, -@@ -541,6 +547,9 @@ _vte_terminal_accessible_text_scrolled(VteTerminalAccessible* accessible, - auto widget = gtk_accessible_get_widget(GTK_ACCESSIBLE(accessible)); - auto terminal = VTE_TERMINAL(widget); - -+ if (!vte_terminal_get_enable_a11y (terminal)) -+ return; -+ - row_count = vte_terminal_get_row_count(terminal); - if (((howmuch < 0) && (howmuch <= -row_count)) || - ((howmuch > 0) && (howmuch >= row_count))) { -@@ -793,6 +802,9 @@ vte_terminal_accessible_invalidate_cursor(VteTerminal *terminal, gpointer data) - VteTerminalAccessible *accessible = (VteTerminalAccessible *)data; - VteTerminalAccessiblePrivate *priv = (VteTerminalAccessiblePrivate *)_vte_terminal_accessible_get_instance_private(accessible); - -+ if (!vte_terminal_get_enable_a11y (terminal)) -+ return; -+ - _vte_debug_print(VTE_DEBUG_ALLY, - "Invalidating accessibility cursor.\n"); - priv->snapshot_caret_invalid = TRUE; -@@ -807,6 +819,9 @@ vte_terminal_accessible_title_changed(VteTerminal *terminal, gpointer data) - { - VteTerminalAccessible *accessible = (VteTerminalAccessible *)data; - -+ if (!vte_terminal_get_enable_a11y (terminal)) -+ return; -+ - atk_object_set_description(ATK_OBJECT(accessible), vte_terminal_get_window_title(terminal)); - } - -@@ -820,6 +835,9 @@ vte_terminal_accessible_visibility_notify(VteTerminal *terminal, - GtkWidget *widget; - gboolean visible; - -+ if (!vte_terminal_get_enable_a11y (terminal)) -+ return FALSE; -+ - visible = event->state != GDK_VISIBILITY_FULLY_OBSCURED; - /* The VISIBLE state indicates that this widget is "visible". */ - atk_object_notify_state_change(ATK_OBJECT(accessible), -@@ -851,6 +869,9 @@ vte_terminal_accessible_selection_changed (VteTerminal *terminal, - { - VteTerminalAccessible *accessible = (VteTerminalAccessible *)data; - -+ if (!vte_terminal_get_enable_a11y (terminal)) -+ return; -+ - g_signal_emit_by_name (accessible, "text_selection_changed"); - } - -diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 92eb6881..082f3b95 100644 ---- a/src/vtegtk.cc -+++ b/src/vtegtk.cc -@@ -65,9 +65,11 @@ - #include - - #if WITH_A11Y --#if VTE_GTK == 3 --#include "vteaccess.h" --#endif /* VTE_GTK == 3 */ -+# if VTE_GTK == 3 -+# include "vteaccess.h" -+# elif VTE_GTK == 4 -+# include "vteaccess-gtk4.h" -+# endif - #endif /* WITH_A11Y */ - - #if WITH_ICU -@@ -155,6 +157,14 @@ private: - std::shared_ptr m_widget; - }; - -+#if defined(WITH_A11Y) && VTE_GTK == 4 -+# define VTE_IMPLEMENT_ACCESSIBLE \ -+ G_IMPLEMENT_INTERFACE(GTK_TYPE_ACCESSIBLE_TEXT, \ -+ _vte_accessible_text_iface_init) -+#else -+# define VTE_IMPLEMENT_ACCESSIBLE -+#endif -+ - #if VTE_DEBUG - G_DEFINE_TYPE_WITH_CODE(VteTerminal, vte_terminal, GTK_TYPE_WIDGET, - { -@@ -163,6 +173,7 @@ G_DEFINE_TYPE_WITH_CODE(VteTerminal, vte_terminal, GTK_TYPE_WIDGET, - } - g_type_add_class_private (g_define_type_id, sizeof (VteTerminalClassPrivate)); - G_IMPLEMENT_INTERFACE(GTK_TYPE_SCROLLABLE, nullptr) -+ VTE_IMPLEMENT_ACCESSIBLE - if (_vte_debug_on(VTE_DEBUG_LIFECYCLE)) { - g_printerr("vte_terminal_get_type()\n"); - }) -@@ -173,7 +184,8 @@ G_DEFINE_TYPE_WITH_CODE(VteTerminal, vte_terminal, GTK_TYPE_WIDGET, - g_type_add_instance_private(g_define_type_id, sizeof(VteTerminalPrivate)); - } - g_type_add_class_private (g_define_type_id, sizeof (VteTerminalClassPrivate)); -- G_IMPLEMENT_INTERFACE(GTK_TYPE_SCROLLABLE, nullptr)) -+ G_IMPLEMENT_INTERFACE(GTK_TYPE_SCROLLABLE, nullptr) -+ VTE_IMPLEMENT_ACCESSIBLE) - #endif - - static inline auto -@@ -901,6 +913,10 @@ try - gtk_widget_set_has_window(&terminal->widget, FALSE); - #endif - -+#if defined(WITH_A11Y) && VTE_GTK == 4 -+ _vte_accessible_text_init (GTK_ACCESSIBLE_TEXT (terminal)); -+#endif -+ - place = vte_terminal_get_instance_private(terminal); - new (place) VteTerminalPrivate{terminal}; - } -@@ -1011,6 +1027,9 @@ try - case PROP_DELETE_BINDING: - g_value_set_enum (value, widget->delete_binding()); - break; -+ case PROP_ENABLE_A11Y: -+ g_value_set_boolean (value, vte_terminal_get_enable_a11y (terminal)); -+ break; - case PROP_ENABLE_BIDI: - g_value_set_boolean (value, vte_terminal_get_enable_bidi (terminal)); - break; -@@ -1166,6 +1185,9 @@ try - case PROP_DELETE_BINDING: - vte_terminal_set_delete_binding (terminal, (VteEraseBinding)g_value_get_enum (value)); - break; -+ case PROP_ENABLE_A11Y: -+ vte_terminal_set_enable_a11y (terminal, g_value_get_boolean (value)); -+ break; - case PROP_ENABLE_BIDI: - vte_terminal_set_enable_bidi (terminal, g_value_get_boolean (value)); - break; -@@ -2226,6 +2248,22 @@ vte_terminal_class_init(VteTerminalClass *klass) - VTE_ERASE_AUTO, - (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); - -+ /** -+ * VteTerminal:enable-a11y: -+ * -+ * Controls whether or not a11y is enabled for the widget. -+ * -+ * Since: 0.78 -+ */ -+ pspecs[PROP_ENABLE_A11Y] = -+ g_param_spec_boolean ("enable-a11y", NULL, NULL, -+#if VTE_GTK == 3 -+ TRUE, -+#else -+ FALSE, -+#endif -+ (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); -+ - /** - * VteTerminal:enable-bidi: - * -@@ -2631,10 +2669,12 @@ vte_terminal_class_init(VteTerminalClass *klass) - err.assert_no_error(); - #endif - --#if VTE_GTK == 3 - #if WITH_A11Y -+#if VTE_GTK == 3 - /* a11y */ - gtk_widget_class_set_accessible_type(widget_class, VTE_TYPE_TERMINAL_ACCESSIBLE); -+#elif VTE_GTK == 4 -+ gtk_widget_class_set_accessible_role(widget_class, GTK_ACCESSIBLE_ROLE_TERMINAL); - #endif - #endif - } -@@ -5578,6 +5618,53 @@ catch (...) - vte::log_exception(); - } - -+/** -+ * vte_terminal_get_enable_a11y: -+ * @terminal: a #VteTerminal -+ * -+ * Checks whether the terminal communicates with a11y backends -+ * -+ * Returns: %TRUE if a11y is enabled, %FALSE if not -+ * -+ * Since: 0.78 -+ */ -+gboolean -+vte_terminal_get_enable_a11y(VteTerminal *terminal) noexcept -+try -+{ -+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), false); -+ return IMPL(terminal)->m_enable_a11y; -+} -+catch (...) -+{ -+ vte::log_exception(); -+ return false; -+} -+ -+/** -+ * vte_terminal_set_enable_a11y: -+ * @terminal: a #VteTerminal -+ * @enable_a11y: %TRUE to enable a11y support -+ * -+ * Controls whether or not the terminal will communicate with a11y backends. -+ * -+ * Since: 0.78 -+ */ -+void -+vte_terminal_set_enable_a11y(VteTerminal *terminal, -+ gboolean enable_a11y) noexcept -+try -+{ -+ g_return_if_fail(VTE_IS_TERMINAL(terminal)); -+ -+ if (IMPL(terminal)->set_enable_a11y(enable_a11y != FALSE)) -+ g_object_notify_by_pspec(G_OBJECT(terminal), pspecs[PROP_ENABLE_A11Y]); -+} -+catch (...) -+{ -+ vte::log_exception(); -+} -+ - /** - * vte_terminal_get_enable_bidi: - * @terminal: a #VteTerminal -diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 1d1383af..a73957a0 100644 ---- a/src/vtegtk.hh -+++ b/src/vtegtk.hh -@@ -75,6 +75,7 @@ enum { - PROP_CURRENT_DIRECTORY_URI, - PROP_CURRENT_FILE_URI, - PROP_DELETE_BINDING, -+ PROP_ENABLE_A11Y, - PROP_ENABLE_BIDI, - PROP_ENABLE_FALLBACK_SCROLLING, - PROP_ENABLE_SHAPING, -diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index ed57ad16..4f8ade65 100644 ---- a/src/vteinternal.hh -+++ b/src/vteinternal.hh -@@ -776,6 +776,13 @@ public: - const char *m_hyperlink_hover_uri; /* data is owned by the ring */ - long m_hyperlink_auto_id{0}; - -+ /* Accessibility support */ -+#if VTE_GTK == 3 -+ bool m_enable_a11y{true}; -+#elif VTE_GTK == 4 -+ bool m_enable_a11y{false}; -+#endif -+ - /* RingView and friends */ - vte::base::RingView m_ringview; - bool m_enable_bidi{true}; -@@ -1505,6 +1512,7 @@ public: - bool set_cursor_style(CursorStyle style); - bool set_delete_binding(EraseMode binding); - auto delete_binding() const noexcept { return m_delete_binding; } -+ bool set_enable_a11y(bool setting); - bool set_enable_bidi(bool setting); - bool set_enable_shaping(bool setting); - bool set_encoding(char const* codeset, --- -2.44.0 - - -From 64ea71aef8878971fbca1c5f97b38be77a848eeb Mon Sep 17 00:00:00 2001 -From: Debarshi Ray -Date: Wed, 7 Jan 2015 16:01:00 +0100 -Subject: [PATCH 02/12] Add sequences and signals for desktop notification - -Add sequences - OSC 777 ; notify ; SUMMARY ; BODY BEL - OSC 777 ; notify ; SUMMARY BEL - OSC 777 ; notify ; SUMMARY ; BODY ST - OSC 777 ; notify ; SUMMARY ST - -that let terminal applications send a notification to the desktop -environment. - -Based on Enlightenment's Terminology: -https://phab.enlightenment.org/T1765 - -https://bugzilla.gnome.org/show_bug.cgi?id=711059 ---- - src/marshal.list | 1 + - src/vte.cc | 10 ++++++++++ - src/vte/vteterminal.h | 4 +++- - src/vtegtk.cc | 25 +++++++++++++++++++++++++ - src/vtegtk.hh | 3 +++ - src/vteinternal.hh | 14 ++++++++++++++ - src/vteseq.cc | 37 +++++++++++++++++++++++++++++++++++++ - 7 files changed, 93 insertions(+), 1 deletion(-) - -diff --git a/src/marshal.list b/src/marshal.list -index 241128c3..4412cf3d 100644 ---- a/src/marshal.list -+++ b/src/marshal.list -@@ -1,3 +1,4 @@ - VOID:STRING,BOXED -+VOID:STRING,STRING - VOID:STRING,UINT - VOID:UINT,UINT -diff --git a/src/vte.cc b/src/vte.cc -index 6f5ed505..dd24a147 100644 ---- a/src/vte.cc -+++ b/src/vte.cc -@@ -10784,6 +10784,16 @@ Terminal::emit_pending_signals() - - emit_adjustment_changed(); - -+#if _VTE_GTK == 3 -+ 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()); -+ } -+#endif -+ - 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 33360909..36a32881 100644 ---- a/src/vte/vteterminal.h -+++ b/src/vte/vteterminal.h -@@ -114,9 +114,11 @@ struct _VteTerminalClass { - void (*bell)(VteTerminal* terminal); - - #if _VTE_GTK == 3 -+ void (*notification_received)(VteTerminal* terminal, const gchar *summary, const gchar *body); -+ - /* Compatibility padding due to fedora patches intruding on our ABI */ - /*< private >*/ -- gpointer _extra_padding[3]; -+ gpointer _extra_padding[2]; - #endif /* _VTE_GTK == 3 */ - - void (*setup_context_menu)(VteTerminal* terminal, -diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 082f3b95..e253a379 100644 ---- a/src/vtegtk.cc -+++ b/src/vtegtk.cc -@@ -1373,6 +1373,9 @@ vte_terminal_class_init(VteTerminalClass *klass) - klass->child_exited = NULL; - klass->encoding_changed = NULL; - klass->char_size_changed = NULL; -+#if _VTE_GTK == 3 -+ klass->notification_received = NULL; -+#endif - klass->window_title_changed = NULL; - klass->icon_title_changed = NULL; - klass->selection_changed = NULL; -@@ -1456,6 +1459,28 @@ vte_terminal_class_init(VteTerminalClass *klass) - G_OBJECT_CLASS_TYPE(klass), - g_cclosure_marshal_VOID__INTv); - -+#if _VTE_GTK == 3 -+ /** -+ * VteTerminal::notification-received: -+ * @vteterminal: the object which received the signal -+ * @summary: The summary -+ * @body: (allow-none): Extra optional text -+ * -+ * Emitted when a process running in the terminal wants to -+ * send a notification to the desktop environment. -+ */ -+ signals[SIGNAL_NOTIFICATION_RECEIVED] = -+ g_signal_new(I_("notification-received"), -+ G_OBJECT_CLASS_TYPE(klass), -+ G_SIGNAL_RUN_LAST, -+ G_STRUCT_OFFSET(VteTerminalClass, notification_received), -+ NULL, -+ NULL, -+ _vte_marshal_VOID__STRING_STRING, -+ G_TYPE_NONE, -+ 2, G_TYPE_STRING, G_TYPE_STRING); -+#endif -+ - /** - * VteTerminal::window-title-changed: - * @vteterminal: the object which received the signal -diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index a73957a0..bd49ed9b 100644 ---- a/src/vtegtk.hh -+++ b/src/vtegtk.hh -@@ -53,6 +53,9 @@ enum { - SIGNAL_RESTORE_WINDOW, - SIGNAL_SELECTION_CHANGED, - SIGNAL_SETUP_CONTEXT_MENU, -+#if _VTE_GTK == 3 -+ SIGNAL_NOTIFICATION_RECEIVED, -+#endif - SIGNAL_WINDOW_TITLE_CHANGED, - LAST_SIGNAL - }; -diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 4f8ade65..d7c82654 100644 ---- a/src/vteinternal.hh -+++ b/src/vteinternal.hh -@@ -710,6 +710,12 @@ public: - gboolean m_cursor_moved_pending; - gboolean m_contents_changed_pending; - -+#if _VTE_GTK == 3 -+ /* desktop notification */ -+ std::string m_notification_summary; -+ std::string m_notification_body; -+#endif -+ - std::string m_window_title{}; - std::string m_current_directory_uri{}; - std::string m_current_file_uri{}; -@@ -723,6 +729,9 @@ public: - TITLE = 1u << 0, - CWD = 1u << 1, - CWF = 1u << 2, -+#if _VTE_GTK == 3 -+ NOTIFICATION = 1u << 3, -+#endif - }; - unsigned m_pending_changes{0}; - -@@ -1662,6 +1671,11 @@ public: - int osc) noexcept; - - /* OSC handlers */ -+#if _VTE_GTK == 3 -+ void handle_urxvt_extension(vte::parser::Sequence const& seq, -+ vte::parser::StringTokeniser::const_iterator& token, -+ vte::parser::StringTokeniser::const_iterator const& endtoken) noexcept; -+#endif - void set_color(vte::parser::Sequence const& seq, - vte::parser::StringTokeniser::const_iterator& token, - vte::parser::StringTokeniser::const_iterator const& endtoken, -diff --git a/src/vteseq.cc b/src/vteseq.cc -index 904837e1..7702c477 100644 ---- a/src/vteseq.cc -+++ b/src/vteseq.cc -@@ -1276,6 +1276,35 @@ Terminal::erase_in_line(vte::parser::Sequence const& seq) - m_text_deleted_flag = TRUE; - } - -+#if _VTE_GTK == 3 -+void -+Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, -+ vte::parser::StringTokeniser::const_iterator& token, -+ vte::parser::StringTokeniser::const_iterator const& endtoken) noexcept -+{ -+ if (token == endtoken) -+ return; -+ -+ if (*token == "notify") { -+ ++token; -+ -+ if (token == endtoken) -+ return; -+ -+ m_notification_summary = *token; -+ m_notification_body.clear(); -+ m_pending_changes |= vte::to_integral(PendingChanges::NOTIFICATION); -+ ++token; -+ -+ if (token == endtoken) -+ return; -+ -+ m_notification_body = *token; -+ return; -+ } -+} -+#endif -+ - bool - Terminal::get_osc_color_index(int osc, - int value, -@@ -6596,6 +6625,12 @@ Terminal::OSC(vte::parser::Sequence const& seq) - reset_color(VTE_HIGHLIGHT_FG, VTE_COLOR_SOURCE_ESCAPE); - break; - -+#if _VTE_GTK == 3 -+ case VTE_OSC_URXVT_EXTENSION: -+ handle_urxvt_extension(seq, it, cend); -+ break; -+#endif -+ - case VTE_OSC_XTERM_SET_ICON_TITLE: - case VTE_OSC_XTERM_SET_XPROPERTY: - case VTE_OSC_XTERM_SET_COLOR_MOUSE_CURSOR_FG: -@@ -6636,7 +6671,9 @@ 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: -+#if _VTE_GTK != 3 - case VTE_OSC_URXVT_EXTENSION: -+#endif - case VTE_OSC_YF_RQGWR: - default: - break; --- -2.44.0 - - -From d129d56171c4059a8622a63e7a27ee9306590377 Mon Sep 17 00:00:00 2001 -From: Debarshi Ray -Date: Thu, 29 Jan 2015 13:09:17 +0100 -Subject: [PATCH 03/12] 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 -singles fixes it. - -https://bugzilla.gnome.org/show_bug.cgi?id=711059 ---- - src/vte.sh.in | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/src/vte.sh.in b/src/vte.sh.in -index 2328a9ec..157bd29c 100644 ---- a/src/vte.sh.in -+++ b/src/vte.sh.in -@@ -33,10 +33,12 @@ __vte_osc7 () { - } - - __vte_prompt_command() { -+ local command=$(HISTTIMEFORMAT= history 1 | sed 's/^ *[0-9]\+ *//') -+ command="${command//;/ }" - local pwd='~' - [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} - pwd="${pwd//[[:cntrl:]]}" -- printf "\033]0;%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${pwd}" -+ printf '\033]777;notify;Command completed;%s\033\\\033]0;%s@%s:%s\033\\' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" - __vte_osc7 - } - --- -2.44.0 - - -From da46de7cb882f7682d3605f374730ddccd9dfa0d Mon Sep 17 00:00:00 2001 -From: Debarshi Ray -Date: Thu, 22 Jan 2015 16:37:10 +0100 -Subject: [PATCH 04/12] Test the notification-received signal - ---- - src/app/app.cc | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git a/src/app/app.cc b/src/app/app.cc -index e4e7b978..875022e9 100644 ---- a/src/app/app.cc -+++ b/src/app/app.cc -@@ -2943,6 +2943,14 @@ window_window_title_changed_cb(VteTerminal* terminal, - gtk_window_set_title(GTK_WINDOW(window), title && title[0] ? title : "Terminal"); - } - -+static void -+notification_received_cb(VteTerminal *terminal, -+ const gchar *summary, -+ const gchar *body) -+{ -+ g_print("[%s]: %s\n", summary, body); -+} -+ - static void - window_lower_window_cb(VteTerminal* terminal, - VteappWindow* window) -@@ -3234,8 +3242,9 @@ vteapp_window_constructed(GObject *object) - if (options.object_notifications) - g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); - -- /* Settings */ - #if VTE_GTK == 3 -+ g_signal_connect(window->terminal, "notification-received", G_CALLBACK(notification_received_cb), NULL); -+ - if (!options.double_buffer) { - G_GNUC_BEGIN_IGNORE_DEPRECATIONS; - gtk_widget_set_double_buffered(GTK_WIDGET(window->terminal), false); --- -2.44.0 - - -From 6a61519759cc00a7e8e2469eb4bebcfe39307215 Mon Sep 17 00:00:00 2001 -From: Debarshi Ray -Date: Fri, 13 May 2016 17:53:54 +0200 -Subject: [PATCH 05/12] 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. - -https://bugzilla.redhat.com/show_bug.cgi?id=1103380 ---- - src/vte.cc | 25 ++++++++++++++++++ - src/vte/vteterminal.h | 6 +++++ - src/vtegtk.cc | 59 +++++++++++++++++++++++++++++++++++++++++++ - src/vtegtk.hh | 3 +++ - src/vteinternal.hh | 6 +++++ - 5 files changed, 99 insertions(+) - -diff --git a/src/vte.cc b/src/vte.cc -index dd24a147..24deaead 100644 ---- a/src/vte.cc -+++ b/src/vte.cc -@@ -10033,6 +10033,9 @@ vte_cairo_get_clip_region(cairo_t *cr) - bool - Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) - { -+#if _VTE_GTK == 3 -+ gdouble scroll_speed; -+#endif - gdouble v; - gint cnt, i; - int button; -@@ -10068,7 +10071,17 @@ Terminal::widget_mouse_scroll(vte::platform::ScrollEvent const& event) - return true; - } - -+#if _VTE_GTK == 3 -+ if (m_scroll_speed == 0) { -+ scroll_speed = ceil (m_row_count /* page increment */ / 10.); -+ } else { -+ scroll_speed = m_scroll_speed; -+ } -+ -+ v = MAX (1., scroll_speed); -+#else - v = MAX (1., ceil (m_row_count /* page increment */ / 10.)); -+#endif - _vte_debug_print(VTE_DEBUG_EVENTS, - "Scroll speed is %d lines per non-smooth scroll unit\n", - (int) v); -@@ -10399,6 +10412,18 @@ Terminal::decscusr_cursor_shape() const noexcept - } - } - -+#if _VTE_GTK == 3 -+bool -+Terminal::set_scroll_speed(unsigned int scroll_speed) -+{ -+ if (scroll_speed == m_scroll_speed) -+ return false; -+ -+ m_scroll_speed = scroll_speed; -+ return true; -+} -+#endif -+ - bool - Terminal::set_scrollback_lines(long lines) - { -diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 36a32881..ec56a0ce 100644 ---- a/src/vte/vteterminal.h -+++ b/src/vte/vteterminal.h -@@ -343,6 +343,12 @@ 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); - -+#if _VTE_GTK == 3 -+_VTE_PUBLIC -+void vte_terminal_set_scroll_speed(VteTerminal *terminal, -+ guint scroll_speed) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); -+#endif -+ - /* Set the number of scrollback lines, above or at an internal minimum. */ - _VTE_PUBLIC - void vte_terminal_set_scrollback_lines(VteTerminal *terminal, -diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index e253a379..a22a7049 100644 ---- a/src/vtegtk.cc -+++ b/src/vtegtk.cc -@@ -1072,6 +1072,11 @@ try - case PROP_REWRAP_ON_RESIZE: - g_value_set_boolean (value, vte_terminal_get_rewrap_on_resize (terminal)); - break; -+#if _VTE_GTK == 3 -+ case PROP_SCROLL_SPEED: -+ g_value_set_uint (value, impl->m_scroll_speed); -+ break; -+#endif - case PROP_SCROLLBACK_LINES: - g_value_set_uint (value, vte_terminal_get_scrollback_lines(terminal)); - break; -@@ -1225,6 +1230,11 @@ try - case PROP_REWRAP_ON_RESIZE: - vte_terminal_set_rewrap_on_resize (terminal, g_value_get_boolean (value)); - break; -+#if _VTE_GTK == 3 -+ case PROP_SCROLL_SPEED: -+ vte_terminal_set_scroll_speed (terminal, g_value_get_uint (value)); -+ break; -+#endif - case PROP_SCROLLBACK_LINES: - vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value)); - break; -@@ -2444,6 +2454,23 @@ vte_terminal_class_init(VteTerminalClass *klass) - TRUE, - (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); - -+#if _VTE_GTK == 3 -+ /** -+ * VteTerminal:scroll-speed: -+ * -+ * The number of lines by which the buffer is moved when -+ * scrolling with a mouse wheel on top of the terminal -+ * Setting it to zero will cause the buffer to be moved by an -+ * amount depending on the number of visible rows the widget -+ * can display. -+ */ -+ pspecs[PROP_SCROLL_SPEED] = -+ g_param_spec_uint ("scroll-speed", NULL, NULL, -+ 0, G_MAXUINT, -+ 0, -+ (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); -+#endif -+ - /** - * VteTerminal:scrollback-lines: - * -@@ -6503,6 +6530,38 @@ catch (...) - return -1; - } - -+#if _VTE_GTK == 3 -+/** -+ * vte_terminal_set_scroll_speed: -+ * @terminal: a #VteTerminal -+ * @scroll_speed: move the buffer by this number of lines while scrolling -+ * -+ * Sets the number of lines by which the buffer is moved when -+ * scrolling with a mouse wheel. Setting it to zero will cause the -+ * buffer to be moved by an amount depending on the number of visible -+ * rows the widget can display. -+ */ -+void -+vte_terminal_set_scroll_speed(VteTerminal *terminal, -+ guint scroll_speed) noexcept -+try -+{ -+ g_return_if_fail(VTE_IS_TERMINAL(terminal)); -+ -+ GObject *object = G_OBJECT(terminal); -+ g_object_freeze_notify(object); -+ -+ if (IMPL(terminal)->set_scroll_speed(scroll_speed)) -+ g_object_notify_by_pspec(object, pspecs[PROP_SCROLL_SPEED]); -+ -+ g_object_thaw_notify(object); -+} -+catch (...) -+{ -+ vte::log_exception(); -+} -+#endif -+ - /** - * vte_terminal_set_scrollback_lines: - * @terminal: a #VteTerminal -diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index bd49ed9b..125c109d 100644 ---- a/src/vtegtk.hh -+++ b/src/vtegtk.hh -@@ -93,6 +93,9 @@ enum { - PROP_MOUSE_POINTER_AUTOHIDE, - PROP_PTY, - PROP_REWRAP_ON_RESIZE, -+#if _VTE_GTK == 3 -+ PROP_SCROLL_SPEED, -+#endif - PROP_SCROLLBACK_LINES, - PROP_SCROLL_ON_INSERT, - PROP_SCROLL_ON_KEYSTROKE, -diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index d7c82654..53737f65 100644 ---- a/src/vteinternal.hh -+++ b/src/vteinternal.hh -@@ -471,6 +471,9 @@ public: - bool m_scroll_on_insert{false}; - bool m_scroll_on_output{false}; - bool m_scroll_on_keystroke{true}; -+#if _VTE_GTK == 3 -+ guint m_scroll_speed; -+#endif - vte::grid::row_t m_scrollback_lines{0}; - - inline auto scroll_limit_lower() const noexcept -@@ -1534,6 +1537,9 @@ public: - bool set_input_enabled(bool enabled); - bool set_mouse_autohide(bool autohide); - bool set_rewrap_on_resize(bool rewrap); -+#if _VTE_GTK == 3 -+ bool set_scroll_speed(unsigned int scroll_speed); -+#endif - bool set_scrollback_lines(long lines); - bool set_fallback_scrolling(bool set); - auto fallback_scrolling() const noexcept { return m_fallback_scrolling; } --- -2.44.0 - - -From a3a76d2dcd4f48dbe4c19c653dbd647d2c9d4e4d Mon Sep 17 00:00:00 2001 -From: Debarshi Ray -Date: Fri, 13 May 2016 17:54:57 +0200 -Subject: [PATCH 06/12] Test the scroll-speed property - -https://bugzilla.redhat.com/show_bug.cgi?id=1103380 ---- - src/app/app.cc | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/src/app/app.cc b/src/app/app.cc -index 875022e9..f1b96a33 100644 ---- a/src/app/app.cc -+++ b/src/app/app.cc -@@ -135,6 +135,9 @@ public: - int verbosity{0}; - double cell_height_scale{1.0}; - double cell_width_scale{1.0}; -+#if _VTE_GTK == 3 -+ unsigned int scroll_speed{0}; -+#endif - VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM}; - VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK}; - VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS}; -@@ -1309,6 +1312,12 @@ public: - "Enable the setting of the icon title", nullptr }, - { "output-file", 0, 0, G_OPTION_ARG_FILENAME, &output_filename, - "Save terminal contents to file at exit", nullptr }, -+#if _VTE_GTK == 3 -+ { "scroll-speed", 0, 0, G_OPTION_ARG_INT, &scroll_speed, -+ "Specify the scroll speed", nullptr }, -+#endif -+ { "scroll-unit-is-pixels", 0, 0, G_OPTION_ARG_NONE, &scroll_unit_is_pixels, -+ "Use pixels as scroll unit", nullptr }, - { "scrollback-lines", 'n', 0, G_OPTION_ARG_INT, &scrollback_lines, - "Specify the number of scrollback-lines (-1 for infinite)", nullptr }, - { "title", 0, 0, G_OPTION_ARG_STRING, &title, "Set the initial title of the window", "TITLE" }, -@@ -3279,6 +3288,9 @@ vteapp_window_constructed(GObject *object) - vte_terminal_set_scroll_on_insert(window->terminal, options.scroll_on_insert); - vte_terminal_set_scroll_on_output(window->terminal, options.scroll_on_output); - vte_terminal_set_scroll_on_keystroke(window->terminal, options.scroll_on_keystroke); -+#if _VTE_GTK == 3 -+ vte_terminal_set_scroll_speed(window->terminal, options.scroll_speed); -+#endif - vte_terminal_set_scroll_unit_is_pixels(window->terminal, options.scroll_unit_is_pixels); - vte_terminal_set_scrollback_lines(window->terminal, options.scrollback_lines); - vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); --- -2.44.0 - - -From 43dae28d61af42ccaa92854eaa64d5ba7d6d466d Mon Sep 17 00:00:00 2001 -From: Debarshi Ray -Date: Wed, 7 Jan 2015 16:01:00 +0100 -Subject: [PATCH 07/12] Support preexec notifications from an interactive shell - -Add sequences - OSC 777 ; preexec BEL - OSC 777 ; preexec ST - -that can be used from an interactive shell's preexec hook to notify -the terminal emulator that a new command is about to be executed. -Examples of such hooks are Bash's PS0 and Zsh's preexec. - -The OSC 777 escape sequence is taken from Enlightenment's Terminology: -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 | 6 ++++++ - src/vte.sh.in | 4 ++-- - src/vte/vteterminal.h | 3 ++- - src/vtegtk.cc | 18 ++++++++++++++++++ - src/vtegtk.hh | 1 + - src/vteinternal.hh | 1 + - src/vteseq.cc | 4 ++++ - 7 files changed, 34 insertions(+), 3 deletions(-) - -diff --git a/src/vte.cc b/src/vte.cc -index 24deaead..e9e51434 100644 ---- a/src/vte.cc -+++ b/src/vte.cc -@@ -10817,6 +10817,12 @@ Terminal::emit_pending_signals() - m_notification_summary.c_str(), - m_notification_body.c_str()); - } -+ -+ 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); -+ } - #endif - - if (m_pending_changes & vte::to_integral(PendingChanges::TITLE)) { -diff --git a/src/vte.sh.in b/src/vte.sh.in -index 157bd29c..ffc0942a 100644 ---- a/src/vte.sh.in -+++ b/src/vte.sh.in -@@ -51,9 +51,9 @@ if [[ -n "${BASH_VERSION:-}" ]]; then - # use the __vte_prompt_command function which also sets the title. - - if [[ "$(declare -p PROMPT_COMMAND 2>&1)" =~ "declare -a" ]]; then -- PROMPT_COMMAND+=(__vte_osc7) -+ PROMPT_COMMAND+=(__vte_osc7) && PS0=$(printf "\033]777;preexec\033\\") - else -- PROMPT_COMMAND="__vte_prompt_command" -+ PROMPT_COMMAND="__vte_prompt_command" && PS0=$(printf "\033]777;preexec\033\\") - fi - - # Shell integration -diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index ec56a0ce..efd8732b 100644 ---- a/src/vte/vteterminal.h -+++ b/src/vte/vteterminal.h -@@ -115,10 +115,11 @@ struct _VteTerminalClass { - - #if _VTE_GTK == 3 - void (*notification_received)(VteTerminal* terminal, const gchar *summary, const gchar *body); -+ void (*shell_preexec)(VteTerminal* terminal); - - /* Compatibility padding due to fedora patches intruding on our ABI */ - /*< private >*/ -- gpointer _extra_padding[2]; -+ gpointer _extra_padding[1]; - #endif /* _VTE_GTK == 3 */ - - void (*setup_context_menu)(VteTerminal* terminal, -diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index a22a7049..f8d971c1 100644 ---- a/src/vtegtk.cc -+++ b/src/vtegtk.cc -@@ -1385,6 +1385,7 @@ vte_terminal_class_init(VteTerminalClass *klass) - klass->char_size_changed = NULL; - #if _VTE_GTK == 3 - klass->notification_received = NULL; -+ klass->shell_preexec = NULL; - #endif - klass->window_title_changed = NULL; - klass->icon_title_changed = NULL; -@@ -1489,6 +1490,23 @@ vte_terminal_class_init(VteTerminalClass *klass) - _vte_marshal_VOID__STRING_STRING, - G_TYPE_NONE, - 2, G_TYPE_STRING, G_TYPE_STRING); -+ -+ /** -+ * VteTerminal::shell-preexec: -+ * @vteterminal: the object which received the signal -+ * -+ * Emitted when the interactive shell has read in a complete -+ * command and is about to execute it. -+ */ -+ signals[SIGNAL_SHELL_PREEXEC] = -+ g_signal_new(I_("shell-preexec"), -+ G_OBJECT_CLASS_TYPE(klass), -+ G_SIGNAL_RUN_LAST, -+ G_STRUCT_OFFSET(VteTerminalClass, shell_preexec), -+ NULL, -+ NULL, -+ g_cclosure_marshal_VOID__VOID, -+ G_TYPE_NONE, 0); - #endif - - /** -diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 125c109d..6252a2c8 100644 ---- a/src/vtegtk.hh -+++ b/src/vtegtk.hh -@@ -54,6 +54,7 @@ enum { - SIGNAL_SELECTION_CHANGED, - SIGNAL_SETUP_CONTEXT_MENU, - #if _VTE_GTK == 3 -+ SIGNAL_SHELL_PREEXEC, - SIGNAL_NOTIFICATION_RECEIVED, - #endif - SIGNAL_WINDOW_TITLE_CHANGED, -diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 53737f65..987aec0e 100644 ---- a/src/vteinternal.hh -+++ b/src/vteinternal.hh -@@ -734,6 +734,7 @@ public: - CWF = 1u << 2, - #if _VTE_GTK == 3 - NOTIFICATION = 1u << 3, -+ SHELL_PREEXEC = 1u << 4, - #endif - }; - unsigned m_pending_changes{0}; -diff --git a/src/vteseq.cc b/src/vteseq.cc -index 7702c477..17fb51f5 100644 ---- a/src/vteseq.cc -+++ b/src/vteseq.cc -@@ -1302,6 +1302,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, - m_notification_body = *token; - return; - } -+ -+ if (*token == "preexec") { -+ m_pending_changes |= vte::to_integral(PendingChanges::SHELL_PREEXEC); -+ } - } - #endif - --- -2.44.0 - - -From 1b4029e85ad578dc602fc23bc5be07cd1341cfd0 Mon Sep 17 00:00:00 2001 -From: Debarshi Ray -Date: Fri, 20 Apr 2018 18:21:53 +0200 -Subject: [PATCH 08/12] Test the shell-preexec signal - -https://bugzilla.gnome.org/show_bug.cgi?id=711059 -https://bugzilla.gnome.org/show_bug.cgi?id=711060 ---- - src/app/app.cc | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/src/app/app.cc b/src/app/app.cc -index f1b96a33..4ccff275 100644 ---- a/src/app/app.cc -+++ b/src/app/app.cc -@@ -2960,6 +2960,12 @@ notification_received_cb(VteTerminal *terminal, - g_print("[%s]: %s\n", summary, body); - } - -+static void -+shell_preexec_cb(VteTerminal *terminal) -+{ -+ g_print("[shell] executing command\n"); -+} -+ - static void - window_lower_window_cb(VteTerminal* terminal, - VteappWindow* window) -@@ -3253,6 +3259,7 @@ vteapp_window_constructed(GObject *object) - - #if VTE_GTK == 3 - g_signal_connect(window->terminal, "notification-received", G_CALLBACK(notification_received_cb), NULL); -+ g_signal_connect(window->terminal, "shell-preexec", G_CALLBACK(shell_preexec_cb), NULL); - - if (!options.double_buffer) { - G_GNUC_BEGIN_IGNORE_DEPRECATIONS; --- -2.44.0 - - -From 4e78d1bf97245c72aabe8bb971cadfd946c8cc17 Mon Sep 17 00:00:00 2001 -From: Debarshi Ray -Date: Wed, 2 May 2018 17:20:30 +0200 -Subject: [PATCH 09/12] Support precmd notifications from an interactive shell - -Add sequences - OSC 777 ; precmd BEL - OSC 777 ; precmd ST - -that can be used from an interactive shell's precmd hook to notify the -terminal emulator that a first level prompt is about to be shown. -Examples of such hooks are Bash's PROMPT_COMMAND and Zsh's precmd. - -The OSC 777 escape sequence is taken from Enlightenment's Terminology: -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 | 6 ++++++ - src/vte.sh.in | 9 ++++++++- - src/vte/vteterminal.h | 5 +---- - src/vtegtk.cc | 18 ++++++++++++++++++ - src/vtegtk.hh | 1 + - src/vteinternal.hh | 1 + - src/vteseq.cc | 4 +++- - 7 files changed, 38 insertions(+), 6 deletions(-) - -diff --git a/src/vte.cc b/src/vte.cc -index e9e51434..94a9db05 100644 ---- a/src/vte.cc -+++ b/src/vte.cc -@@ -10823,6 +10823,12 @@ Terminal::emit_pending_signals() - "Emitting `shell-preexec'.\n"); - g_signal_emit(freezer.get(), signals[SIGNAL_SHELL_PREEXEC], 0); - } -+ -+ 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); -+ } - #endif - - if (m_pending_changes & vte::to_integral(PendingChanges::TITLE)) { -diff --git a/src/vte.sh.in b/src/vte.sh.in -index ffc0942a..5b415f5b 100644 ---- a/src/vte.sh.in -+++ b/src/vte.sh.in -@@ -28,6 +28,11 @@ case "$TERM" in - *) return 0 ;; - esac - -+__vte_shell_precmd() { -+ local command=$(HISTTIMEFORMAT= history 1 | sed 's/^ *[0-9]\+ *//') -+ command="${command//;/ }" -+ printf '\033]777;notify;Command completed;%s\033\\\033]777;precmd\033\\' "${command}" -+} - __vte_osc7 () { - printf "\033]7;file://%s%s\033\\" "${HOSTNAME}" "$(@libexecdir@/vte-urlencode-cwd)" - } -@@ -38,7 +43,8 @@ __vte_prompt_command() { - local pwd='~' - [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} - pwd="${pwd//[[:cntrl:]]}" -- printf '\033]777;notify;Command completed;%s\033\\\033]0;%s@%s:%s\033\\' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" -+ printf '\033]777;notify;Command completed;%s\033\\\033]777;precmd\033\\\033]0;%s@%s:%s\033\\' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" -+ __vte_shell_precmd - __vte_osc7 - } - -@@ -51,6 +57,7 @@ if [[ -n "${BASH_VERSION:-}" ]]; then - # use the __vte_prompt_command function which also sets the title. - - if [[ "$(declare -p PROMPT_COMMAND 2>&1)" =~ "declare -a" ]]; then -+ PROMPT_COMMAND+=(__vte_shell_precmd) - PROMPT_COMMAND+=(__vte_osc7) && PS0=$(printf "\033]777;preexec\033\\") - else - PROMPT_COMMAND="__vte_prompt_command" && PS0=$(printf "\033]777;preexec\033\\") -diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index efd8732b..a2ff1b01 100644 ---- a/src/vte/vteterminal.h -+++ b/src/vte/vteterminal.h -@@ -115,11 +115,8 @@ struct _VteTerminalClass { - - #if _VTE_GTK == 3 - void (*notification_received)(VteTerminal* terminal, const gchar *summary, const gchar *body); -+ void (*shell_precmd)(VteTerminal* terminal); - void (*shell_preexec)(VteTerminal* terminal); -- -- /* Compatibility padding due to fedora patches intruding on our ABI */ -- /*< private >*/ -- gpointer _extra_padding[1]; - #endif /* _VTE_GTK == 3 */ - - void (*setup_context_menu)(VteTerminal* terminal, -diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index f8d971c1..d553a002 100644 ---- a/src/vtegtk.cc -+++ b/src/vtegtk.cc -@@ -1385,6 +1385,7 @@ vte_terminal_class_init(VteTerminalClass *klass) - klass->char_size_changed = NULL; - #if _VTE_GTK == 3 - klass->notification_received = NULL; -+ klass->shell_precmd = NULL; - klass->shell_preexec = NULL; - #endif - klass->window_title_changed = NULL; -@@ -1491,6 +1492,23 @@ vte_terminal_class_init(VteTerminalClass *klass) - G_TYPE_NONE, - 2, G_TYPE_STRING, G_TYPE_STRING); - -+ /** -+ * VteTerminal::shell-precmd: -+ * @vteterminal: the object which received the signal -+ * -+ * Emitted right before an interactive shell shows a -+ * first-level prompt. -+ */ -+ signals[SIGNAL_SHELL_PRECMD] = -+ g_signal_new(I_("shell-precmd"), -+ G_OBJECT_CLASS_TYPE(klass), -+ G_SIGNAL_RUN_LAST, -+ G_STRUCT_OFFSET(VteTerminalClass, shell_precmd), -+ NULL, -+ NULL, -+ g_cclosure_marshal_VOID__VOID, -+ G_TYPE_NONE, 0); -+ - /** - * VteTerminal::shell-preexec: - * @vteterminal: the object which received the signal -diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 6252a2c8..3798ebc3 100644 ---- a/src/vtegtk.hh -+++ b/src/vtegtk.hh -@@ -54,6 +54,7 @@ enum { - SIGNAL_SELECTION_CHANGED, - SIGNAL_SETUP_CONTEXT_MENU, - #if _VTE_GTK == 3 -+ SIGNAL_SHELL_PRECMD, - SIGNAL_SHELL_PREEXEC, - SIGNAL_NOTIFICATION_RECEIVED, - #endif -diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 987aec0e..cfe2e0f0 100644 ---- a/src/vteinternal.hh -+++ b/src/vteinternal.hh -@@ -735,6 +735,7 @@ public: - #if _VTE_GTK == 3 - NOTIFICATION = 1u << 3, - SHELL_PREEXEC = 1u << 4, -+ SHELL_PRECMD = 1u << 5, - #endif - }; - unsigned m_pending_changes{0}; -diff --git a/src/vteseq.cc b/src/vteseq.cc -index 17fb51f5..a1155b19 100644 ---- a/src/vteseq.cc -+++ b/src/vteseq.cc -@@ -1303,7 +1303,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, - return; - } - -- if (*token == "preexec") { -+ if (*token == "precmd") { -+ m_pending_changes |= vte::to_integral(PendingChanges::SHELL_PRECMD); -+ } else if (*token == "preexec") { - m_pending_changes |= vte::to_integral(PendingChanges::SHELL_PREEXEC); - } - } --- -2.44.0 - - -From 9424e6c777ea0a7488457ddc7649a39ee579a68b Mon Sep 17 00:00:00 2001 -From: Debarshi Ray -Date: Wed, 2 May 2018 17:30:48 +0200 -Subject: [PATCH 10/12] Test the shell-precmd signal - -https://bugzilla.gnome.org/show_bug.cgi?id=711059 -https://bugzilla.gnome.org/show_bug.cgi?id=711060 ---- - src/app/app.cc | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/src/app/app.cc b/src/app/app.cc -index 4ccff275..bfb3d9f8 100644 ---- a/src/app/app.cc -+++ b/src/app/app.cc -@@ -2960,6 +2960,12 @@ notification_received_cb(VteTerminal *terminal, - g_print("[%s]: %s\n", summary, body); - } - -+static void -+shell_precmd_cb(VteTerminal *terminal) -+{ -+ g_print("[shell] showing command prompt\n"); -+} -+ - static void - shell_preexec_cb(VteTerminal *terminal) - { -@@ -3259,6 +3265,7 @@ vteapp_window_constructed(GObject *object) - - #if VTE_GTK == 3 - g_signal_connect(window->terminal, "notification-received", G_CALLBACK(notification_received_cb), NULL); -+ g_signal_connect(window->terminal, "shell-precmd", G_CALLBACK(shell_precmd_cb), NULL); - g_signal_connect(window->terminal, "shell-preexec", G_CALLBACK(shell_preexec_cb), NULL); - - if (!options.double_buffer) { --- -2.44.0 - - -From 2c262f071a679451312e141d940a8819ece44b52 Mon Sep 17 00:00:00 2001 -From: Debarshi Ray -Date: Mon, 10 Jun 2019 20:30:18 +0200 -Subject: [PATCH 11/12] Support tracking the active container inside the - terminal - -Add sequences - - OSC 777 ; container ; push ; NAME ; RUNTIME ; UID BEL - OSC 777 ; container ; push ; NAME ; RUNTIME ; UID ST - OSC 777 ; container ; pop ; NAME ; RUNTIME ; UID BEL - OSC 777 ; container ; pop ; NAME ; RUNTIME ; UID ST - - OSC 777 ; container ; push ; NAME ; RUNTIME BEL - OSC 777 ; container ; push ; NAME ; RUNTIME ST - OSC 777 ; container ; pop ; NAME ; RUNTIME BEL - OSC 777 ; container ; pop ; NAME ; RUNTIME ST - -that let container tools notify the terminal emulator when entering and -leaving a container environment. The RUNTIME argument namespaces the -NAME and identifies the container tooling being used. eg., docker, -flatpak, podman, toolbox, etc.. The UID argument is the real UID of the -container tools. Only those containers that are used with the same real -UID as the VTE process are tracked. - -The OSC 777 escape sequence is taken from Enlightenment's Terminology: -https://phab.enlightenment.org/T1765 - -It's a VTE-specific extension until a standard escape sequence is -agreed upon across multiple different terminal emulators [1]. - -[1] https://gitlab.freedesktop.org/terminal-wg/specifications/issues/17 ---- - src/vte.cc | 8 ++++ - src/vte/vteterminal.h | 6 +++ - src/vtegtk.cc | 83 +++++++++++++++++++++++++++++++++++++++ - src/vtegtk.hh | 4 ++ - src/vteinternal.hh | 20 ++++++++++ - src/vteseq.cc | 90 +++++++++++++++++++++++++++++++++++++++++++ - 6 files changed, 211 insertions(+) - -diff --git a/src/vte.cc b/src/vte.cc -index 94a9db05..645bf330 100644 ---- a/src/vte.cc -+++ b/src/vte.cc -@@ -10829,6 +10829,14 @@ Terminal::emit_pending_signals() - "Emitting `shell-precmd'.\n"); - g_signal_emit(freezer.get(), signals[SIGNAL_SHELL_PRECMD], 0); - } -+ -+ 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]); -+ } - #endif - - if (m_pending_changes & vte::to_integral(PendingChanges::TITLE)) { -diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index a2ff1b01..6d07e28e 100644 ---- a/src/vte/vteterminal.h -+++ b/src/vte/vteterminal.h -@@ -571,6 +571,12 @@ _VTE_PUBLIC - glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); - _VTE_PUBLIC - const char *vte_terminal_get_window_title(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); -+#if _VTE_GTK == 3 -+_VTE_PUBLIC -+const char *vte_terminal_get_current_container_name(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); -+_VTE_PUBLIC -+const char *vte_terminal_get_current_container_runtime(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); -+#endif - _VTE_PUBLIC - const char *vte_terminal_get_current_directory_uri(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); - _VTE_PUBLIC -diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index d553a002..1af238e1 100644 ---- a/src/vtegtk.cc -+++ b/src/vtegtk.cc -@@ -1015,6 +1015,14 @@ try - case PROP_CURSOR_BLINK_MODE: - g_value_set_enum (value, vte_terminal_get_cursor_blink_mode (terminal)); - break; -+#if _VTE_GTK == 3 -+ case PROP_CURRENT_CONTAINER_NAME: -+ g_value_set_string (value, vte_terminal_get_current_container_name (terminal)); -+ break; -+ case PROP_CURRENT_CONTAINER_RUNTIME: -+ g_value_set_string (value, vte_terminal_get_current_container_runtime (terminal)); -+ break; -+#endif - case PROP_CURRENT_DIRECTORY_URI: - g_value_set_string (value, vte_terminal_get_current_directory_uri (terminal)); - break; -@@ -2613,6 +2621,29 @@ vte_terminal_class_init(VteTerminalClass *klass) - NULL, - (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); - -+#if _VTE_GTK == 3 -+ /** -+ * VteTerminal:current-container-name: -+ * -+ * The name of the current container, or %NULL if unset. -+ */ -+ pspecs[PROP_CURRENT_CONTAINER_NAME] = -+ g_param_spec_string ("current-container-name", NULL, NULL, -+ NULL, -+ (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); -+ -+ /** -+ * VteTerminal:current-container-runtime: -+ * -+ * The name of the runtime toolset used to set up the current -+ * container, or %NULL if unset. -+ */ -+ pspecs[PROP_CURRENT_CONTAINER_RUNTIME] = -+ g_param_spec_string ("current-container-runtime", NULL, NULL, -+ NULL, -+ (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); -+#endif -+ - /** - * VteTerminal:current-directory-uri: - * -@@ -5547,6 +5578,58 @@ catch (...) - return -1; - } - -+#if _VTE_GTK == 3 -+/** -+ * vte_terminal_get_current_container_name: -+ * @terminal: a #VteTerminal -+ * -+ * Returns: (nullable) (transfer none): the name of the current -+ * container, or %NULL -+ */ -+const char * -+vte_terminal_get_current_container_name(VteTerminal *terminal) noexcept -+try -+{ -+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL); -+ auto impl = IMPL(terminal); -+ if (impl->m_containers.empty()) -+ return NULL; -+ -+ const VteContainer &container = impl->m_containers.top(); -+ return container.m_name.c_str(); -+} -+catch (...) -+{ -+ vte::log_exception(); -+ return NULL; -+} -+ -+/** -+ * vte_terminal_get_current_container_runtime: -+ * @terminal: a #VteTerminal -+ * -+ * Returns: (nullable) (transfer none): the name of the runtime -+ * toolset used to set up the current container, or %NULL -+ */ -+const char * -+vte_terminal_get_current_container_runtime(VteTerminal *terminal) noexcept -+try -+{ -+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL); -+ auto impl = IMPL(terminal); -+ if (impl->m_containers.empty()) -+ return NULL; -+ -+ const VteContainer &container = impl->m_containers.top(); -+ return container.m_runtime.c_str(); -+} -+catch (...) -+{ -+ vte::log_exception(); -+ return NULL; -+} -+#endif -+ - /** - * vte_terminal_get_current_directory_uri: - * @terminal: a #VteTerminal -diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 3798ebc3..065a6744 100644 ---- a/src/vtegtk.hh -+++ b/src/vtegtk.hh -@@ -77,6 +77,10 @@ enum { - PROP_CONTEXT_MENU, - PROP_CURSOR_BLINK_MODE, - PROP_CURSOR_SHAPE, -+#if _VTE_GTK == 3 -+ PROP_CURRENT_CONTAINER_NAME, -+ PROP_CURRENT_CONTAINER_RUNTIME, -+#endif - PROP_CURRENT_DIRECTORY_URI, - PROP_CURRENT_FILE_URI, - PROP_DELETE_BINDING, -diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index cfe2e0f0..ccd81bef 100644 ---- a/src/vteinternal.hh -+++ b/src/vteinternal.hh -@@ -63,6 +63,9 @@ - #include - #include - #include -+#if _VTE_GTK == 3 -+#include -+#endif - #include - #include - #include -@@ -121,6 +124,20 @@ typedef enum _VteCharacterReplacement { - VTE_CHARACTER_REPLACEMENT_LINE_DRAWING - } VteCharacterReplacement; - -+#if _VTE_GTK == 3 -+struct VteContainer { -+public: -+ VteContainer(const std::string &name, const std::string &runtime) : -+ m_name{name}, -+ m_runtime{runtime} -+ { -+ } -+ -+ std::string m_name; -+ std::string m_runtime; -+}; -+#endif -+ - typedef struct _VtePaletteColor { - struct { - vte::color::rgb color; -@@ -714,6 +731,8 @@ public: - gboolean m_contents_changed_pending; - - #if _VTE_GTK == 3 -+ std::stack m_containers; -+ - /* desktop notification */ - std::string m_notification_summary; - std::string m_notification_body; -@@ -736,6 +755,7 @@ public: - NOTIFICATION = 1u << 3, - SHELL_PREEXEC = 1u << 4, - SHELL_PRECMD = 1u << 5, -+ CONTAINERS = 1u << 6, - #endif - }; - unsigned m_pending_changes{0}; -diff --git a/src/vteseq.cc b/src/vteseq.cc -index a1155b19..daa24703 100644 ---- a/src/vteseq.cc -+++ b/src/vteseq.cc -@@ -19,6 +19,7 @@ - - #include "config.h" - -+ - #include - #include - #include -@@ -39,6 +40,11 @@ - #define ST_C0 _VTE_CAP_ST - - #include -+#if _VTE_GTK == 3 -+#include -+#include -+#include -+#endif - - using namespace std::literals; - -@@ -1285,6 +1291,90 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, - if (token == endtoken) - return; - -+#if _VTE_GTK == 3 -+ if (*token == "container") { -+ ++token; -+ -+ if (token == endtoken) -+ return; -+ -+ const std::string sub_command = *token; -+ ++token; -+ -+ if (sub_command == "pop") { -+ if (token == endtoken) -+ return; -+ -+ ++token; -+ -+ if (token == endtoken) -+ return; -+ -+ ++token; -+ -+ if (token == endtoken) { -+ if (!m_containers.empty()) { -+ m_containers.pop(); -+ m_pending_changes |= vte::to_integral(PendingChanges::CONTAINERS); -+ } -+ -+ return; -+ } -+ -+ const std::string uid_token = *token; -+ ++token; -+ -+ const uid_t uid = getuid(); -+ const std::string uid_str = std::to_string(uid); -+ -+ if (uid_token == uid_str) { -+ if (!m_containers.empty()) { -+ m_containers.pop(); -+ m_pending_changes |= vte::to_integral(PendingChanges::CONTAINERS); -+ } -+ -+ return; -+ } -+ -+ return; -+ } else if (sub_command == "push") { -+ if (token == endtoken) -+ return; -+ -+ const std::string name = *token; -+ ++token; -+ -+ if (token == endtoken) -+ return; -+ -+ const std::string runtime = *token; -+ ++token; -+ -+ if (token == endtoken) { -+ m_containers.emplace(name, runtime); -+ m_pending_changes |= vte::to_integral(PendingChanges::CONTAINERS); -+ return; -+ } -+ -+ const std::string uid_token = *token; -+ ++token; -+ -+ const uid_t uid = getuid(); -+ const std::string uid_str = std::to_string(uid); -+ -+ if (uid_token == uid_str) { -+ m_containers.emplace(name, runtime); -+ m_pending_changes |= vte::to_integral(PendingChanges::CONTAINERS); -+ return; -+ } -+ -+ return; -+ } -+ -+ return; -+ } -+#endif -+ - if (*token == "notify") { - ++token; - --- -2.44.0 - - -From 71a9ae3e685b492d50a23604865388cba7592d54 Mon Sep 17 00:00:00 2001 -From: Kalev Lember -Date: Tue, 16 Feb 2021 16:30:44 +0100 -Subject: [PATCH 12/12] 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 | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/vte.cc b/src/vte.cc -index 645bf330..d8f0faec 100644 ---- a/src/vte.cc -+++ b/src/vte.cc -@@ -7081,8 +7081,8 @@ Terminal::select_all() - - m_selecting_had_delta = TRUE; - -- m_selection_resolved.set ({ (vte::grid::row_t)m_screen->row_data->delta(), 0 }, -- { (vte::grid::row_t)m_screen->row_data->next(), 0 }); -+ m_selection_resolved.set ({ (long)m_screen->row_data->delta(), 0 }, -+ { (long)m_screen->row_data->next(), 0 }); - - _vte_debug_print(VTE_DEBUG_SELECTION, "Selecting *all* text.\n"); - --- -2.44.0 - From 20f805f6a3d1769d603d2862ab24ed5ed1ddb6ad Mon Sep 17 00:00:00 2001 From: David King Date: Fri, 7 Jun 2024 15:58:34 +0100 Subject: [PATCH 118/164] Use updated notification patches from ptyxis --- vte291.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/vte291.spec b/vte291.spec index 7008c8b..6c8493a 100644 --- a/vte291.spec +++ b/vte291.spec @@ -12,7 +12,7 @@ Name: vte291 Version: 0.76.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK+ 3 terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -24,7 +24,8 @@ Source0: https://download.gnome.org/sources/vte/0.76/vte-%{version}.tar.x # 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 -Patch0: vte291-cntnr-precmd-preexec-scroll.patch +Patch: 0001-a11y-implement-GtkAccessibleText.patch +Patch: 0001-add-notification-and-shell-precmd-preexec.patch BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version} @@ -179,6 +180,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Fri Jun 07 2024 David King - 0.76.2-2 +- Use updated notification patches from ptyxis + * Tue May 28 2024 David King - 0.76.2-1 - Update to 0.76.2 From 2ca928e0ae789378d65ed7b6e8609345764a4ca3 Mon Sep 17 00:00:00 2001 From: David King Date: Mon, 10 Jun 2024 09:16:35 +0100 Subject: [PATCH 119/164] Update to 0.76.3 --- .gitignore | 1 + sources | 2 +- vte291.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 11b2a42..13d385b 100644 --- a/.gitignore +++ b/.gitignore @@ -100,3 +100,4 @@ /vte-0.76.0.tar.xz /vte-0.76.1.tar.xz /vte-0.76.2.tar.xz +/vte-0.76.3.tar.xz diff --git a/sources b/sources index 1f4ac86..d612df3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.76.2.tar.xz) = 206e2706c926972d4f389cf0418b840345ba6eb0336a3cae8b0d604f773b8b86746ef4986c94cfd6b0716449351ecb51a62f3ba08885b9cc8c8a8580e75f7fbf +SHA512 (vte-0.76.3.tar.xz) = 59cf3241f59b7ce795098814a04816d150330e4464a2438c974ac03cfd6aa05e7e037121a6a21929d6b12eb17fb1a4bf48c936604f0e0b770e3f125adb5a4c50 diff --git a/vte291.spec b/vte291.spec index 6c8493a..a664d79 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,8 +11,8 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.76.2 -Release: 2%{?dist} +Version: 0.76.3 +Release: 1%{?dist} Summary: GTK+ 3 terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -180,6 +180,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Jun 10 2024 David King - 0.76.3-1 +- Update to 0.76.3 + * Fri Jun 07 2024 David King - 0.76.2-2 - Use updated notification patches from ptyxis From 5a8515f4f4eefd66d47f79b57a7b49569fd93dab Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 20 Jul 2024 09:02:43 +0000 Subject: [PATCH 120/164] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index a664d79..ed3cba8 100644 --- a/vte291.spec +++ b/vte291.spec @@ -12,7 +12,7 @@ Name: vte291 Version: 0.76.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK+ 3 terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -180,6 +180,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Sat Jul 20 2024 Fedora Release Engineering - 0.76.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Mon Jun 10 2024 David King - 0.76.3-1 - Update to 0.76.3 From 561614a74cb6ac56ee85ebe99494a77c343ce81f Mon Sep 17 00:00:00 2001 From: David King Date: Wed, 24 Jul 2024 09:58:16 +0100 Subject: [PATCH 121/164] Update to 0.77.0 --- .gitignore | 1 + 0001-a11y-implement-GtkAccessibleText.patch | 1324 ----------------- ...otification-and-shell-precmd-preexec.patch | 533 ------- sources | 2 +- ...sh-forward-port-notify-prexec-precmd.patch | 50 + vte291.spec | 15 +- 6 files changed, 61 insertions(+), 1864 deletions(-) delete mode 100644 0001-a11y-implement-GtkAccessibleText.patch delete mode 100644 0001-add-notification-and-shell-precmd-preexec.patch create mode 100644 vte.sh-forward-port-notify-prexec-precmd.patch diff --git a/.gitignore b/.gitignore index 13d385b..1efe15b 100644 --- a/.gitignore +++ b/.gitignore @@ -101,3 +101,4 @@ /vte-0.76.1.tar.xz /vte-0.76.2.tar.xz /vte-0.76.3.tar.xz +/vte-0.77.0.tar.bz2 diff --git a/0001-a11y-implement-GtkAccessibleText.patch b/0001-a11y-implement-GtkAccessibleText.patch deleted file mode 100644 index 4361311..0000000 --- a/0001-a11y-implement-GtkAccessibleText.patch +++ /dev/null @@ -1,1324 +0,0 @@ -From aa096f3c96d8f4a736be7fdb48103daffd332296 Mon Sep 17 00:00:00 2001 -From: Christian Hergert -Date: Mon, 4 Mar 2024 14:09:53 -0800 -Subject: [PATCH] a11y: implement GtkAccessibleText - -This is an initial implementaiton of GtkAccessibleText which was added -to GTK for 4.14. It attempts to implement things in a very similar -fashion to the previous code for GTK 3 although considerable effort was -made to simplify and improve readability as to how it works. - -Currently, this supports reading back what you type and what has changed -on screen. It is not yet 1:1 what the GTK 3 a11y implementation did -because ATK was doing many other things (including proxying keyboard -keys) to the other side of the a11y bus. That appears to improve -readback by screen readers in the form of "backspace" and what character -was deleted. - -I expect things to get closer to 1:1 but that work is going to have to -be done inside of GTK itself first and should not require much if -anything here. - -A new VteTerminal:enable-a11y feature flag property has been added -because I'm concerned about enabling this by default until the a11y bus -learns to be more lazy. Currently there is no way to "do nothing" until -a peer (e.g. screenreader) is interested in the contents. - -Ideally, we would have a short-circuit like is currently implemented -by checking vte_terminal_get_enable_a11y() to avoid any sort of -contents calculation when there are no a11y observers. - -It also allows disabling the GTK 3 a11y implementation just to keep -some symmetry between the APIs. - -Currently, this does not implement "text-scrolled" like the GTK 3 -implementation does as I'm not sure yet if there is a benefit. ---- - src/meson.build | 13 +- - src/vte.cc | 11 + - src/vte/vteterminal.h | 7 + - src/vteaccess-gtk4.cc | 874 ++++++++++++++++++++++++++++++++++++++++++ - src/vteaccess-gtk4.h | 25 ++ - src/vteaccess.cc | 21 + - src/vtegtk.cc | 97 ++++- - src/vtegtk.hh | 1 + - src/vteinternal.hh | 8 + - 10 files changed, 1053 insertions(+), 10 deletions(-) - create mode 100644 src/vteaccess-gtk4.cc - create mode 100644 src/vteaccess-gtk4.h - -diff --git a/src/meson.build b/src/meson.build -index 3f89f492..6d1b4b2b 100644 ---- a/src/meson.build -+++ b/src/meson.build -@@ -18,11 +18,16 @@ subdir('vte') - - src_inc = include_directories('.') - --a11y_sources = files( -+a11y_gtk3_sources = files( - 'vteaccess.cc', - 'vteaccess.h', - ) - -+a11y_gtk4_sources = files( -+ 'vteaccess-gtk4.cc', -+ 'vteaccess-gtk4.h', -+) -+ - debug_sources = files( - 'debug.cc', - 'debug.h', -@@ -300,7 +305,7 @@ if get_option('gtk3') - libvte_gtk3_public_deps = libvte_common_public_deps + [gtk3_dep,] - - if get_option('a11y') -- libvte_gtk3_sources += a11y_sources -+ libvte_gtk3_sources += a11y_gtk3_sources - endif - - libvte_gtk3 = shared_library( -@@ -349,6 +354,10 @@ if get_option('gtk4') - libvte_gtk4_deps = libvte_common_deps + [gtk4_dep,] - libvte_gtk4_public_deps = libvte_common_public_deps + [gtk4_dep,] - -+ if get_option('a11y') -+ libvte_gtk4_sources += a11y_gtk4_sources -+ endif -+ - libvte_gtk4 = shared_library( - vte_gtk4_api_name, - sources: libvte_gtk4_sources, -diff --git a/src/vte.cc b/src/vte.cc -index a8a0e22c..4d9bf411 100644 ---- a/src/vte.cc -+++ b/src/vte.cc -@@ -10132,6 +10132,17 @@ Terminal::set_text_blink_mode(TextBlinkMode setting) - return true; - } - -+bool -+Terminal::set_enable_a11y(bool setting) -+{ -+ if (setting == m_enable_a11y) -+ return false; -+ -+ m_enable_a11y = setting; -+ -+ return true; -+} -+ - bool - Terminal::set_enable_bidi(bool setting) - { -diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 9c2e2dae..7f4bf6df 100644 ---- a/src/vte/vteterminal.h -+++ b/src/vte/vteterminal.h -@@ -388,6 +388,13 @@ _VTE_PUBLIC - void vte_terminal_set_delete_binding(VteTerminal *terminal, - VteEraseBinding binding) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); - -+/* Accessibility */ -+_VTE_PUBLIC -+void vte_terminal_set_enable_a11y(VteTerminal *terminal, -+ gboolean enable_a11y) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); -+_VTE_PUBLIC -+gboolean vte_terminal_get_enable_a11y(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); -+ - /* BiDi and shaping */ - _VTE_PUBLIC - void vte_terminal_set_enable_bidi(VteTerminal *terminal, -diff --git a/src/vteaccess-gtk4.cc b/src/vteaccess-gtk4.cc -new file mode 100644 -index 00000000..f42e7578 ---- /dev/null -+++ b/src/vteaccess-gtk4.cc -@@ -0,0 +1,874 @@ -+/* -+ * Copyright © 2024 Christian Hergert -+ * Copyright © 2002,2003 Red Hat, Inc. -+ * -+ * This library is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU Lesser General Public License as published -+ * by the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public License -+ * along with this library. If not, see . -+ */ -+ -+#include "config.h" -+ -+#include "vteinternal.hh" -+#include "vteaccess-gtk4.h" -+ -+#define GDK_ARRAY_NAME char_positions -+#define GDK_ARRAY_TYPE_NAME CharPositions -+#define GDK_ARRAY_ELEMENT_TYPE int -+#define GDK_ARRAY_BY_VALUE 1 -+#define GDK_ARRAY_PREALLOC 8 -+#define GDK_ARRAY_NO_MEMSET -+#include "gdkarrayimpl.c" -+ -+typedef struct _VteAccessibleTextContents -+{ -+ /* A GdkArrayImpl of attributes per byte */ -+ VteCharAttrList attrs; -+ -+ /* The byte position within the UTF-8 string where each visible -+ * character starts. -+ */ -+ CharPositions characters; -+ -+ /* The character position within the UTF-8 string where each line -+ * break occurs. To get byte offset, use @characters. -+ */ -+ CharPositions linebreaks; -+ -+ /* The UTF-8 string encoded as bytes so that we may reference it -+ * using GBytes for "substrings". However @string does include a -+ * trailing NUL byte in it's size so that the a11y infrastructure -+ * may elide some string copies. -+ */ -+ GBytes *string; -+ -+ /* Number of bytes in @string excluding trailing NUL. */ -+ gsize n_bytes; -+ -+ /* Number of unicode characters in @string. */ -+ gsize n_chars; -+ -+ /* The character position (not bytes) of the caret in @string */ -+ gsize caret; -+ -+ /* Cached column/row of the caret updated each time we are notified -+ * of the caret having moved. We cache this so that we can elide -+ * extraneous notifications after snapshoting. We will update the -+ * carent position synchronously when notified so @caret may always -+ * be relied upon as correct. -+ */ -+ long cached_caret_column; -+ long cached_caret_row; -+} VteAccessibleTextContents; -+ -+typedef struct _VteAccessibleText -+{ -+ VteTerminal *terminal; -+ VteAccessibleTextContents contents[2]; -+ guint contents_flip : 1; -+} VteAccessibleText; -+ -+static inline gboolean -+_pango_color_equal(const PangoColor *a, -+ const PangoColor *b) -+{ -+ return a->red == b->red && -+ a->green == b->green && -+ a->blue == b->blue; -+} -+ -+static void -+vte_accessible_text_contents_init (VteAccessibleTextContents *contents) -+{ -+ vte_char_attr_list_init (&contents->attrs); -+ char_positions_init (&contents->characters); -+ char_positions_init (&contents->linebreaks); -+ contents->string = nullptr; -+ contents->n_bytes = 0; -+ contents->n_chars = 0; -+ contents->caret = 0; -+ contents->cached_caret_row = 0; -+ contents->cached_caret_column = 0; -+} -+ -+static void -+vte_accessible_text_contents_clear (VteAccessibleTextContents *contents) -+{ -+ vte_char_attr_list_clear (&contents->attrs); -+ char_positions_clear (&contents->characters); -+ char_positions_clear (&contents->linebreaks); -+ g_clear_pointer (&contents->string, g_bytes_unref); -+ contents->n_bytes = 0; -+ contents->n_chars = 0; -+ contents->caret = 0; -+ contents->cached_caret_row = 0; -+ contents->cached_caret_column = 0; -+} -+ -+static void -+vte_accessible_text_contents_reset (VteAccessibleTextContents *contents) -+{ -+ vte_char_attr_list_set_size (&contents->attrs, 0); -+ char_positions_set_size (&contents->characters, 0); -+ char_positions_set_size (&contents->linebreaks, 0); -+ g_clear_pointer (&contents->string, g_bytes_unref); -+ contents->n_bytes = 0; -+ contents->n_chars = 0; -+ contents->caret = 0; -+ contents->cached_caret_row = 0; -+ contents->cached_caret_column = 0; -+} -+ -+static const char * -+vte_accessible_text_contents_get_string (VteAccessibleTextContents *contents, -+ gsize *len) -+{ -+ const char *ret; -+ -+ if (contents->string == nullptr || g_bytes_get_size (contents->string) == 0) { -+ *len = 0; -+ return ""; -+ } -+ -+ ret = (const char *)g_bytes_get_data (contents->string, len); -+ -+ if (*len > 0) { -+ (*len)--; -+ } -+ -+ return ret; -+} -+ -+static int -+vte_accessible_text_contents_offset_from_xy (VteAccessibleTextContents *contents, -+ int x, -+ int y) -+{ -+ int offset; -+ int linebreak; -+ int next_linebreak; -+ -+ if (y >= int(char_positions_get_size (&contents->linebreaks))) { -+ y = int(char_positions_get_size (&contents->linebreaks)) - 1; -+ if (y < 0) { -+ return 0; -+ } -+ } -+ -+ linebreak = *char_positions_index (&contents->linebreaks, y); -+ if (y + 1 == int(char_positions_get_size (&contents->linebreaks))) { -+ next_linebreak = int(char_positions_get_size (&contents->characters)); -+ } else { -+ next_linebreak = *char_positions_index (&contents->linebreaks, y + 1); -+ } -+ -+ offset = linebreak + x; -+ if (offset >= next_linebreak) { -+ offset = next_linebreak - 1; -+ } -+ -+ return offset; -+} -+ -+static gunichar -+vte_accessible_text_contents_get_char_at (VteAccessibleTextContents *contents, -+ guint offset) -+{ -+ const char *str; -+ -+ if (contents->string == nullptr) -+ return 0; -+ -+ if (offset >= contents->n_chars) -+ return 0; -+ -+ g_assert (offset < char_positions_get_size (&contents->characters)); -+ -+ str = (const char *)g_bytes_get_data (contents->string, nullptr); -+ str += *char_positions_index (&contents->characters, offset); -+ -+ return g_utf8_get_char (str); -+ -+} -+ -+static GBytes * -+_g_string_free_to_bytes_with_nul (GString *str) -+{ -+ /* g_string_free_to_bytes() will have a trailing-NUL but not include it -+ * in the size of the GBytes. We want the size included in our GBytes -+ * so that GtkAccessibleText may avoid some copies. -+ */ -+ gsize len = str->len + 1; -+ return g_bytes_new_take (g_string_free (str, FALSE), len); -+} -+ -+static inline gsize -+vte_accessible_text_contents_find_caret (VteAccessibleTextContents *contents, -+ long ccol, -+ long crow) -+{ -+ g_assert (contents != nullptr); -+ -+ /* Get the offsets to the beginnings of each line. */ -+ gsize caret = 0; -+ for (gsize i = 0; i < char_positions_get_size (&contents->characters); i++) { -+ /* Get the attributes for the current cell. */ -+ int offset = *char_positions_index (&contents->characters, i); -+ const struct _VteCharAttributes *attrs = vte_char_attr_list_get (&contents->attrs, offset); -+ -+ /* If this cell is "before" the cursor, move the caret to be "here". */ -+ if ((attrs->row < crow) || -+ ((attrs->row == crow) && (attrs->column < ccol))) { -+ caret = i + 1; -+ } -+ } -+ -+ return caret; -+} -+ -+static void -+vte_accessible_text_contents_snapshot (VteAccessibleTextContents *contents, -+ VteTerminal *terminal) -+{ -+ auto impl = _vte_terminal_get_impl (terminal); -+ GString *gstr = g_string_new (nullptr); -+ -+ try { -+ impl->get_text_displayed_a11y (gstr, &contents->attrs); -+ } catch (...) { -+ g_string_truncate (gstr, 0); -+ } -+ -+ if (vte_char_attr_list_get_size (&contents->attrs) >= G_MAXINT) { -+ g_string_truncate (gstr, 0); -+ return; -+ } -+ -+ /* Get the offsets to the beginnings of each character. */ -+ int i = 0; -+ const char *next = gstr->str; -+ int n_attrs = int(vte_char_attr_list_get_size (&contents->attrs)); -+ while (i < n_attrs) { -+ char_positions_append (&contents->characters, &i); -+ next = g_utf8_next_char (next); -+ if (next != nullptr) { -+ i = next - gstr->str; -+ continue; -+ } -+ break; -+ } -+ -+ /* Find offsets for the beginning of lines. */ -+ gsize n_chars = char_positions_get_size (&contents->characters); -+ int row; -+ for (i = 0, row = 0; i < int(n_chars); i++) { -+ /* Get the attributes for the current cell. */ -+ int offset = *char_positions_index (&contents->characters, i); -+ const struct _VteCharAttributes *attrs = vte_char_attr_list_get (&contents->attrs, offset); -+ -+ /* If this character is on a row different from the row -+ * the character we looked at previously was on, then -+ * it's a new line and we need to keep track of where -+ * it is. */ -+ if ((i == 0) || (attrs->row != row)) { -+ _vte_debug_print (VTE_DEBUG_ALLY, -+ "Row %d/%ld begins at %d.\n", -+ int(char_positions_get_size (&contents->linebreaks)), -+ attrs->row, i); -+ char_positions_append (&contents->linebreaks, &i); -+ } -+ -+ row = attrs->row; -+ } -+ -+ /* Add the final line break. */ -+ char_positions_append (&contents->linebreaks, &i); -+ -+ /* Update the caret position. */ -+ long ccol, crow; -+ vte_terminal_get_cursor_position (terminal, &ccol, &crow); -+ _vte_debug_print (VTE_DEBUG_ALLY, "Cursor at (%ld, " "%ld).\n", ccol, crow); -+ gsize caret = vte_accessible_text_contents_find_caret (contents, ccol, crow); -+ -+ contents->n_bytes = gstr->len; -+ contents->n_chars = n_chars; -+ contents->string = _g_string_free_to_bytes_with_nul (gstr); -+ contents->caret = caret; -+ contents->cached_caret_column = ccol; -+ contents->cached_caret_row = crow; -+ -+ _vte_debug_print (VTE_DEBUG_ALLY, -+ "Refreshed accessibility snapshot, " -+ "%ld cells, %ld characters.\n", -+ long(vte_char_attr_list_get_size(&contents->attrs)), -+ long(char_positions_get_size (&contents->characters))); -+} -+ -+static GBytes * -+vte_accessible_text_contents_slice (VteAccessibleTextContents *contents, -+ guint start, -+ guint end) -+{ -+ static const char empty[] = {0}; -+ guint start_offset; -+ guint end_offset; -+ -+ g_assert (contents != nullptr); -+ -+ if (contents->string == nullptr) -+ return g_bytes_new_static (empty, sizeof empty); -+ -+ if (start > contents->n_chars) -+ start = contents->n_chars; -+ -+ if (end > contents->n_chars) -+ end = contents->n_chars; -+ -+ if (end < start) -+ std::swap (end, start); -+ -+ g_assert (start <= char_positions_get_size (&contents->characters)); -+ g_assert (end <= char_positions_get_size (&contents->characters)); -+ -+ if (start == char_positions_get_size (&contents->characters)) -+ start_offset = g_bytes_get_size (contents->string); -+ else -+ start_offset = *char_positions_index (&contents->characters, start); -+ -+ if (end == char_positions_get_size (&contents->characters)) -+ end_offset = g_bytes_get_size (contents->string); -+ else -+ end_offset = *char_positions_index (&contents->characters, end); -+ -+ g_assert (start_offset <= end_offset); -+ -+ if (start_offset == end_offset) -+ return g_bytes_new_static (empty, sizeof empty); -+ -+ return g_bytes_new_from_bytes (contents->string, start_offset, end_offset - start_offset); -+} -+ -+static void -+vte_accessible_text_free (VteAccessibleText *state) -+{ -+ vte_accessible_text_contents_clear (&state->contents[0]); -+ vte_accessible_text_contents_clear (&state->contents[1]); -+ state->terminal = nullptr; -+ g_free (state); -+} -+ -+static VteAccessibleText * -+vte_accessible_text_get (VteTerminal *terminal) -+{ -+ return (VteAccessibleText *)g_object_get_data (G_OBJECT (terminal), "VTE_ACCESSIBLE_TEXT"); -+} -+ -+static GBytes * -+vte_accessible_text_get_contents (GtkAccessibleText *accessible, -+ guint start, -+ guint end) -+{ -+ VteTerminal *terminal = VTE_TERMINAL (accessible); -+ VteAccessibleText *state = vte_accessible_text_get (terminal); -+ VteAccessibleTextContents *contents = nullptr; -+ -+ g_assert (VTE_IS_TERMINAL (terminal)); -+ g_assert (state != nullptr); -+ g_assert (state->terminal == terminal); -+ -+ contents = &state->contents[state->contents_flip]; -+ -+ return vte_accessible_text_contents_slice (contents, start, end); -+} -+ -+static GBytes * -+vte_accessible_text_get_contents_at (GtkAccessibleText *accessible, -+ guint offset, -+ GtkAccessibleTextGranularity granularity, -+ guint *start, -+ guint *end) -+{ -+ VteTerminal *terminal = VTE_TERMINAL (accessible); -+ VteAccessibleText *state = vte_accessible_text_get (terminal); -+ VteAccessibleTextContents *contents; -+ -+ g_assert (VTE_IS_TERMINAL (terminal)); -+ g_assert (state != nullptr); -+ g_assert (state->terminal == terminal); -+ -+ auto impl = _vte_terminal_get_impl (terminal); -+ -+ contents = &state->contents[state->contents_flip]; -+ -+ if (contents->string == nullptr) { -+ return nullptr; -+ } -+ -+ if (offset > contents->n_chars) { -+ offset = contents->n_chars; -+ } -+ -+ switch (granularity) { -+ case GTK_ACCESSIBLE_TEXT_GRANULARITY_CHARACTER: { -+ *start = offset; -+ *end = offset + 1; -+ return vte_accessible_text_contents_slice (contents, offset, offset + 1); -+ } -+ -+ case GTK_ACCESSIBLE_TEXT_GRANULARITY_LINE: { -+ guint char_offset = *char_positions_index (&contents->characters, offset); -+ guint line; -+ -+ for (line = 0; -+ line < char_positions_get_size (&contents->linebreaks); -+ line++) { -+ guint line_offset = *char_positions_index (&contents->linebreaks, line); -+ -+ if (line_offset > char_offset) { -+ line--; -+ break; -+ } -+ } -+ -+ _vte_debug_print (VTE_DEBUG_ALLY, -+ "Character %u is on line %u.\n", -+ offset, line); -+ -+ *start = *char_positions_index (&contents->linebreaks, line); -+ if (line + 1 < char_positions_get_size (&contents->linebreaks)) -+ *end = *char_positions_index (&contents->linebreaks, line + 1); -+ else -+ *end = contents->n_chars; -+ -+ return vte_accessible_text_contents_slice (contents, *start, *end); -+ } -+ -+ case GTK_ACCESSIBLE_TEXT_GRANULARITY_WORD: { -+ gunichar ch = vte_accessible_text_contents_get_char_at (contents, offset); -+ -+ if (ch == 0 || !impl->is_word_char (ch)) -+ break; -+ -+ *start = offset; -+ *end = offset; -+ -+ while (*start > 0 && -+ (ch = vte_accessible_text_contents_get_char_at (contents, *start - 1)) && -+ impl->is_word_char (ch)) { -+ (*start)--; -+ } -+ -+ while (*end < contents->n_chars && -+ (ch = vte_accessible_text_contents_get_char_at (contents, *end + 1)) && -+ impl->is_word_char (ch)) { -+ (*end)++; -+ } -+ -+ return vte_accessible_text_contents_slice (contents, *start, *end); -+ } -+ -+ case GTK_ACCESSIBLE_TEXT_GRANULARITY_SENTENCE: -+ case GTK_ACCESSIBLE_TEXT_GRANULARITY_PARAGRAPH: -+ default: -+ break; -+ } -+ -+ return nullptr; -+} -+ -+static guint -+vte_accessible_text_get_caret_position (GtkAccessibleText *accessible) -+{ -+ VteTerminal *terminal = VTE_TERMINAL (accessible); -+ VteAccessibleText *state = vte_accessible_text_get (terminal); -+ -+ g_assert (VTE_IS_TERMINAL (accessible)); -+ g_assert (state != nullptr); -+ g_assert (state->terminal == terminal); -+ -+ return state->contents[state->contents_flip].caret; -+} -+ -+static gboolean -+vte_accessible_text_get_selection (GtkAccessibleText *accessible, -+ gsize *n_ranges, -+ GtkAccessibleTextRange **ranges) -+{ -+ VteTerminal *terminal = VTE_TERMINAL (accessible); -+ VteAccessibleText *state = vte_accessible_text_get (terminal); -+ -+ g_assert (VTE_IS_TERMINAL (terminal)); -+ g_assert (ranges != nullptr); -+ -+ *n_ranges = 0; -+ *ranges = nullptr; -+ -+ try { -+ auto impl = _vte_terminal_get_impl (terminal); -+ VteAccessibleTextContents *contents = &state->contents[state->contents_flip]; -+ GtkAccessibleTextRange range; -+ -+ if (impl->m_selection_resolved.empty() || -+ impl->m_selection[vte::to_integral(vte::platform::ClipboardType::PRIMARY)] == nullptr) -+ return FALSE; -+ -+ auto start_column = impl->m_selection_resolved.start_column(); -+ auto start_row = impl->m_selection_resolved.start_row(); -+ auto end_column = impl->m_selection_resolved.end_column(); -+ auto end_row = impl->m_selection_resolved.end_row(); -+ -+ auto start_offset = vte_accessible_text_contents_offset_from_xy (contents, start_column, start_row); -+ auto end_offset = vte_accessible_text_contents_offset_from_xy (contents, end_column, end_row); -+ -+ range.start = gsize(start_offset); -+ range.length = gsize(end_offset - start_offset); -+ -+ *n_ranges = 1; -+ *ranges = (GtkAccessibleTextRange *)g_memdup2 (&range, sizeof range); -+ -+ return TRUE; -+ } catch (...) { } -+ -+ return FALSE; -+} -+ -+static gboolean -+vte_accessible_text_get_attributes (GtkAccessibleText *accessible, -+ guint offset, -+ gsize *n_ranges, -+ GtkAccessibleTextRange **ranges, -+ char ***attribute_names, -+ char ***attribute_values) -+{ -+ VteTerminal *terminal = VTE_TERMINAL (accessible); -+ VteAccessibleText *state = vte_accessible_text_get (terminal); -+ VteAccessibleTextContents *contents; -+ struct _VteCharAttributes cur_attr; -+ struct _VteCharAttributes attr; -+ GtkAccessibleTextRange range; -+ struct { -+ const char *name; -+ const char *value; -+ } attrs[4]; -+ char fg_color[16]; -+ char bg_color[16]; -+ guint n_attrs = 0; -+ guint start = 0; -+ guint end = 0; -+ guint i; -+ -+ g_assert (VTE_IS_TERMINAL (accessible)); -+ g_assert (ranges != nullptr); -+ g_assert (attribute_names != nullptr); -+ g_assert (attribute_values != nullptr); -+ -+ contents = &state->contents[state->contents_flip]; -+ -+ *n_ranges = 0; -+ *ranges = nullptr; -+ *attribute_names = nullptr; -+ *attribute_values = nullptr; -+ -+ attr = *vte_char_attr_list_get (&contents->attrs, offset); -+ start = 0; -+ for (i = offset; i--;) { -+ cur_attr = *vte_char_attr_list_get (&contents->attrs, i); -+ if (!_pango_color_equal (&cur_attr.fore, &attr.fore) || -+ !_pango_color_equal (&cur_attr.back, &attr.back) || -+ cur_attr.underline != attr.underline || -+ cur_attr.strikethrough != attr.strikethrough) { -+ start = i + 1; -+ break; -+ } -+ } -+ end = vte_char_attr_list_get_size (&contents->attrs) - 1; -+ for (i = offset + 1; i < vte_char_attr_list_get_size (&contents->attrs); i++) { -+ cur_attr = *vte_char_attr_list_get (&contents->attrs, i); -+ if (!_pango_color_equal (&cur_attr.fore, &attr.fore) || -+ !_pango_color_equal (&cur_attr.back, &attr.back) || -+ cur_attr.underline != attr.underline || -+ cur_attr.strikethrough != attr.strikethrough) { -+ end = i - 1; -+ break; -+ } -+ } -+ -+ range.start = start; -+ range.length = end - start; -+ -+ if (range.length == 0) -+ return FALSE; -+ -+ if (attr.underline) { -+ attrs[n_attrs].name = "underline"; -+ attrs[n_attrs].value = "true"; -+ n_attrs++; -+ } -+ -+ if (attr.strikethrough) { -+ attrs[n_attrs].name = "strikethrough"; -+ attrs[n_attrs].value = "true"; -+ n_attrs++; -+ } -+ -+ g_snprintf (fg_color, sizeof fg_color, "%u,%u,%u", -+ attr.fore.red, attr.fore.green, attr.fore.blue); -+ attrs[n_attrs].name = "fg-color"; -+ attrs[n_attrs].value = fg_color; -+ n_attrs++; -+ -+ g_snprintf (bg_color, sizeof bg_color, "%u,%u,%u", -+ attr.back.red, attr.back.green, attr.back.blue); -+ attrs[n_attrs].name = "bg-color"; -+ attrs[n_attrs].value = bg_color; -+ n_attrs++; -+ -+ *attribute_names = g_new0 (char *, n_attrs + 1); -+ *attribute_values = g_new0 (char *, n_attrs + 1); -+ *n_ranges = 1; -+ *ranges = (GtkAccessibleTextRange *)g_memdup2 (&range, sizeof range); -+ -+ for (i = 0; i < n_attrs; i++) { -+ (*attribute_names)[i] = g_strdup (attrs[i].name); -+ (*attribute_values)[i] = g_strdup (attrs[i].value); -+ } -+ -+ return TRUE; -+} -+ -+void -+_vte_accessible_text_iface_init (GtkAccessibleTextInterface *iface) -+{ -+ iface->get_attributes = vte_accessible_text_get_attributes; -+ iface->get_caret_position = vte_accessible_text_get_caret_position; -+ iface->get_contents = vte_accessible_text_get_contents; -+ iface->get_contents_at = vte_accessible_text_get_contents_at; -+ iface->get_selection = vte_accessible_text_get_selection; -+} -+ -+static void -+vte_accessible_text_contents_changed (VteTerminal *terminal, -+ VteAccessibleText *state) -+{ -+ VteAccessibleTextContents *next = nullptr; -+ VteAccessibleTextContents *prev = nullptr; -+ const char *nextstr; -+ const char *prevstr; -+ gsize prevlen; -+ gsize nextlen; -+ -+ g_assert (VTE_IS_TERMINAL (terminal)); -+ g_assert (state != nullptr); -+ g_assert (state->terminal == terminal); -+ -+ if (!vte_terminal_get_enable_a11y (terminal)) -+ return; -+ -+ prev = &state->contents[state->contents_flip]; -+ next = &state->contents[!state->contents_flip]; -+ -+ /* Get a new snapshot of contents so that we can compare this to the -+ * previous contents. That way we can discover if it was a backspace -+ * that occurred or if it's more than that. -+ * -+ * We do not filp state->contents_flip immediately so that we can -+ * allow the AT context the ability to access the current contents -+ * on DELETE operations. -+ */ -+ vte_accessible_text_contents_reset (next); -+ vte_accessible_text_contents_snapshot (next, state->terminal); -+ -+ nextstr = vte_accessible_text_contents_get_string (next, &nextlen); -+ prevstr = vte_accessible_text_contents_get_string (prev, &prevlen); -+ -+ vte_assert_cmpint (char_positions_get_size (&prev->characters), ==, prev->n_chars); -+ vte_assert_cmpint (char_positions_get_size (&next->characters), ==, next->n_chars); -+ -+ /* NOTE: -+ * -+ * The code below is based upon what vteaccess.cc did for GTK 3. -+ * It does not do any sort of appropriate diffing to try to handle -+ * scrolling correctly. That would be a good idea to implement in -+ * the longer term. -+ * -+ * It just looks for a long prefix match, and then a long suffix -+ * match and attempts to diff what is between those to end points. -+ */ -+ -+ const char *prevc = prevstr; -+ const char *nextc = nextstr; -+ gsize offset = 0; -+ -+ /* Find the beginning of changes */ -+ while ((offset < prev->n_chars) && (offset < next->n_chars)) { -+ gunichar prevch = g_utf8_get_char (prevc); -+ gunichar nextch = g_utf8_get_char (nextc); -+ -+ if (prevch != nextch) { -+ break; -+ } -+ -+ offset++; -+ -+ prevc = g_utf8_next_char (prevc); -+ nextc = g_utf8_next_char (nextc); -+ } -+ -+ /* Find the end of changes */ -+ gsize next_end = next->n_chars; -+ gsize prev_end = prev->n_chars; -+ -+ prevc = prevstr + prevlen; -+ nextc = nextstr + nextlen; -+ -+ while ((next_end > offset) && (prev_end > offset)) { -+ prevc = g_utf8_prev_char (prevc); -+ nextc = g_utf8_prev_char (nextc); -+ -+ gunichar prevch = g_utf8_get_char (prevc); -+ gunichar nextch = g_utf8_get_char (nextc); -+ -+ if (prevch != nextch) { -+ break; -+ } -+ -+ next_end--; -+ prev_end--; -+ } -+ -+ if (offset < prev_end) { -+ gtk_accessible_text_update_contents (GTK_ACCESSIBLE_TEXT (terminal), -+ GTK_ACCESSIBLE_TEXT_CONTENT_CHANGE_REMOVE, -+ offset, prev_end); -+ } -+ -+ state->contents_flip = !state->contents_flip; -+ -+ if (offset < next_end) { -+ gtk_accessible_text_update_contents (GTK_ACCESSIBLE_TEXT (terminal), -+ GTK_ACCESSIBLE_TEXT_CONTENT_CHANGE_INSERT, -+ offset, next_end); -+ } -+ -+ if (prev->caret != next->caret) { -+ gtk_accessible_text_update_caret_position (GTK_ACCESSIBLE_TEXT (terminal)); -+ } -+} -+ -+static void -+vte_accessible_text_cursor_moved (VteTerminal *terminal, -+ VteAccessibleText *state) -+{ -+ VteAccessibleTextContents *contents = nullptr; -+ -+ g_assert (VTE_IS_TERMINAL (terminal)); -+ g_assert (state != nullptr); -+ g_assert (state->terminal == terminal); -+ -+ if (!vte_terminal_get_enable_a11y (terminal)) -+ return; -+ -+ contents = &state->contents[state->contents_flip]; -+ -+ long ccol, crow; -+ vte_terminal_get_cursor_position (terminal, &ccol, &crow); -+ if (ccol == contents->cached_caret_column && crow == contents->cached_caret_row) { -+ return; -+ } -+ -+ _vte_debug_print (VTE_DEBUG_ALLY, "Cursor at (%ld, " "%ld).\n", ccol, crow); -+ -+ contents->cached_caret_column = ccol; -+ contents->cached_caret_row = crow; -+ contents->caret = vte_accessible_text_contents_find_caret (contents, ccol, crow); -+ -+ gtk_accessible_text_update_caret_position (GTK_ACCESSIBLE_TEXT (terminal)); -+} -+ -+static void -+vte_accessible_text_window_title_changed (VteTerminal *terminal, -+ VteAccessibleText *state) -+{ -+ const char *window_title; -+ -+ g_assert (VTE_IS_TERMINAL (terminal)); -+ g_assert (state != nullptr); -+ g_assert (state->terminal == terminal); -+ -+ if (!vte_terminal_get_enable_a11y (terminal)) -+ return; -+ -+ window_title = vte_terminal_get_window_title (terminal); -+ -+ gtk_accessible_update_property (GTK_ACCESSIBLE (terminal), -+ GTK_ACCESSIBLE_PROPERTY_DESCRIPTION, window_title ? window_title : "", -+ GTK_ACCESSIBLE_VALUE_UNDEFINED); -+} -+ -+static void -+vte_accessible_text_selection_changed (VteTerminal *terminal, -+ VteAccessibleText *state) -+{ -+ g_assert (VTE_IS_TERMINAL (terminal)); -+ g_assert (state != nullptr); -+ g_assert (state->terminal == terminal); -+ -+ if (!vte_terminal_get_enable_a11y (terminal)) -+ return; -+ -+ gtk_accessible_text_update_caret_position (GTK_ACCESSIBLE_TEXT (terminal)); -+ gtk_accessible_text_update_selection_bound (GTK_ACCESSIBLE_TEXT (terminal)); -+} -+ -+void -+_vte_accessible_text_init (GtkAccessibleText *accessible) -+{ -+ VteTerminal *terminal = VTE_TERMINAL (accessible); -+ VteAccessibleText *state; -+ -+ state = g_new0 (VteAccessibleText, 1); -+ state->terminal = terminal; -+ -+ vte_accessible_text_contents_init (&state->contents[0]); -+ vte_accessible_text_contents_init (&state->contents[1]); -+ -+ g_object_set_data_full (G_OBJECT (terminal), -+ "VTE_ACCESSIBLE_TEXT", -+ state, -+ (GDestroyNotify)vte_accessible_text_free); -+ -+ g_signal_connect (terminal, -+ "contents-changed", -+ G_CALLBACK (vte_accessible_text_contents_changed), -+ state); -+ g_signal_connect (terminal, -+ "cursor-moved", -+ G_CALLBACK (vte_accessible_text_cursor_moved), -+ state); -+ g_signal_connect (terminal, -+ "selection-changed", -+ G_CALLBACK (vte_accessible_text_selection_changed), -+ state); -+ g_signal_connect (terminal, -+ "window-title-changed", -+ G_CALLBACK (vte_accessible_text_window_title_changed), -+ state); -+ -+ const char *window_title = vte_terminal_get_window_title (terminal); -+ -+ gtk_accessible_update_property (GTK_ACCESSIBLE (accessible), -+ GTK_ACCESSIBLE_PROPERTY_DESCRIPTION, window_title ? window_title : "", -+ GTK_ACCESSIBLE_PROPERTY_HAS_POPUP, TRUE, -+ GTK_ACCESSIBLE_PROPERTY_LABEL, "Terminal", -+ GTK_ACCESSIBLE_PROPERTY_MULTI_LINE, TRUE, -+ GTK_ACCESSIBLE_VALUE_UNDEFINED); -+} -diff --git a/src/vteaccess-gtk4.h b/src/vteaccess-gtk4.h -new file mode 100644 -index 00000000..37b09c7b ---- /dev/null -+++ b/src/vteaccess-gtk4.h -@@ -0,0 +1,25 @@ -+/* -+ * Copyright © 2024 Christian Hergert -+ * -+ * This library is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU Lesser General Public License as published -+ * by the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public License -+ * along with this library. If not, see . -+ */ -+ -+#include -+ -+G_BEGIN_DECLS -+ -+void _vte_accessible_text_iface_init (GtkAccessibleTextInterface *iface); -+void _vte_accessible_text_init (GtkAccessibleText *accessible); -+ -+G_END_DECLS -diff --git a/src/vteaccess.cc b/src/vteaccess.cc -index fff918dc..c1c1a4c0 100644 ---- a/src/vteaccess.cc -+++ b/src/vteaccess.cc -@@ -386,6 +386,12 @@ _vte_terminal_accessible_text_modified(VteTerminalAccessible* accessible) - glong offset, caret_offset, olen, clen; - gint old_snapshot_caret; - -+ auto widget = gtk_accessible_get_widget(GTK_ACCESSIBLE(accessible)); -+ auto terminal = VTE_TERMINAL(widget); -+ -+ if (!vte_terminal_get_enable_a11y (terminal)) -+ return; -+ - old_snapshot_caret = priv->snapshot_caret; - priv->snapshot_contents_invalid = TRUE; - vte_terminal_accessible_update_private_data_if_needed(accessible, -@@ -541,6 +547,9 @@ _vte_terminal_accessible_text_scrolled(VteTerminalAccessible* accessible, - auto widget = gtk_accessible_get_widget(GTK_ACCESSIBLE(accessible)); - auto terminal = VTE_TERMINAL(widget); - -+ if (!vte_terminal_get_enable_a11y (terminal)) -+ return; -+ - row_count = vte_terminal_get_row_count(terminal); - if (((howmuch < 0) && (howmuch <= -row_count)) || - ((howmuch > 0) && (howmuch >= row_count))) { -@@ -793,6 +802,9 @@ vte_terminal_accessible_invalidate_cursor(VteTerminal *terminal, gpointer data) - VteTerminalAccessible *accessible = (VteTerminalAccessible *)data; - VteTerminalAccessiblePrivate *priv = (VteTerminalAccessiblePrivate *)_vte_terminal_accessible_get_instance_private(accessible); - -+ if (!vte_terminal_get_enable_a11y (terminal)) -+ return; -+ - _vte_debug_print(VTE_DEBUG_ALLY, - "Invalidating accessibility cursor.\n"); - priv->snapshot_caret_invalid = TRUE; -@@ -807,6 +819,9 @@ vte_terminal_accessible_title_changed(VteTerminal *terminal, gpointer data) - { - VteTerminalAccessible *accessible = (VteTerminalAccessible *)data; - -+ if (!vte_terminal_get_enable_a11y (terminal)) -+ return; -+ - atk_object_set_description(ATK_OBJECT(accessible), vte_terminal_get_window_title(terminal)); - } - -@@ -820,6 +835,9 @@ vte_terminal_accessible_visibility_notify(VteTerminal *terminal, - GtkWidget *widget; - gboolean visible; - -+ if (!vte_terminal_get_enable_a11y (terminal)) -+ return FALSE; -+ - visible = event->state != GDK_VISIBILITY_FULLY_OBSCURED; - /* The VISIBLE state indicates that this widget is "visible". */ - atk_object_notify_state_change(ATK_OBJECT(accessible), -@@ -851,6 +869,9 @@ vte_terminal_accessible_selection_changed (VteTerminal *terminal, - { - VteTerminalAccessible *accessible = (VteTerminalAccessible *)data; - -+ if (!vte_terminal_get_enable_a11y (terminal)) -+ return; -+ - g_signal_emit_by_name (accessible, "text_selection_changed"); - } - -diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index c713a95a..6ece18e9 100644 ---- a/src/vtegtk.cc -+++ b/src/vtegtk.cc -@@ -65,9 +65,11 @@ - #include - - #if WITH_A11Y --#if VTE_GTK == 3 --#include "vteaccess.h" --#endif /* VTE_GTK == 3 */ -+# if VTE_GTK == 3 -+# include "vteaccess.h" -+# elif VTE_GTK == 4 -+# include "vteaccess-gtk4.h" -+# endif - #endif /* WITH_A11Y */ - - #if WITH_ICU -@@ -155,6 +157,14 @@ private: - std::shared_ptr m_widget; - }; - -+#if defined(WITH_A11Y) && VTE_GTK == 4 -+# define VTE_IMPLEMENT_ACCESSIBLE \ -+ G_IMPLEMENT_INTERFACE(GTK_TYPE_ACCESSIBLE_TEXT, \ -+ _vte_accessible_text_iface_init) -+#else -+# define VTE_IMPLEMENT_ACCESSIBLE -+#endif -+ - #if VTE_DEBUG - G_DEFINE_TYPE_WITH_CODE(VteTerminal, vte_terminal, GTK_TYPE_WIDGET, - { -@@ -163,6 +173,7 @@ G_DEFINE_TYPE_WITH_CODE(VteTerminal, vte_terminal, GTK_TYPE_WIDGET, - } - g_type_add_class_private (g_define_type_id, sizeof (VteTerminalClassPrivate)); - G_IMPLEMENT_INTERFACE(GTK_TYPE_SCROLLABLE, nullptr) -+ VTE_IMPLEMENT_ACCESSIBLE - if (_vte_debug_on(VTE_DEBUG_LIFECYCLE)) { - g_printerr("vte_terminal_get_type()\n"); - }) -@@ -173,7 +184,8 @@ G_DEFINE_TYPE_WITH_CODE(VteTerminal, vte_terminal, GTK_TYPE_WIDGET, - g_type_add_instance_private(g_define_type_id, sizeof(VteTerminalPrivate)); - } - g_type_add_class_private (g_define_type_id, sizeof (VteTerminalClassPrivate)); -- G_IMPLEMENT_INTERFACE(GTK_TYPE_SCROLLABLE, nullptr)) -+ G_IMPLEMENT_INTERFACE(GTK_TYPE_SCROLLABLE, nullptr) -+ VTE_IMPLEMENT_ACCESSIBLE) - #endif - - static inline auto -@@ -901,6 +913,10 @@ try - gtk_widget_set_has_window(&terminal->widget, FALSE); - #endif - -+#if defined(WITH_A11Y) && VTE_GTK == 4 -+ _vte_accessible_text_init (GTK_ACCESSIBLE_TEXT (terminal)); -+#endif -+ - place = vte_terminal_get_instance_private(terminal); - new (place) VteTerminalPrivate{terminal}; - } -@@ -1017,6 +1033,9 @@ try - case PROP_DELETE_BINDING: - g_value_set_enum (value, widget->delete_binding()); - break; -+ case PROP_ENABLE_A11Y: -+ g_value_set_boolean (value, vte_terminal_get_enable_a11y (terminal)); -+ break; - case PROP_ENABLE_BIDI: - g_value_set_boolean (value, vte_terminal_get_enable_bidi (terminal)); - break; -@@ -1172,6 +1191,9 @@ try - case PROP_DELETE_BINDING: - vte_terminal_set_delete_binding (terminal, (VteEraseBinding)g_value_get_enum (value)); - break; -+ case PROP_ENABLE_A11Y: -+ vte_terminal_set_enable_a11y (terminal, g_value_get_boolean (value)); -+ break; - case PROP_ENABLE_BIDI: - vte_terminal_set_enable_bidi (terminal, g_value_get_boolean (value)); - break; -@@ -2286,6 +2308,22 @@ vte_terminal_class_init(VteTerminalClass *klass) - VTE_ERASE_AUTO, - (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); - -+ /** -+ * VteTerminal:enable-a11y: -+ * -+ * Controls whether or not a11y is enabled for the widget. -+ * -+ * Since: 0.78 -+ */ -+ pspecs[PROP_ENABLE_A11Y] = -+ g_param_spec_boolean ("enable-a11y", NULL, NULL, -+#if VTE_GTK == 3 -+ TRUE, -+#else -+ FALSE, -+#endif -+ (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); -+ - /** - * VteTerminal:enable-bidi: - * -@@ -2712,10 +2750,12 @@ vte_terminal_class_init(VteTerminalClass *klass) - err.assert_no_error(); - #endif - --#if VTE_GTK == 3 - #if WITH_A11Y -+#if VTE_GTK == 3 - /* a11y */ - gtk_widget_class_set_accessible_type(widget_class, VTE_TYPE_TERMINAL_ACCESSIBLE); -+#elif VTE_GTK == 4 -+ gtk_widget_class_set_accessible_role(widget_class, GTK_ACCESSIBLE_ROLE_TERMINAL); - #endif - #endif - } -@@ -5709,6 +5749,53 @@ catch (...) - vte::log_exception(); - } - -+/** -+ * vte_terminal_get_enable_a11y: -+ * @terminal: a #VteTerminal -+ * -+ * Checks whether the terminal communicates with a11y backends -+ * -+ * Returns: %TRUE if a11y is enabled, %FALSE if not -+ * -+ * Since: 0.78 -+ */ -+gboolean -+vte_terminal_get_enable_a11y(VteTerminal *terminal) noexcept -+try -+{ -+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), false); -+ return IMPL(terminal)->m_enable_a11y; -+} -+catch (...) -+{ -+ vte::log_exception(); -+ return false; -+} -+ -+/** -+ * vte_terminal_set_enable_a11y: -+ * @terminal: a #VteTerminal -+ * @enable_a11y: %TRUE to enable a11y support -+ * -+ * Controls whether or not the terminal will communicate with a11y backends. -+ * -+ * Since: 0.78 -+ */ -+void -+vte_terminal_set_enable_a11y(VteTerminal *terminal, -+ gboolean enable_a11y) noexcept -+try -+{ -+ g_return_if_fail(VTE_IS_TERMINAL(terminal)); -+ -+ if (IMPL(terminal)->set_enable_a11y(enable_a11y != FALSE)) -+ g_object_notify_by_pspec(G_OBJECT(terminal), pspecs[PROP_ENABLE_A11Y]); -+} -+catch (...) -+{ -+ vte::log_exception(); -+} -+ - /** - * vte_terminal_get_enable_bidi: - * @terminal: a #VteTerminal -diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 566c8508..87259680 100644 ---- a/src/vtegtk.hh -+++ b/src/vtegtk.hh -@@ -80,6 +80,7 @@ enum { - PROP_CURRENT_DIRECTORY_URI, - PROP_CURRENT_FILE_URI, - PROP_DELETE_BINDING, -+ PROP_ENABLE_A11Y, - PROP_ENABLE_BIDI, - PROP_ENABLE_FALLBACK_SCROLLING, - PROP_ENABLE_SHAPING, -diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 07a9e993..6e2c2e7f 100644 ---- a/src/vteinternal.hh -+++ b/src/vteinternal.hh -@@ -799,6 +799,13 @@ public: - const char *m_hyperlink_hover_uri; /* data is owned by the ring */ - long m_hyperlink_auto_id{0}; - -+ /* Accessibility support */ -+#if VTE_GTK == 3 -+ bool m_enable_a11y{true}; -+#elif VTE_GTK == 4 -+ bool m_enable_a11y{false}; -+#endif -+ - /* RingView and friends */ - vte::base::RingView m_ringview; - bool m_enable_bidi{true}; -@@ -1528,6 +1535,7 @@ public: - bool set_cursor_style(CursorStyle style); - bool set_delete_binding(EraseMode binding); - auto delete_binding() const noexcept { return m_delete_binding; } -+ bool set_enable_a11y(bool setting); - bool set_enable_bidi(bool setting); - bool set_enable_shaping(bool setting); - bool set_encoding(char const* codeset, --- -2.43.1 - diff --git a/0001-add-notification-and-shell-precmd-preexec.patch b/0001-add-notification-and-shell-precmd-preexec.patch deleted file mode 100644 index ffc02b2..0000000 --- a/0001-add-notification-and-shell-precmd-preexec.patch +++ /dev/null @@ -1,533 +0,0 @@ -From f31af265a19a406cd193a82b96dff1dd2e4595b4 Mon Sep 17 00:00:00 2001 -From: Christian Hergert -Date: Mon, 4 Mar 2024 14:03:38 -0800 -Subject: [PATCH] add notification and shell precmd/preexec - -This is a bit simpler to manage as a single patch rather than a series of -patches which incrementally update things. - -This alters some of the original patches so that we don't need to have -such careful integration with the vtable of the class as that isn't used. - -You can always connect to the signal rather than the vtable default func. ---- - src/marshal.list | 1 + - src/vte.cc | 28 +++++++++ - src/vte.sh.in | 7 ++- - src/vte/vteterminal.h | 4 ++ - src/vtegtk.cc | 131 ++++++++++++++++++++++++++++++++++++++++++ - src/vtegtk.hh | 5 ++ - src/vteinternal.hh | 26 +++++++++ - src/vteseq.cc | 123 ++++++++++++++++++++++++++++++++++++++- - 8 files changed, 322 insertions(+), 3 deletions(-) - -diff --git a/src/marshal.list b/src/marshal.list -index 241128c3..f9b3818f 100644 ---- a/src/marshal.list -+++ b/src/marshal.list -@@ -1,3 +1,4 @@ - VOID:STRING,BOXED - VOID:STRING,UINT -+VOID:STRING,STRING - VOID:UINT,UINT -diff --git a/src/vte.cc b/src/vte.cc -index 2cba7369..a8a0e22c 100644 ---- a/src/vte.cc -+++ b/src/vte.cc -@@ -10771,6 +10771,34 @@ Terminal::emit_pending_signals() - - emit_adjustment_changed(); - -+ 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()); -+ } -+ -+ 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); -+ } -+ -+ 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); -+ } -+ -+ 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]); -+ } -+ - 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 2328a9ec..93f45ea8 100644 ---- a/src/vte.sh.in -+++ b/src/vte.sh.in -@@ -28,6 +28,12 @@ case "$TERM" in - *) return 0 ;; - esac - -+__vte_shell_precmd() { -+ local command=$(HISTTIMEFORMAT= history 1 | sed 's/^ *[0-9]\+ *//') -+ command="${command//;/ }" -+ printf '\033]777;notify;Command completed;%s\033\\\033]777;precmd\033\\' "${command}" -+} -+ - __vte_osc7 () { - printf "\033]7;file://%s%s\033\\" "${HOSTNAME}" "$(@libexecdir@/vte-urlencode-cwd)" - } -@@ -37,6 +43,7 @@ __vte_prompt_command() { - [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} - pwd="${pwd//[[:cntrl:]]}" - printf "\033]0;%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${pwd}" -+ __vte_shell_precmd - __vte_osc7 - } - -@@ -49,9 +56,12 @@ if [[ -n "${BASH_VERSION:-}" ]]; then - # use the __vte_prompt_command function which also sets the title. - - if [[ "$(declare -p PROMPT_COMMAND 2>&1)" =~ "declare -a" ]]; then -+ PROMPT_COMMAND+=(__vte_shell_precmd) - PROMPT_COMMAND+=(__vte_osc7) -+ PS0=$(printf "\033]777;preexec\033\\") - else - PROMPT_COMMAND="__vte_prompt_command" -+ PS0=$(printf "\033]777;preexec\033\\") - fi - - # Shell integration -diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index a9e1e494..9c2e2dae 100644 ---- a/src/vte/vteterminal.h -+++ b/src/vte/vteterminal.h -@@ -559,6 +559,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 -+const char *vte_terminal_get_current_container_name(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); -+_VTE_PUBLIC -+const char *vte_terminal_get_current_container_runtime(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); -+_VTE_PUBLIC - const char *vte_terminal_get_current_directory_uri(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); - _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 92eb6881..c713a95a 100644 ---- a/src/vtegtk.cc -+++ b/src/vtegtk.cc -@@ -999,6 +999,12 @@ try - case PROP_CURSOR_BLINK_MODE: - g_value_set_enum (value, vte_terminal_get_cursor_blink_mode (terminal)); - break; -+ case PROP_CURRENT_CONTAINER_NAME: -+ g_value_set_string (value, vte_terminal_get_current_container_name (terminal)); -+ break; -+ case PROP_CURRENT_CONTAINER_RUNTIME: -+ g_value_set_string (value, vte_terminal_get_current_container_runtime (terminal)); -+ break; - case PROP_CURRENT_DIRECTORY_URI: - g_value_set_string (value, vte_terminal_get_current_directory_uri (terminal)); - break; -@@ -1434,6 +1440,60 @@ vte_terminal_class_init(VteTerminalClass *klass) - G_OBJECT_CLASS_TYPE(klass), - g_cclosure_marshal_VOID__INTv); - -+ /** -+ * VteTerminal::notification-received: -+ * @vteterminal: the object which received the signal -+ * @summary: The summary -+ * @body: (allow-none): Extra optional text -+ * -+ * Emitted when a process running in the terminal wants to -+ * send a notification to the desktop environment. -+ */ -+ signals[SIGNAL_NOTIFICATION_RECEIVED] = -+ g_signal_new(I_("notification-received"), -+ G_OBJECT_CLASS_TYPE(klass), -+ G_SIGNAL_RUN_LAST, -+ 0, -+ NULL, -+ NULL, -+ _vte_marshal_VOID__STRING_STRING, -+ G_TYPE_NONE, -+ 2, G_TYPE_STRING, G_TYPE_STRING); -+ -+ /** -+ * VteTerminal::shell-precmd: -+ * @vteterminal: the object which received the signal -+ * -+ * Emitted right before an interactive shell shows a -+ * first-level prompt. -+ */ -+ signals[SIGNAL_SHELL_PRECMD] = -+ g_signal_new(I_("shell-precmd"), -+ G_OBJECT_CLASS_TYPE(klass), -+ G_SIGNAL_RUN_LAST, -+ 0, -+ NULL, -+ NULL, -+ g_cclosure_marshal_VOID__VOID, -+ G_TYPE_NONE, 0); -+ -+ /** -+ * VteTerminal::shell-preexec: -+ * @vteterminal: the object which received the signal -+ * -+ * Emitted when the interactive shell has read in a complete -+ * command and is about to execute it. -+ */ -+ signals[SIGNAL_SHELL_PREEXEC] = -+ g_signal_new(I_("shell-preexec"), -+ G_OBJECT_CLASS_TYPE(klass), -+ G_SIGNAL_RUN_LAST, -+ 0, -+ NULL, -+ NULL, -+ g_cclosure_marshal_VOID__VOID, -+ G_TYPE_NONE, 0); -+ - /** - * VteTerminal::window-title-changed: - * @vteterminal: the object which received the signal -@@ -2487,6 +2547,27 @@ vte_terminal_class_init(VteTerminalClass *klass) - NULL, - (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); - -+ /** -+ * VteTerminal:current-container-name: -+ * -+ * The name of the current container, or %NULL if unset. -+ */ -+ pspecs[PROP_CURRENT_CONTAINER_NAME] = -+ g_param_spec_string ("current-container-name", NULL, NULL, -+ NULL, -+ (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); -+ -+ /** -+ * VteTerminal:current-container-runtime: -+ * -+ * The name of the runtime toolset used to set up the current -+ * container, or %NULL if unset. -+ */ -+ pspecs[PROP_CURRENT_CONTAINER_RUNTIME] = -+ g_param_spec_string ("current-container-runtime", NULL, NULL, -+ NULL, -+ (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY)); -+ - /** - * VteTerminal:current-directory-uri: - * -@@ -5419,6 +5500,56 @@ catch (...) - return -1; - } - -+/** -+ * vte_terminal_get_current_container_name: -+ * @terminal: a #VteTerminal -+ * -+ * Returns: (nullable) (transfer none): the name of the current -+ * container, or %NULL -+ */ -+const char * -+vte_terminal_get_current_container_name(VteTerminal *terminal) noexcept -+try -+{ -+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL); -+ auto impl = IMPL(terminal); -+ if (impl->m_containers.empty()) -+ return NULL; -+ -+ const VteContainer &container = impl->m_containers.top(); -+ return container.m_name.c_str(); -+} -+catch (...) -+{ -+ vte::log_exception(); -+ return NULL; -+} -+ -+/** -+ * vte_terminal_get_current_container_runtime: -+ * @terminal: a #VteTerminal -+ * -+ * Returns: (nullable) (transfer none): the name of the runtime -+ * toolset used to set up the current container, or %NULL -+ */ -+const char * -+vte_terminal_get_current_container_runtime(VteTerminal *terminal) noexcept -+try -+{ -+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL); -+ auto impl = IMPL(terminal); -+ if (impl->m_containers.empty()) -+ return NULL; -+ -+ const VteContainer &container = impl->m_containers.top(); -+ return container.m_runtime.c_str(); -+} -+catch (...) -+{ -+ vte::log_exception(); -+ return NULL; -+} -+ - /** - * vte_terminal_get_current_directory_uri: - * @terminal: a #VteTerminal -diff --git a/src/vtegtk.hh b/src/vtegtk.hh -index 1d1383af..566c8508 100644 ---- a/src/vtegtk.hh -+++ b/src/vtegtk.hh -@@ -53,6 +53,9 @@ enum { - SIGNAL_RESTORE_WINDOW, - SIGNAL_SELECTION_CHANGED, - SIGNAL_SETUP_CONTEXT_MENU, -+ SIGNAL_SHELL_PRECMD, -+ SIGNAL_SHELL_PREEXEC, -+ SIGNAL_NOTIFICATION_RECEIVED, - SIGNAL_WINDOW_TITLE_CHANGED, - LAST_SIGNAL - }; -@@ -72,6 +75,8 @@ enum { - PROP_CONTEXT_MENU, - PROP_CURSOR_BLINK_MODE, - PROP_CURSOR_SHAPE, -+ PROP_CURRENT_CONTAINER_NAME, -+ PROP_CURRENT_CONTAINER_RUNTIME, - PROP_CURRENT_DIRECTORY_URI, - PROP_CURRENT_FILE_URI, - PROP_DELETE_BINDING, -diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index ed57ad16..07a9e993 100644 ---- a/src/vteinternal.hh -+++ b/src/vteinternal.hh -@@ -63,6 +63,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -121,6 +122,18 @@ typedef enum _VteCharacterReplacement { - VTE_CHARACTER_REPLACEMENT_LINE_DRAWING - } VteCharacterReplacement; - -+struct VteContainer { -+public: -+ VteContainer(const std::string &name, const std::string &runtime) : -+ m_name{name}, -+ m_runtime{runtime} -+ { -+ } -+ -+ std::string m_name; -+ std::string m_runtime; -+}; -+ - typedef struct _VtePaletteColor { - struct { - vte::color::rgb color; -@@ -710,6 +723,12 @@ public: - gboolean m_cursor_moved_pending; - gboolean m_contents_changed_pending; - -+ /* desktop notification */ -+ std::stack m_containers; -+ -+ 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{}; -@@ -723,6 +742,10 @@ public: - TITLE = 1u << 0, - CWD = 1u << 1, - CWF = 1u << 2, -+ NOTIFICATION = 1u << 4, -+ SHELL_PREEXEC = 1u << 5, -+ SHELL_PRECMD = 1u << 6, -+ CONTAINERS = 1u << 7, - }; - unsigned m_pending_changes{0}; - -@@ -1654,6 +1677,9 @@ public: - int osc) noexcept; - - /* OSC handlers */ -+ void handle_urxvt_extension(vte::parser::Sequence const& seq, -+ vte::parser::StringTokeniser::const_iterator& token, -+ vte::parser::StringTokeniser::const_iterator const& endtoken) noexcept; - void set_color(vte::parser::Sequence const& seq, - vte::parser::StringTokeniser::const_iterator& token, - vte::parser::StringTokeniser::const_iterator const& endtoken, -diff --git a/src/vteseq.cc b/src/vteseq.cc -index 904837e1..26f7b0d6 100644 ---- a/src/vteseq.cc -+++ b/src/vteseq.cc -@@ -39,6 +39,9 @@ - #define ST_C0 _VTE_CAP_ST - - #include -+#include -+#include -+#include - - using namespace std::literals; - -@@ -1276,6 +1279,121 @@ Terminal::erase_in_line(vte::parser::Sequence const& seq) - m_text_deleted_flag = TRUE; - } - -+void -+Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, -+ vte::parser::StringTokeniser::const_iterator& token, -+ vte::parser::StringTokeniser::const_iterator const& endtoken) noexcept -+{ -+ if (token == endtoken) -+ return; -+ -+ if (*token == "container") { -+ ++token; -+ -+ if (token == endtoken) -+ return; -+ -+ const std::string sub_command = *token; -+ ++token; -+ -+ if (sub_command == "pop") { -+ if (token == endtoken) -+ return; -+ -+ ++token; -+ -+ if (token == endtoken) -+ return; -+ -+ ++token; -+ -+ if (token == endtoken) { -+ if (!m_containers.empty()) { -+ m_containers.pop(); -+ m_pending_changes |= vte::to_integral(PendingChanges::CONTAINERS); -+ } -+ -+ return; -+ } -+ -+ const std::string uid_token = *token; -+ ++token; -+ -+ const uid_t uid = getuid(); -+ const std::string uid_str = std::to_string(uid); -+ -+ if (uid_token == uid_str) { -+ if (!m_containers.empty()) { -+ m_containers.pop(); -+ m_pending_changes |= vte::to_integral(PendingChanges::CONTAINERS); -+ } -+ -+ return; -+ } -+ -+ return; -+ } else if (sub_command == "push") { -+ if (token == endtoken) -+ return; -+ -+ const std::string name = *token; -+ ++token; -+ -+ if (token == endtoken) -+ return; -+ -+ const std::string runtime = *token; -+ ++token; -+ -+ if (token == endtoken) { -+ m_containers.emplace(name, runtime); -+ m_pending_changes |= vte::to_integral(PendingChanges::CONTAINERS); -+ return; -+ } -+ -+ const std::string uid_token = *token; -+ ++token; -+ -+ const uid_t uid = getuid(); -+ const std::string uid_str = std::to_string(uid); -+ -+ if (uid_token == uid_str) { -+ m_containers.emplace(name, runtime); -+ m_pending_changes |= vte::to_integral(PendingChanges::CONTAINERS); -+ return; -+ } -+ -+ return; -+ } -+ -+ return; -+ } -+ -+ if (*token == "notify") { -+ ++token; -+ -+ if (token == endtoken) -+ return; -+ -+ m_notification_summary = *token; -+ m_notification_body.clear(); -+ m_pending_changes |= vte::to_integral(PendingChanges::NOTIFICATION); -+ ++token; -+ -+ if (token == endtoken) -+ return; -+ -+ m_notification_body = *token; -+ return; -+ } -+ -+ if (*token == "precmd") { -+ m_pending_changes |= vte::to_integral(PendingChanges::SHELL_PRECMD); -+ } else if (*token == "preexec") { -+ m_pending_changes |= vte::to_integral(PendingChanges::SHELL_PREEXEC); -+ } -+} -+ - bool - Terminal::get_osc_color_index(int osc, - int value, -@@ -6596,6 +6714,10 @@ Terminal::OSC(vte::parser::Sequence const& seq) - reset_color(VTE_HIGHLIGHT_FG, VTE_COLOR_SOURCE_ESCAPE); - break; - -+ case VTE_OSC_URXVT_EXTENSION: -+ handle_urxvt_extension(seq, it, cend); -+ break; -+ - case VTE_OSC_XTERM_SET_ICON_TITLE: - case VTE_OSC_XTERM_SET_XPROPERTY: - case VTE_OSC_XTERM_SET_COLOR_MOUSE_CURSOR_FG: -@@ -6636,7 +6758,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: -- case VTE_OSC_URXVT_EXTENSION: - case VTE_OSC_YF_RQGWR: - default: - break; --- -2.43.1 - diff --git a/sources b/sources index d612df3..fa7f814 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.76.3.tar.xz) = 59cf3241f59b7ce795098814a04816d150330e4464a2438c974ac03cfd6aa05e7e037121a6a21929d6b12eb17fb1a4bf48c936604f0e0b770e3f125adb5a4c50 +SHA512 (vte-0.77.0.tar.bz2) = de82ca7a94d06efa61cfcd9ef3b88e9c6877c8049e05248c9e1f6ee22d80ac71558d102c034fef5437c3adde460a77e669fbc67d56ec197f33a2eee545e2a8b0 diff --git a/vte.sh-forward-port-notify-prexec-precmd.patch b/vte.sh-forward-port-notify-prexec-precmd.patch new file mode 100644 index 0000000..e9f7d97 --- /dev/null +++ b/vte.sh-forward-port-notify-prexec-precmd.patch @@ -0,0 +1,50 @@ +From 2b4049e1ecb47e41a4cc3eec58d22a02f14cfca5 Mon Sep 17 00:00:00 2001 +From: Christian Hergert +Date: Mon, 24 Jun 2024 12:53:35 -0700 +Subject: [PATCH 2/2] vte.sh: forward-port notify/prexec/precmd + +This brings forward the patches Fedora previously had to notify of the +command with precmd/preexec. They currently only affect bash. +--- + src/vte.sh.in | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/src/vte.sh.in b/src/vte.sh.in +index 2328a9ec..40cacd4f 100644 +--- a/src/vte.sh.in ++++ b/src/vte.sh.in +@@ -32,11 +32,18 @@ __vte_osc7 () { + printf "\033]7;file://%s%s\033\\" "${HOSTNAME}" "$(@libexecdir@/vte-urlencode-cwd)" + } + ++__vte_shell_precmd() { ++ local command=$(HISTTIMEFORMAT= history 1 | sed 's/^ *[0-9]\+ *//') ++ command="${command//;/ }" ++ printf '\033]777;notify;Command completed;%s\033\\\033]777;precmd\033\\' "${command}" ++} ++ + __vte_prompt_command() { + local pwd='~' + [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} + pwd="${pwd//[[:cntrl:]]}" + printf "\033]0;%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${pwd}" ++ __vte_shell_precmd + __vte_osc7 + } + +@@ -49,9 +56,12 @@ if [[ -n "${BASH_VERSION:-}" ]]; then + # use the __vte_prompt_command function which also sets the title. + + if [[ "$(declare -p PROMPT_COMMAND 2>&1)" =~ "declare -a" ]]; then ++ PROMPT_COMMAND+=(__vte_shell_precmd) + PROMPT_COMMAND+=(__vte_osc7) ++ PS0=$(printf "\033]777;preexec\033\\") + else + PROMPT_COMMAND="__vte_prompt_command" ++ PS0=$(printf "\033]777;preexec\033\\") + fi + + # Shell integration +-- +2.45.1 + diff --git a/vte291.spec b/vte291.spec index ed3cba8..453a913 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,21 +11,20 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.76.3 -Release: 2%{?dist} -Summary: GTK+ 3 terminal emulator library +Version: 0.77.0 +Release: 1%{?dist} +Summary: GTK terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources License: GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND X11 AND CC-BY-4.0 URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://download.gnome.org/sources/vte/0.76/vte-%{version}.tar.xz +Source0: https://gitlab.gnome.org/GNOME/vte/-/archive/%{version}/vte-%{version}.tar.bz2 # 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 -Patch: 0001-a11y-implement-GtkAccessibleText.patch -Patch: 0001-add-notification-and-shell-precmd-preexec.patch +Patch: vte.sh-forward-port-notify-prexec-precmd.patch BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version} @@ -139,6 +138,7 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %license COPYING.LGPL3 %license COPYING.XTERM %doc README.md +%{_datadir}/vte-%{apiver}/ %{_libdir}/libvte-%{apiver}.so.0* %dir %{_libdir}/girepository-1.0 %{_libdir}/girepository-1.0/Vte-2.91.typelib @@ -180,6 +180,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Wed Jul 24 2024 David King - 0.77.0-1 +- Update to 0.77.0 + * Sat Jul 20 2024 Fedora Release Engineering - 0.76.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From fa0a95d88e5b7b248f139b040eab7f70411d611e Mon Sep 17 00:00:00 2001 From: David King Date: Thu, 8 Aug 2024 13:23:46 +0100 Subject: [PATCH 122/164] Update to 0.77.91 --- .gitignore | 1 + sources | 2 +- ...sh-forward-port-notify-prexec-precmd.patch | 50 ------------------- vte291.spec | 12 ++--- 4 files changed, 7 insertions(+), 58 deletions(-) delete mode 100644 vte.sh-forward-port-notify-prexec-precmd.patch diff --git a/.gitignore b/.gitignore index 1efe15b..e83efd5 100644 --- a/.gitignore +++ b/.gitignore @@ -102,3 +102,4 @@ /vte-0.76.2.tar.xz /vte-0.76.3.tar.xz /vte-0.77.0.tar.bz2 +/vte-0.77.91.tar.xz diff --git a/sources b/sources index fa7f814..ddbc8c9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.77.0.tar.bz2) = de82ca7a94d06efa61cfcd9ef3b88e9c6877c8049e05248c9e1f6ee22d80ac71558d102c034fef5437c3adde460a77e669fbc67d56ec197f33a2eee545e2a8b0 +SHA512 (vte-0.77.91.tar.xz) = 9aa3dd3d56fc3d7e383ebd9b14f88b217f0bf08f78de7894cc3f9fb57d22625a1cb0aa10dd2ebcc83041994732e2bc7e0cd59b215206afa05736c7715e563361 diff --git a/vte.sh-forward-port-notify-prexec-precmd.patch b/vte.sh-forward-port-notify-prexec-precmd.patch deleted file mode 100644 index e9f7d97..0000000 --- a/vte.sh-forward-port-notify-prexec-precmd.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 2b4049e1ecb47e41a4cc3eec58d22a02f14cfca5 Mon Sep 17 00:00:00 2001 -From: Christian Hergert -Date: Mon, 24 Jun 2024 12:53:35 -0700 -Subject: [PATCH 2/2] vte.sh: forward-port notify/prexec/precmd - -This brings forward the patches Fedora previously had to notify of the -command with precmd/preexec. They currently only affect bash. ---- - src/vte.sh.in | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/src/vte.sh.in b/src/vte.sh.in -index 2328a9ec..40cacd4f 100644 ---- a/src/vte.sh.in -+++ b/src/vte.sh.in -@@ -32,11 +32,18 @@ __vte_osc7 () { - printf "\033]7;file://%s%s\033\\" "${HOSTNAME}" "$(@libexecdir@/vte-urlencode-cwd)" - } - -+__vte_shell_precmd() { -+ local command=$(HISTTIMEFORMAT= history 1 | sed 's/^ *[0-9]\+ *//') -+ command="${command//;/ }" -+ printf '\033]777;notify;Command completed;%s\033\\\033]777;precmd\033\\' "${command}" -+} -+ - __vte_prompt_command() { - local pwd='~' - [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} - pwd="${pwd//[[:cntrl:]]}" - printf "\033]0;%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${pwd}" -+ __vte_shell_precmd - __vte_osc7 - } - -@@ -49,9 +56,12 @@ if [[ -n "${BASH_VERSION:-}" ]]; then - # use the __vte_prompt_command function which also sets the title. - - if [[ "$(declare -p PROMPT_COMMAND 2>&1)" =~ "declare -a" ]]; then -+ PROMPT_COMMAND+=(__vte_shell_precmd) - PROMPT_COMMAND+=(__vte_osc7) -+ PS0=$(printf "\033]777;preexec\033\\") - else - PROMPT_COMMAND="__vte_prompt_command" -+ PS0=$(printf "\033]777;preexec\033\\") - fi - - # Shell integration --- -2.45.1 - diff --git a/vte291.spec b/vte291.spec index 453a913..c075f59 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.77.0 +Version: 0.77.91 Release: 1%{?dist} Summary: GTK terminal emulator library @@ -19,12 +19,7 @@ Summary: GTK terminal emulator library License: GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND X11 AND CC-BY-4.0 URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://gitlab.gnome.org/GNOME/vte/-/archive/%{version}/vte-%{version}.tar.bz2 - -# 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 -Patch: vte.sh-forward-port-notify-prexec-precmd.patch +Source0: https://download.gnome.org/sources/vte/0.77/vte-%{version}.tar.xz BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version} @@ -180,6 +175,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Thu Aug 08 2024 David King - 0.77.91-1 +- Update to 0.77.91 + * Wed Jul 24 2024 David King - 0.77.0-1 - Update to 0.77.0 From 8032c9d401d9b71bc463609ece2e749eed4268fc Mon Sep 17 00:00:00 2001 From: Jens Petersen Date: Sat, 10 Aug 2024 14:01:37 +0800 Subject: [PATCH 123/164] fix vte.sh error: __vte_shell_precmd: command not found --- ...1614af6c50f51478ae8ecb623befa39c0ba7.patch | 28 +++++++++++++++++++ vte291.spec | 7 ++++- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 da681614af6c50f51478ae8ecb623befa39c0ba7.patch diff --git a/da681614af6c50f51478ae8ecb623befa39c0ba7.patch b/da681614af6c50f51478ae8ecb623befa39c0ba7.patch new file mode 100644 index 0000000..bd84ba2 --- /dev/null +++ b/da681614af6c50f51478ae8ecb623befa39c0ba7.patch @@ -0,0 +1,28 @@ +From da681614af6c50f51478ae8ecb623befa39c0ba7 Mon Sep 17 00:00:00 2001 +From: Christian Persch +Date: Thu, 8 Aug 2024 17:43:17 +0200 +Subject: [PATCH] vte.sh: Fix function name + +Fixes a regression from commit bbafeae5166a237df3eb832086bbf4914684cca7. + +Fixes: https://gitlab.gnome.org/GNOME/vte/-/issues/2803 +--- + src/vte.sh.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/vte.sh.in b/src/vte.sh.in +index 3985ef1b2..01dd063ae 100644 +--- a/src/vte.sh.in ++++ b/src/vte.sh.in +@@ -67,7 +67,7 @@ if [[ -n "${BASH_VERSION:-}" ]]; then + # use the __vte_prompt_command function which also sets the title. + + if [[ "$(declare -p PROMPT_COMMAND 2>&1)" =~ "declare -a" ]]; then +- PROMPT_COMMAND+=(__vte_shell_precmd) ++ PROMPT_COMMAND+=(__vte_precmd) + PROMPT_COMMAND+=(__vte_osc7) + PS0=$(__vte_termprop_signal "vte.shell.preexec") + else +-- +GitLab + diff --git a/vte291.spec b/vte291.spec index c075f59..0f8ca5e 100644 --- a/vte291.spec +++ b/vte291.spec @@ -12,7 +12,7 @@ Name: vte291 Version: 0.77.91 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -20,6 +20,8 @@ License: GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND X11 AND CC-BY URL: https://wiki.gnome.org/Apps/Terminal/VTE Source0: https://download.gnome.org/sources/vte/0.77/vte-%{version}.tar.xz +# https://gitlab.gnome.org/GNOME/vte/-/issues/2803 +Patch0: https://gitlab.gnome.org/GNOME/vte/-/commit/da681614af6c50f51478ae8ecb623befa39c0ba7.patch BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version} @@ -175,6 +177,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Sat Aug 10 2024 Jens Petersen - 0.77.91-2 +- fix vte.sh error: __vte_shell_precmd: command not found + * Thu Aug 08 2024 David King - 0.77.91-1 - Update to 0.77.91 From 01a66dbd32fce89d50aa72a8cbcb584976fb846a Mon Sep 17 00:00:00 2001 From: David King Date: Mon, 2 Sep 2024 18:58:55 +0100 Subject: [PATCH 124/164] Update to 0.77.92 --- .gitignore | 1 + ...1614af6c50f51478ae8ecb623befa39c0ba7.patch | 28 ------------------- sources | 2 +- vte291.spec | 9 ++---- 4 files changed, 5 insertions(+), 35 deletions(-) delete mode 100644 da681614af6c50f51478ae8ecb623befa39c0ba7.patch diff --git a/.gitignore b/.gitignore index e83efd5..ed9d730 100644 --- a/.gitignore +++ b/.gitignore @@ -103,3 +103,4 @@ /vte-0.76.3.tar.xz /vte-0.77.0.tar.bz2 /vte-0.77.91.tar.xz +/vte-0.77.92.tar.bz2 diff --git a/da681614af6c50f51478ae8ecb623befa39c0ba7.patch b/da681614af6c50f51478ae8ecb623befa39c0ba7.patch deleted file mode 100644 index bd84ba2..0000000 --- a/da681614af6c50f51478ae8ecb623befa39c0ba7.patch +++ /dev/null @@ -1,28 +0,0 @@ -From da681614af6c50f51478ae8ecb623befa39c0ba7 Mon Sep 17 00:00:00 2001 -From: Christian Persch -Date: Thu, 8 Aug 2024 17:43:17 +0200 -Subject: [PATCH] vte.sh: Fix function name - -Fixes a regression from commit bbafeae5166a237df3eb832086bbf4914684cca7. - -Fixes: https://gitlab.gnome.org/GNOME/vte/-/issues/2803 ---- - src/vte.sh.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/vte.sh.in b/src/vte.sh.in -index 3985ef1b2..01dd063ae 100644 ---- a/src/vte.sh.in -+++ b/src/vte.sh.in -@@ -67,7 +67,7 @@ if [[ -n "${BASH_VERSION:-}" ]]; then - # use the __vte_prompt_command function which also sets the title. - - if [[ "$(declare -p PROMPT_COMMAND 2>&1)" =~ "declare -a" ]]; then -- PROMPT_COMMAND+=(__vte_shell_precmd) -+ PROMPT_COMMAND+=(__vte_precmd) - PROMPT_COMMAND+=(__vte_osc7) - PS0=$(__vte_termprop_signal "vte.shell.preexec") - else --- -GitLab - diff --git a/sources b/sources index ddbc8c9..2f823e0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.77.91.tar.xz) = 9aa3dd3d56fc3d7e383ebd9b14f88b217f0bf08f78de7894cc3f9fb57d22625a1cb0aa10dd2ebcc83041994732e2bc7e0cd59b215206afa05736c7715e563361 +SHA512 (vte-0.77.92.tar.bz2) = b34a8cbef9be06601f2d9d7e065a52052172fffae66435811c41e4ef5505a01cd6b9cc511f29c37d208ba52c4772e656b88b9168d8915999299121be75b92d45 diff --git a/vte291.spec b/vte291.spec index 0f8ca5e..58a797c 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,17 +11,15 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.77.91 -Release: 2%{?dist} +Version: 0.77.92 +Release: 1%{?dist} Summary: GTK terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources License: GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND X11 AND CC-BY-4.0 URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://download.gnome.org/sources/vte/0.77/vte-%{version}.tar.xz -# https://gitlab.gnome.org/GNOME/vte/-/issues/2803 -Patch0: https://gitlab.gnome.org/GNOME/vte/-/commit/da681614af6c50f51478ae8ecb623befa39c0ba7.patch +Source0: https://gitlab.gnome.org/GNOME/vte/-/archive/%{version}/vte-%{version}.tar.bz2 BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version} @@ -135,7 +133,6 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %license COPYING.LGPL3 %license COPYING.XTERM %doc README.md -%{_datadir}/vte-%{apiver}/ %{_libdir}/libvte-%{apiver}.so.0* %dir %{_libdir}/girepository-1.0 %{_libdir}/girepository-1.0/Vte-2.91.typelib From 57f9b2f38bd6e353f0fac085bb4f1f5045986374 Mon Sep 17 00:00:00 2001 From: David King Date: Mon, 16 Sep 2024 09:20:39 +0100 Subject: [PATCH 125/164] Update to 0.78.0 --- .gitignore | 1 + sources | 2 +- vte291.spec | 9 ++++++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index ed9d730..624ebd7 100644 --- a/.gitignore +++ b/.gitignore @@ -104,3 +104,4 @@ /vte-0.77.0.tar.bz2 /vte-0.77.91.tar.xz /vte-0.77.92.tar.bz2 +/vte-0.78.0.tar.xz diff --git a/sources b/sources index 2f823e0..7b7476a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.77.92.tar.bz2) = b34a8cbef9be06601f2d9d7e065a52052172fffae66435811c41e4ef5505a01cd6b9cc511f29c37d208ba52c4772e656b88b9168d8915999299121be75b92d45 +SHA512 (vte-0.78.0.tar.xz) = 730f92f67cc896382c666f99f01ced4ff3192007e39a7c5701478de780df1399bdd6634c7c9300ff06df6574b1dff5af7d3d3bc1e395e9c7be311212d3bb313f diff --git a/vte291.spec b/vte291.spec index 58a797c..c812dad 100644 --- a/vte291.spec +++ b/vte291.spec @@ -1,7 +1,7 @@ %global apiver 2.91 %global fribidi_version 1.0.0 -%global glib2_version 2.52.0 +%global glib2_version 2.72.0 %global gnutls_version 3.2.7 %global gtk3_version 3.24.22 %global gtk4_version 4.14.0 @@ -11,7 +11,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.77.92 +Version: 0.78.0 Release: 1%{?dist} Summary: GTK terminal emulator library @@ -19,7 +19,7 @@ Summary: GTK terminal emulator library License: GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND X11 AND CC-BY-4.0 URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://gitlab.gnome.org/GNOME/vte/-/archive/%{version}/vte-%{version}.tar.bz2 +Source0: https://download.gnome.org/sources/vte/0.78/vte-%{version}.tar.xz BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version} @@ -174,6 +174,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Sep 16 2024 David King - 0.78.0-1 +- Update to 0.78.0 + * Sat Aug 10 2024 Jens Petersen - 0.77.91-2 - fix vte.sh error: __vte_shell_precmd: command not found From 18463db196816900fb214921a8d2ba7bbe875a8f Mon Sep 17 00:00:00 2001 From: nmontero Date: Tue, 22 Oct 2024 11:10:04 +0200 Subject: [PATCH 126/164] Update to 0.78.1 --- .gitignore | 1 + sources | 2 +- vte291.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 624ebd7..1632bae 100644 --- a/.gitignore +++ b/.gitignore @@ -105,3 +105,4 @@ /vte-0.77.91.tar.xz /vte-0.77.92.tar.bz2 /vte-0.78.0.tar.xz +/vte-0.78.1.tar.xz diff --git a/sources b/sources index 7b7476a..714b0f8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.78.0.tar.xz) = 730f92f67cc896382c666f99f01ced4ff3192007e39a7c5701478de780df1399bdd6634c7c9300ff06df6574b1dff5af7d3d3bc1e395e9c7be311212d3bb313f +SHA512 (vte-0.78.1.tar.xz) = e709cf1d721c8082b9758e34d7ee5a553145886719311cff25243d7bfd734002a7b7ccfb9c98870a600eda726568a11728934974a1fc31ce22072d43302bbcf1 diff --git a/vte291.spec b/vte291.spec index c812dad..98023ec 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.78.0 +Version: 0.78.1 Release: 1%{?dist} Summary: GTK terminal emulator library @@ -174,6 +174,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Tue Oct 22 2024 nmontero - 0.78.1-1 +- Update to 0.78.1 + * Mon Sep 16 2024 David King - 0.78.0-1 - Update to 0.78.0 From 88eceed35b34665194575c966c64efde27de0b09 Mon Sep 17 00:00:00 2001 From: nmontero Date: Mon, 25 Nov 2024 11:01:27 +0100 Subject: [PATCH 127/164] Update to 0.78.2 --- .gitignore | 1 + sources | 2 +- vte291.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 1632bae..c53b49b 100644 --- a/.gitignore +++ b/.gitignore @@ -106,3 +106,4 @@ /vte-0.77.92.tar.bz2 /vte-0.78.0.tar.xz /vte-0.78.1.tar.xz +/vte-0.78.2.tar.xz diff --git a/sources b/sources index 714b0f8..69932f0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.78.1.tar.xz) = e709cf1d721c8082b9758e34d7ee5a553145886719311cff25243d7bfd734002a7b7ccfb9c98870a600eda726568a11728934974a1fc31ce22072d43302bbcf1 +SHA512 (vte-0.78.2.tar.xz) = 70c1e7d4bcab89a4b537d4575166c62063d6f722dd53c0970b6dcc277ff731bc05854f1ccb45d9679ad195bc31f2e7ee89cbf022109b8030bf01a2100c5dcb4e diff --git a/vte291.spec b/vte291.spec index 98023ec..8fc0333 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.78.1 +Version: 0.78.2 Release: 1%{?dist} Summary: GTK terminal emulator library @@ -174,6 +174,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Nov 25 2024 nmontero - 0.78.2-1 +- Update to 0.78.2 + * Tue Oct 22 2024 nmontero - 0.78.1-1 - Update to 0.78.1 From a58e321c2509c8c5c3236d13c69648bbc650c3e1 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Sun, 8 Dec 2024 23:02:30 +0000 Subject: [PATCH 128/164] Rebuild for ICU 76 --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index 8fc0333..957740d 100644 --- a/vte291.spec +++ b/vte291.spec @@ -12,7 +12,7 @@ Name: vte291 Version: 0.78.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -174,6 +174,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Sun Dec 08 2024 Pete Walter - 0.78.2-2 +- Rebuild for ICU 76 + * Mon Nov 25 2024 nmontero - 0.78.2-1 - Update to 0.78.2 From 78342feb2fd9dba38b0137598f0a5f43f7c41ce2 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 19 Jan 2025 14:39:34 +0000 Subject: [PATCH 129/164] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- vte291.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index 957740d..21c8635 100644 --- a/vte291.spec +++ b/vte291.spec @@ -12,7 +12,7 @@ Name: vte291 Version: 0.78.2 -Release: 2%{?dist} +Release: 3%{?dist} Summary: GTK terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -174,6 +174,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Sun Jan 19 2025 Fedora Release Engineering - 0.78.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Sun Dec 08 2024 Pete Walter - 0.78.2-2 - Rebuild for ICU 76 From 90bb28c7ab51d244b31741332cce8fb32abe5309 Mon Sep 17 00:00:00 2001 From: nmontero Date: Wed, 12 Feb 2025 13:45:49 +0100 Subject: [PATCH 130/164] Update to 0.79.0 --- .gitignore | 2 ++ sources | 2 +- vte291.spec | 15 ++++++++++++--- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index c53b49b..96fc891 100644 --- a/.gitignore +++ b/.gitignore @@ -107,3 +107,5 @@ /vte-0.78.0.tar.xz /vte-0.78.1.tar.xz /vte-0.78.2.tar.xz +/vte-0.79.90.tar.xz +/vte-0.79.0.tar.xz diff --git a/sources b/sources index 69932f0..9b5a836 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.78.2.tar.xz) = 70c1e7d4bcab89a4b537d4575166c62063d6f722dd53c0970b6dcc277ff731bc05854f1ccb45d9679ad195bc31f2e7ee89cbf022109b8030bf01a2100c5dcb4e +SHA512 (vte-0.79.0.tar.xz) = 866466883d171667638b6310059e1ed7d8f32fc53b388cbf1900087e472c79f325e7a55c3923a05c93871409938fdaf644d7d9602e65fc013e340f2c4bcc47be diff --git a/vte291.spec b/vte291.spec index 21c8635..8648050 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,15 +11,15 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.78.2 -Release: 3%{?dist} +Version: 0.79.0 +Release: 1%{?dist} Summary: GTK terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources License: GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND X11 AND CC-BY-4.0 URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://download.gnome.org/sources/vte/0.78/vte-%{version}.tar.xz +Source0: https://download.gnome.org/sources/vte/0.79/vte-%{version}.tar.xz BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version} @@ -33,6 +33,7 @@ BuildRequires: pkgconfig(liblz4) BuildRequires: pkgconfig(libpcre2-8) >= %{pcre2_version} BuildRequires: pkgconfig(libsystemd) >= %{libsystemd_version} BuildRequires: pkgconfig(pango) >= %{pango_version} +BuildRequires: fast_float-devel BuildRequires: gcc-c++ BuildRequires: gettext BuildRequires: gi-docgen @@ -137,6 +138,11 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %dir %{_libdir}/girepository-1.0 %{_libdir}/girepository-1.0/Vte-2.91.typelib %{_userunitdir}/vte-spawn-.scope.d +%{_datadir}/vte-2.91/terminfo/x/xterm-256color +%{_datadir}/applications/vte-gtk3.desktop +%{_datadir}/xdg-terminals/vte-gtk3.desktop +%{_datadir}/applications/vte-gtk4.desktop +%{_datadir}/xdg-terminals/vte-gtk4.desktop %files gtk4 %{_libdir}/libvte-%{apiver}-gtk4.so.0* @@ -174,6 +180,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Wed Feb 12 2025 nmontero - 0.79.90-1 +- Update to 0.79.0 + * Sun Jan 19 2025 Fedora Release Engineering - 0.78.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From f9655828a504c378cb2b1244fead1c9a7d0a8374 Mon Sep 17 00:00:00 2001 From: nmontero Date: Wed, 19 Feb 2025 10:16:01 +0100 Subject: [PATCH 131/164] Update to 0.79.90 --- sources | 2 +- vte291.spec | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/sources b/sources index 9b5a836..14edc8e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.79.0.tar.xz) = 866466883d171667638b6310059e1ed7d8f32fc53b388cbf1900087e472c79f325e7a55c3923a05c93871409938fdaf644d7d9602e65fc013e340f2c4bcc47be +SHA512 (vte-0.79.90.tar.xz) = 1c35c74a321287c48bab520cbd8ad6ad823673d68d1ca8cea45cd3823b4121fb92f3cd860db7fdf033a614d2594d2ce1a87107b31bed08d451b2d89b03e29d2c diff --git a/vte291.spec b/vte291.spec index 8648050..dbc191a 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.79.0 +Version: 0.79.90 Release: 1%{?dist} Summary: GTK terminal emulator library @@ -180,6 +180,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Wed Feb 19 2025 nmontero - 0.79.90-1 +- Update to 0.79.90 + * Wed Feb 12 2025 nmontero - 0.79.90-1 - Update to 0.79.0 From 52e95a76a4de125da05f9ff3f2dba7587dba4d8d Mon Sep 17 00:00:00 2001 From: nmontero Date: Wed, 5 Mar 2025 17:31:13 +0100 Subject: [PATCH 132/164] Update to 0.79.91 --- .gitignore | 1 + sources | 2 +- vte291.spec | 14 ++++++++------ 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 96fc891..3c3b1ac 100644 --- a/.gitignore +++ b/.gitignore @@ -109,3 +109,4 @@ /vte-0.78.2.tar.xz /vte-0.79.90.tar.xz /vte-0.79.0.tar.xz +/vte-0.79.91.tar.xz diff --git a/sources b/sources index 14edc8e..3434a9e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.79.90.tar.xz) = 1c35c74a321287c48bab520cbd8ad6ad823673d68d1ca8cea45cd3823b4121fb92f3cd860db7fdf033a614d2594d2ce1a87107b31bed08d451b2d89b03e29d2c +SHA512 (vte-0.79.91.tar.xz) = ce916fde3dd85f9bd37696ed1f305b0f076806c75cd1f4006396d734b3cde241a9c3fb1ac14a8922ec505ab826d4a3d34fedce7c2f1ff6772c24c41b273791ac diff --git a/vte291.spec b/vte291.spec index dbc191a..6602d71 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.79.90 +Version: 0.79.91 Release: 1%{?dist} Summary: GTK terminal emulator library @@ -138,11 +138,10 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %dir %{_libdir}/girepository-1.0 %{_libdir}/girepository-1.0/Vte-2.91.typelib %{_userunitdir}/vte-spawn-.scope.d -%{_datadir}/vte-2.91/terminfo/x/xterm-256color -%{_datadir}/applications/vte-gtk3.desktop -%{_datadir}/xdg-terminals/vte-gtk3.desktop -%{_datadir}/applications/vte-gtk4.desktop -%{_datadir}/xdg-terminals/vte-gtk4.desktop +%{_datadir}/applications/org.gnome.Vte.App.Gtk3.desktop +%{_datadir}/applications/org.gnome.Vte.App.Gtk4.desktop +%{_datadir}/xdg-terminals/org.gnome.Vte.App.Gtk3.desktop +%{_datadir}/xdg-terminals/org.gnome.Vte.App.Gtk4.desktop %files gtk4 %{_libdir}/libvte-%{apiver}-gtk4.so.0* @@ -180,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Wed Mar 05 2025 nmontero - 0.79.91-1 +- Update to 0.79.91 + * Wed Feb 19 2025 nmontero - 0.79.90-1 - Update to 0.79.90 From ae97c886cbc450d564447f89182c497fa62fd96b Mon Sep 17 00:00:00 2001 From: nmontero Date: Mon, 17 Mar 2025 17:58:13 +0100 Subject: [PATCH 133/164] Update to 0.80.0 --- .gitignore | 1 + sources | 2 +- vte291.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 3c3b1ac..b2ded89 100644 --- a/.gitignore +++ b/.gitignore @@ -110,3 +110,4 @@ /vte-0.79.90.tar.xz /vte-0.79.0.tar.xz /vte-0.79.91.tar.xz +/vte-0.80.0.tar.xz diff --git a/sources b/sources index 3434a9e..77179a3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.79.91.tar.xz) = ce916fde3dd85f9bd37696ed1f305b0f076806c75cd1f4006396d734b3cde241a9c3fb1ac14a8922ec505ab826d4a3d34fedce7c2f1ff6772c24c41b273791ac +SHA512 (vte-0.80.0.tar.xz) = ece6f5469b99156148cd1ba266dfdc5ff8990ed71d9545fb21a7cd2ce80e85c8c799cee5c30424ec1d3cb1c40be761087f10981b4fc320f828508a537c7280a9 diff --git a/vte291.spec b/vte291.spec index 6602d71..1d05a66 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.79.91 +Version: 0.80.0 Release: 1%{?dist} Summary: GTK terminal emulator library @@ -19,7 +19,7 @@ Summary: GTK terminal emulator library License: GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND X11 AND CC-BY-4.0 URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://download.gnome.org/sources/vte/0.79/vte-%{version}.tar.xz +Source0: https://download.gnome.org/sources/vte/0.80/vte-%{version}.tar.xz BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version} @@ -179,6 +179,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Mar 17 2025 nmontero - 0.80.0-1 +- Update to 0.80.0 + * Wed Mar 05 2025 nmontero - 0.79.91-1 - Update to 0.79.91 From 1a02863e6076133efc38e9ce9e469010ff593c0d Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Mon, 17 Mar 2025 15:58:08 -0400 Subject: [PATCH 134/164] Avoid fast_float dependency When the default C++ standard library provides the necessary support, it should be preferred over any supplementary library. This restores the status quo for recent g++ while still supporting clang -stdlib=libc++ and older g++. https://gitlab.gnome.org/GNOME/vte/-/merge_requests/2 --- ...oat-when-std-from_chars-is-insuffici.patch | 93 +++++++++++++++++++ vte291.spec | 9 +- 2 files changed, 100 insertions(+), 2 deletions(-) create mode 100644 0001-Only-use-fast_float-when-std-from_chars-is-insuffici.patch diff --git a/0001-Only-use-fast_float-when-std-from_chars-is-insuffici.patch b/0001-Only-use-fast_float-when-std-from_chars-is-insuffici.patch new file mode 100644 index 0000000..b44c953 --- /dev/null +++ b/0001-Only-use-fast_float-when-std-from_chars-is-insuffici.patch @@ -0,0 +1,93 @@ +From 39557ba02e67af3d6585da96560459bc3b922ca3 Mon Sep 17 00:00:00 2001 +From: Yaakov Selkowitz +Date: Wed, 19 Feb 2025 13:43:15 -0500 +Subject: [PATCH] Only use fast_float when std::from_chars is insufficient + +When the default C++ standard library provides the necessary support, it +should be preferred over any supplementary library. This restores the +status quo for recent g++ while still supporting clang -stdlib=libc++ and +older g++. +--- + meson.build | 25 +++++++++++++++++++++++++ + src/color-parser.cc | 4 ++++ + src/termprops.hh | 4 ++++ + 3 files changed, 33 insertions(+) + +diff --git a/meson.build b/meson.build +index 7b590c33..ab02880a 100644 +--- a/meson.build ++++ b/meson.build +@@ -675,6 +675,29 @@ config_h.set10('WITH_SYSTEMD', systemd_dep.found()) + # try compiling a test programme to see if the version is new enough. + + if cxx.compiles(''' ++ #include ++ #include ++ #include ++ ++ int main(void) { ++ auto str = "1234"; ++ auto start = str; ++ auto end = str + strlen(str); ++ auto value = uint64_t{}; ++ auto rv = std::from_chars(start, end, value, 16); ++ if (rv.ec != std::errc{} || rv.ptr != end) ++ return 2; ++ ++ return 0; ++ } ++ ''', ++ args: [ ++ cxx_std_opt, ++ ], ++ name: 'system std::from_chars usability check', ++ ) ++ fast_float_dep = dependency('', required: false) ++elif cxx.compiles(''' + #include + #include + #include +@@ -701,6 +724,8 @@ else + fast_float_dep = dependency('fast_float', required: true) + endif + ++config_h.set10('WITH_FAST_FLOAT', fast_float_dep.found()) ++ + # Write config.h + + config_sources = [ +diff --git a/src/color-parser.cc b/src/color-parser.cc +index 237b4ca7..8d205307 100644 +--- a/src/color-parser.cc ++++ b/src/color-parser.cc +@@ -29,7 +29,11 @@ + + #include + ++#if WITH_FAST_FLOAT + #include ++#else ++#define fast_float std ++#endif + + #include "color-names.hh" + +diff --git a/src/termprops.hh b/src/termprops.hh +index c9253764..0f462acb 100644 +--- a/src/termprops.hh ++++ b/src/termprops.hh +@@ -35,7 +35,11 @@ + #include + #include + ++#if WITH_FAST_FLOAT + #include ++#else ++#define fast_float std ++#endif + + namespace vte::terminal { + +-- +2.48.1 + diff --git a/vte291.spec b/vte291.spec index 1d05a66..26d342f 100644 --- a/vte291.spec +++ b/vte291.spec @@ -12,7 +12,7 @@ Name: vte291 Version: 0.80.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GTK terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -21,6 +21,9 @@ License: GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND X11 AND CC-BY URL: https://wiki.gnome.org/Apps/Terminal/VTE Source0: https://download.gnome.org/sources/vte/0.80/vte-%{version}.tar.xz +# https://gitlab.gnome.org/GNOME/vte/-/merge_requests/2 +Patch0: 0001-Only-use-fast_float-when-std-from_chars-is-insuffici.patch + BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version} BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version} @@ -33,7 +36,6 @@ BuildRequires: pkgconfig(liblz4) BuildRequires: pkgconfig(libpcre2-8) >= %{pcre2_version} BuildRequires: pkgconfig(libsystemd) >= %{libsystemd_version} BuildRequires: pkgconfig(pango) >= %{pango_version} -BuildRequires: fast_float-devel BuildRequires: gcc-c++ BuildRequires: gettext BuildRequires: gi-docgen @@ -179,6 +181,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Mar 17 2025 Yaakov Selkowitz - 0.80.0-2 +- Avoid fast_float dependency + * Mon Mar 17 2025 nmontero - 0.80.0-1 - Update to 0.80.0 From 76d50d45e5193acee4ab1414f5cc29b9f8cb51d8 Mon Sep 17 00:00:00 2001 From: nmontero Date: Mon, 14 Apr 2025 11:03:07 +0200 Subject: [PATCH 135/164] Update to 0.80.1 --- .gitignore | 1 + sources | 2 +- vte291.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index b2ded89..7fe9ed7 100644 --- a/.gitignore +++ b/.gitignore @@ -111,3 +111,4 @@ /vte-0.79.0.tar.xz /vte-0.79.91.tar.xz /vte-0.80.0.tar.xz +/vte-0.80.1.tar.xz diff --git a/sources b/sources index 77179a3..8278986 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.80.0.tar.xz) = ece6f5469b99156148cd1ba266dfdc5ff8990ed71d9545fb21a7cd2ce80e85c8c799cee5c30424ec1d3cb1c40be761087f10981b4fc320f828508a537c7280a9 +SHA512 (vte-0.80.1.tar.xz) = b84764f82f3b5fe9726686175f9e54c5e49a58e6793dff243019eec918920fe2e1ba1afb82861e594d0b1add9dd81a5f0b9e5b38f1b01b4ca4b066695fb58c83 diff --git a/vte291.spec b/vte291.spec index 26d342f..55b2113 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,8 +11,8 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.80.0 -Release: 2%{?dist} +Version: 0.80.1 +Release: 1%{?dist} Summary: GTK terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -181,6 +181,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon Apr 14 2025 nmontero - 0.80.1-1 +- Update to 0.80.1 + * Mon Mar 17 2025 Yaakov Selkowitz - 0.80.0-2 - Avoid fast_float dependency From efc995a8eabdc85789f3331487ba397dc06686c7 Mon Sep 17 00:00:00 2001 From: nmontero Date: Mon, 26 May 2025 10:07:42 +0200 Subject: [PATCH 136/164] Update to 0.80.2 --- .gitignore | 1 + sources | 2 +- vte291.spec | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 7fe9ed7..2a8358a 100644 --- a/.gitignore +++ b/.gitignore @@ -112,3 +112,4 @@ /vte-0.79.91.tar.xz /vte-0.80.0.tar.xz /vte-0.80.1.tar.xz +/vte-0.80.2.tar.xz diff --git a/sources b/sources index 8278986..a8d6ce3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.80.1.tar.xz) = b84764f82f3b5fe9726686175f9e54c5e49a58e6793dff243019eec918920fe2e1ba1afb82861e594d0b1add9dd81a5f0b9e5b38f1b01b4ca4b066695fb58c83 +SHA512 (vte-0.80.2.tar.xz) = 6ff5dc8971279b3cb035f0b70a2c13b06f97cea840e117c4fa0273ec491a00ed4475abc4b84e91b5536d85714b6f751092a2652027df477d746fe66f407a2de2 diff --git a/vte291.spec b/vte291.spec index 55b2113..a89950b 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.80.1 +Version: 0.80.2 Release: 1%{?dist} Summary: GTK terminal emulator library @@ -181,6 +181,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Mon May 26 2025 nmontero - 0.80.2-1 +- Update to 0.80.2 + * Mon Apr 14 2025 nmontero - 0.80.1-1 - Update to 0.80.1 From 160b62dd69964cd20f4d19d1013f49ff2e45d1c9 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 6 Jun 2025 17:08:51 -0500 Subject: [PATCH 137/164] Port to rpm-autospec --- changelog | 535 +++++++++++++++++++++++++++++++++++++++++++++++++++ vte291.spec | 538 +--------------------------------------------------- 2 files changed, 537 insertions(+), 536 deletions(-) create mode 100644 changelog diff --git a/changelog b/changelog new file mode 100644 index 0000000..b2a034c --- /dev/null +++ b/changelog @@ -0,0 +1,535 @@ +* Mon May 26 2025 nmontero - 0.80.2-1 +- Update to 0.80.2 + +* Mon Apr 14 2025 nmontero - 0.80.1-1 +- Update to 0.80.1 + +* Mon Mar 17 2025 Yaakov Selkowitz - 0.80.0-2 +- Avoid fast_float dependency + +* Mon Mar 17 2025 nmontero - 0.80.0-1 +- Update to 0.80.0 + +* Wed Mar 05 2025 nmontero - 0.79.91-1 +- Update to 0.79.91 + +* Wed Feb 19 2025 nmontero - 0.79.90-1 +- Update to 0.79.90 + +* Wed Feb 12 2025 nmontero - 0.79.90-1 +- Update to 0.79.0 + +* Sun Jan 19 2025 Fedora Release Engineering - 0.78.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Sun Dec 08 2024 Pete Walter - 0.78.2-2 +- Rebuild for ICU 76 + +* Mon Nov 25 2024 nmontero - 0.78.2-1 +- Update to 0.78.2 + +* Tue Oct 22 2024 nmontero - 0.78.1-1 +- Update to 0.78.1 + +* Mon Sep 16 2024 David King - 0.78.0-1 +- Update to 0.78.0 + +* Sat Aug 10 2024 Jens Petersen - 0.77.91-2 +- fix vte.sh error: __vte_shell_precmd: command not found + +* Thu Aug 08 2024 David King - 0.77.91-1 +- Update to 0.77.91 + +* Wed Jul 24 2024 David King - 0.77.0-1 +- Update to 0.77.0 + +* Sat Jul 20 2024 Fedora Release Engineering - 0.76.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Mon Jun 10 2024 David King - 0.76.3-1 +- Update to 0.76.3 + +* Fri Jun 07 2024 David King - 0.76.2-2 +- Use updated notification patches from ptyxis + +* Tue May 28 2024 David King - 0.76.2-1 +- Update to 0.76.2 + +* Fri May 03 2024 David King - 0.76.1-1 +- Update to 0.76.1 + +* Tue Apr 02 2024 David King - 0.76.0-1 +- Update to 0.76.0 + +* Mon Feb 12 2024 Tomas Popela - 0.74.2-4 +- Build for the SPDX license format change + +* Wed Jan 31 2024 Pete Walter - 0.74.2-3 +- Rebuild for ICU 74 + +* Sat Jan 27 2024 Fedora Release Engineering - 0.74.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Dec 16 2023 Kalev Lember - 0.74.2-1 +- Update to 0.74.2 + +* Sun Oct 22 2023 Kalev Lember - 0.74.1-1 +- Update to 0.74.1 + +* Tue Sep 19 2023 Kalev Lember - 0.74.0-1 +- Update to 0.74.0 + +* Tue Aug 08 2023 Kalev Lember - 0.73.93-1 +- Update to 0.73.93 + +* Sat Jul 22 2023 Fedora Release Engineering - 0.72.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jul 11 2023 František Zatloukal - 0.72.2-2 +- Rebuilt for ICU 73.2 + +* Wed Jun 07 2023 Kalev Lember - 0.72.2-1 +- Update to 0.72.2 + +* Sun Apr 16 2023 David King - 0.72.1-1 +- Update to 0.72.1 + +* Mon Mar 20 2023 David King - 0.72.0-1 +- Update to 0.72.0 (#2179642) + +* Thu Mar 09 2023 David King - 0.71.99-1 +- Update to 0.71.99 + +* Wed Feb 15 2023 David King - 0.71.92-1 +- Update to 0.71.92 + +* Sat Jan 21 2023 Fedora Release Engineering - 0.70.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sat Dec 31 2022 Pete Walter - 0.70.2-2 +- Rebuild for ICU 72 + +* Tue Dec 06 2022 David King - 0.70.2-1 +- Update to 0.70.2 + +* Fri Oct 28 2022 David King - 0.70.1-1 +- Update to 0.70.1 + +* Mon Sep 26 2022 David King - 0.70.0-2 +- Fix GTK4 ABI padding (#2122922) + +* Mon Sep 19 2022 Kalev Lember - 0.70.0-1 +- Update to 0.70.0 + +* Mon Aug 08 2022 Kalev Lember - 0.69.92-1 +- Update to 0.69.92 + +* Wed Aug 03 2022 David King - 0.69.90-1 +- Update to 0.69.90 +- Enable GTK4 support + +* Mon Aug 01 2022 Frantisek Zatloukal - 0.68.0-3 +- Rebuilt for ICU 71.1 + +* Sat Jul 23 2022 Fedora Release Engineering - 0.68.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sun Mar 27 2022 David King - 0.68.0-1 +- Update to 0.68.0 + +* Thu Feb 17 2022 David King - 0.67.90-1 +- Update to 0.67.90 + +* Thu Jan 27 2022 David King - 0.66.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Dec 16 2021 David King - 0.66.2-1 +- Update to 0.66.2 + +* Mon Nov 01 2021 David King - 0.66.1-1 +- Update to 0.66.1 + +* Fri Oct 01 2021 Kalev Lember - 0.66.0-2 +- Require systemd-libs rather than systemd + +* Tue Sep 28 2021 David King - 0.66.0-1 +- Update to 0.66.0 + +* Fri Jul 23 2021 Fedora Release Engineering - 0.64.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Jun 17 2021 Debarshi Ray - 0.64.2-2 +- Fix the License fields and ship the correct license texts + +* Wed Jun 16 2021 Debarshi Ray - 0.64.2-1 +- Update to 0.64.2 + +* Thu May 20 2021 Pete Walter - 0.64.1-3 +- Rebuild for ICU 69 + +* Fri May 07 2021 Debarshi Ray - 0.64.1-2 +- Add missing _VTE_CXX_NOEXCEPT in downstream patches + +* Thu May 06 2021 Debarshi Ray - 0.64.1-1 +- Update to 0.64.1 + +* Thu May 06 2021 Debarshi Ray - 0.64.0-1 +- Update to 0.64.0 + +* Thu May 06 2021 Debarshi Ray - 0.63.91-1 +- Update to 0.63.91 +- Rebase downstream patches + +* Thu Feb 18 2021 Kalev Lember - 0.62.3-2 +- Revert a change that limited select all, as decided by Workstation WG + +* Tue Feb 16 2021 Kalev Lember - 0.62.3-1 +- Update to 0.62.3 +- Use https URLs for upstream + +* Wed Jan 27 2021 Fedora Release Engineering - 0.62.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jan 25 2021 Kalev Lember - 0.62.2-1 +- Update to 0.62.2 + +* Wed Dec 16 2020 Debarshi Ray - 0.62.1-3 +- Accommodate 'sudo toolbox' when tracking the active container + +* Tue Nov 03 2020 Jeff Law - 0.62.1-2 +- Fix bogus volatile caught by gcc-11 + +* Thu Oct 08 2020 Debarshi Ray - 0.62.1-1 +- Update to 0.62.1 +- Rebase downstream patches + +* Thu Sep 24 2020 Debarshi Ray - 0.62.0-1 +- Update to 0.62.0 + +* Thu Sep 24 2020 Debarshi Ray - 0.61.91-1 +- Update to 0.61.91 + +* Thu Sep 24 2020 Debarshi Ray - 0.61.90-1 +- Update to 0.61.90 +- Rebase downstream patches + +* Wed Jul 29 2020 Fedora Release Engineering - 0.60.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu Jun 04 2020 Kalev Lember - 0.60.3-1 +- Update to 0.60.3 + +* Sat May 16 2020 Pete Walter - 0.60.2-2 +- Rebuild for ICU 67 + +* Mon Apr 27 2020 Kalev Lember - 0.60.2-1 +- Update to 0.60.2 + +* Mon Apr 06 2020 Debarshi Ray - 0.60.1-2 +- Improve legibility when using colours from the system theme + +* Tue Mar 31 2020 Kalev Lember - 0.60.1-1 +- Update to 0.60.1 + +* Sat Mar 21 2020 Kalev Lember - 0.60.0-2 +- Move vte-urlencode-cwd to vte-profile subpackage (#1815769) + +* Fri Mar 06 2020 Debarshi Ray - 0.60.0-1 +- Update to 0.60.0 + +* Mon Mar 02 2020 Debarshi Ray - 0.59.92-2 +- Replace C1 controls with C0 to emit OSC 777 from PS0 (RH #1783802) + +* Mon Mar 02 2020 Debarshi Ray - 0.59.92-1 +- Update to 0.59.92 + +* Thu Feb 20 2020 Debarshi Ray - 0.59.91-1 +- Update to 0.59.91 +- Rebase downstream patches + +* Wed Feb 19 2020 Debarshi Ray - 0.59.0-1 +- Update to 0.59.0 +- Rebase downstream patches + +* Fri Jan 31 2020 Fedora Release Engineering - 0.58.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Nov 27 2019 Kalev Lember - 0.58.3-1 +- Update to 0.58.3 +- Avoid overriding vte's own -fno-exceptions + +* Mon Oct 14 2019 Kalev Lember - 0.58.2-1 +- Update to 0.58.2 + +* Mon Oct 07 2019 Kalev Lember - 0.58.1-1 +- Update to 0.58.1 + +* Fri Oct 04 2019 Adam Williamson - 0.58.0-2 +- Backport fix for crash due to out of bounds cursor position (#1756567) + +* Mon Sep 09 2019 Kalev Lember - 0.58.0-1 +- Update to 0.58.0 + +* Mon Aug 12 2019 Kalev Lember - 0.57.90-1 +- Update to 0.57.90 + +* Sat Jul 27 2019 Fedora Release Engineering - 0.57.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Tue Jul 02 2019 Debarshi Ray - 0.57.3-1 +- Update to 0.57.3 +- Rebase downstream patches + +* Wed Jun 19 2019 Debarshi Ray - 0.57.0-2 +- Support tracking the active container inside the terminal + +* Tue Jun 18 2019 Debarshi Ray - 0.57.0-1 +- Update to 0.57.0 +- Switch to the Meson build system +- Rebase downstream patches + +* Tue May 07 2019 Kalev Lember - 0.56.3-1 +- Update to 0.56.3 + +* Mon May 06 2019 Kalev Lember - 0.56.2-1 +- Update to 0.56.2 + +* Tue Apr 09 2019 Kalev Lember - 0.56.1-1 +- Update to 0.56.1 + +* Tue Apr 02 2019 Debarshi Ray - 0.56.0-2 +- Add signals proxying an interactive shell's precmd and preexec hooks. + +* Mon Mar 11 2019 Kalev Lember - 0.56.0-1 +- Update to 0.56.0 + +* Mon Mar 04 2019 Kalev Lember - 0.55.92-1 +- Update to 0.55.92 + +* Tue Feb 19 2019 Kalev Lember - 0.55.90-2 +- Rebuilt against fixed atk (#1626575) + +* Tue Feb 19 2019 Kalev Lember - 0.55.90-1 +- Update to 0.55.90 + +* Sun Feb 03 2019 Fedora Release Engineering - 0.54.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Dec 12 2018 Kalev Lember - 0.54.3-1 +- Update to 0.54.3 + +* Fri Oct 26 2018 Kalev Lember - 0.54.2-1 +- Update to 0.54.2 + +* Mon Oct 08 2018 Debarshi Ray - 0.54.1-4 +- Removal of utmp logging makes the utmp group unnecessary + +* Fri Oct 05 2018 Debarshi Ray - 0.54.1-3 +- Tweak the escape sequence emission to unbreak the parsing + +* Fri Oct 05 2018 Debarshi Ray - 0.54.1-2 +- Tighten the dependencies a bit + +* Fri Oct 05 2018 Debarshi Ray - 0.54.1-1 +- Update to 0.54.1 + +* Thu Oct 04 2018 Debarshi Ray - 0.54.0-1 +- Update to 0.54.0 + +* Thu Oct 04 2018 Debarshi Ray - 0.53.92-1 +- Update to 0.53.92 + +* Sat Jul 14 2018 Fedora Release Engineering - 0.53.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon Jun 18 2018 Kalev Lember - 0.53.0-2 +- Require systemd, not initscripts for the utmp group (#1592403) + +* Mon Jun 04 2018 Debarshi Ray - 0.53.0-1 +- Update to 0.53.0 + +* Mon May 21 2018 Kalev Lember - 0.52.2-1 +- Update to 0.52.2 + +* Mon Apr 09 2018 Kalev Lember - 0.52.1-1 +- Update to 0.52.1 + +* Tue Apr 03 2018 Kalev Lember - 0.52.0-1 +- Update to 0.52.0 +- Remove ldconfig scriptlets + +* Wed Mar 28 2018 Debarshi Ray - 0.51.90-1 +- Update to 0.51.90 + +* Wed Mar 28 2018 Debarshi Ray - 0.51.3-1 +- Update to 0.51.3 +- Rebase downstream patches + +* Thu Feb 08 2018 Igor Gnatenko - 0.50.2-3 +- Switch to %%ldconfig_scriptlets + +* Thu Nov 02 2017 Kalev Lember - 0.50.2-2 +- Rebuild + +* Wed Nov 01 2017 Debarshi Ray - 0.50.2-1 +- Update to 0.50.2 + +* Thu Oct 05 2017 Debarshi Ray - 0.50.1-1 +- Update to 0.50.1 +- Rebase downstream patches + +* Thu Sep 14 2017 Kalev Lember - 0.50.0-1 +- Update to 0.50.0 +- Rebase downstream patches + +* Thu Aug 03 2017 Fedora Release Engineering - 0.48.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 0.48.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Wed May 10 2017 Kalev Lember - 0.48.3-1 +- Update to 0.48.3 + +* Wed Apr 12 2017 Kalev Lember - 0.48.2-1 +- Update to 0.48.2 +- Rebase downstream patches + +* Wed Mar 22 2017 Kalev Lember - 0.48.1-1 +- Update to 0.48.1 + +* Fri Feb 24 2017 Debarshi Ray - 0.47.90-1 +- Update to 0.47.90 +- Rebase downstream patches + +* Sat Feb 11 2017 Fedora Release Engineering - 0.46.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Tue Nov 08 2016 Debarshi Ray - 0.46.1-1 +- Update to 0.46.1 +- Rebase downstream patches + +* Thu Sep 22 2016 Kalev Lember - 0.46.0-2 +- BR vala instead of obsolete vala-tools subpackage + +* Mon Sep 19 2016 Kalev Lember - 0.46.0-1 +- Update to 0.46.0 + +* Wed Sep 14 2016 Kalev Lember - 0.45.92-1 +- Update to 0.45.92 + +* Thu Aug 18 2016 Kalev Lember - 0.45.90-1 +- Update to 0.45.90 +- Rebase downstream patches + +* Fri Jul 01 2016 Debarshi Ray - 0.44.2-2 +- Add a property to configure the scroll speed + +* Tue May 10 2016 Debarshi Ray - 0.44.2-1 +- Update to 0.44.2 +- Rebase downstream patches and undo unintentional ABI break + +* Mon Apr 11 2016 Debarshi Ray - 0.44.1-1 +- Update to 0.44.1 + +* Tue Mar 22 2016 Kalev Lember - 0.44.0-1 +- Update to 0.44.0 + +* Tue Mar 15 2016 Debarshi Ray - 0.43.92-1 +- Update to 0.43.92 + +* Tue Mar 01 2016 Debarshi Ray - 0.43.91-1 +- Update to 0.43.91 +- Remove BuildRequires on pkgconfig(libpcre2-8) + +* Tue Mar 01 2016 Debarshi Ray - 0.43.90-1 +- Update to 0.43.90 + +* Fri Feb 05 2016 Fedora Release Engineering - 0.43.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Jan 29 2016 Debarshi Ray - 0.43.2-1 +- Update to 0.43.2 + +* Fri Jan 29 2016 Debarshi Ray - 0.43.1-1 +- Update to 0.43.1 +- Drop upstreamed patch + +* Fri Jan 29 2016 Debarshi Ray - 0.43.0-1 +- Update to 0.43.0 +- Add BuildRequires on pkgconfig(libpcre2-8) +- Disable -Wnonnull + +* Thu Jan 28 2016 Debarshi Ray - 0.42.3-1 +- Update to 0.42.3 +- Backport upstream patch to fix disappearing lines (GNOME #761097) + +* Wed Oct 14 2015 Kalev Lember - 0.42.1-1 +- Update to 0.42.1 + +* Tue Sep 22 2015 Kalev Lember - 0.42.0-1 +- Update to 0.42.0 +- Use license macro for COPYING + +* Mon Sep 14 2015 Debarshi Ray - 0.41.90-1 +- Update to 0.41.90 +- Rebased downstream patches after the migration to C++ +- gnome-pty-helper has been removed + +* Fri Jun 19 2015 Fedora Release Engineering - 0.40.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Tue May 12 2015 Debarshi Ray - 0.40.2-1 +- Update to 0.40.2 + +* Tue Mar 24 2015 Debarshi Ray - 0.40.0-1 +- Update to 0.40.0 + +* Thu Mar 19 2015 Debarshi Ray - 0.39.92-1 +- Update to 0.39.92 + +* Tue Feb 17 2015 Debarshi Ray - 0.39.90-1 +- Update to 0.39.90 +- Add command-notify patches + +* Fri Dec 19 2014 Richard Hughes - 0.39.1-1 +- Update to 0.39.1 + +* Mon Dec 01 2014 Debarshi Ray - 0.39.0-2 +- Backport upstream patch to fix zombie shells (GNOME #740929) + +* Tue Nov 25 2014 Kalev Lember - 0.39.0-1 +- Update to 0.39.0 + +* Mon Nov 10 2014 Kalev Lember - 0.38.2-1 +- Update to 0.38.2 + +* Mon Oct 13 2014 Kalev Lember - 0.38.1-1 +- Update to 0.38.1 + +* Sun Sep 14 2014 Kalev Lember - 0.38.0-1 +- Update to 0.38.0 + +* Mon Aug 18 2014 Kalev Lember - 0.37.90-1 +- Update to 0.37.90 + +* Mon Aug 18 2014 Fedora Release Engineering - 0.37.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Tue Jul 22 2014 Kalev Lember - 0.37.2-2 +- Rebuilt for gobject-introspection 1.41.4 + +* Tue Jun 24 2014 Richard Hughes - 0.37.2-1 +- Update to 0.37.2 + +* Sun Jun 08 2014 Fedora Release Engineering - 0.37.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Wed May 28 2014 Kalev Lember - 0.37.1-1 +- Update to 0.37.1 + +* Wed May 07 2014 Kalev Lember - 0.37.0-2 +- Split out a vte-profile subpackage that can be used with both vte291 / vte3 + +* Tue May 06 2014 Kalev Lember - 0.37.0-1 +- Initial Fedora package, based on previous vte3 0.36 packaging diff --git a/vte291.spec b/vte291.spec index a89950b..63c8674 100644 --- a/vte291.spec +++ b/vte291.spec @@ -12,7 +12,7 @@ Name: vte291 Version: 0.80.2 -Release: 1%{?dist} +Release: %autorelease Summary: GTK terminal emulator library # libvte-2.91.so is generated from LGPLv2+ and MIT sources @@ -181,538 +181,4 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog -* Mon May 26 2025 nmontero - 0.80.2-1 -- Update to 0.80.2 - -* Mon Apr 14 2025 nmontero - 0.80.1-1 -- Update to 0.80.1 - -* Mon Mar 17 2025 Yaakov Selkowitz - 0.80.0-2 -- Avoid fast_float dependency - -* Mon Mar 17 2025 nmontero - 0.80.0-1 -- Update to 0.80.0 - -* Wed Mar 05 2025 nmontero - 0.79.91-1 -- Update to 0.79.91 - -* Wed Feb 19 2025 nmontero - 0.79.90-1 -- Update to 0.79.90 - -* Wed Feb 12 2025 nmontero - 0.79.90-1 -- Update to 0.79.0 - -* Sun Jan 19 2025 Fedora Release Engineering - 0.78.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Sun Dec 08 2024 Pete Walter - 0.78.2-2 -- Rebuild for ICU 76 - -* Mon Nov 25 2024 nmontero - 0.78.2-1 -- Update to 0.78.2 - -* Tue Oct 22 2024 nmontero - 0.78.1-1 -- Update to 0.78.1 - -* Mon Sep 16 2024 David King - 0.78.0-1 -- Update to 0.78.0 - -* Sat Aug 10 2024 Jens Petersen - 0.77.91-2 -- fix vte.sh error: __vte_shell_precmd: command not found - -* Thu Aug 08 2024 David King - 0.77.91-1 -- Update to 0.77.91 - -* Wed Jul 24 2024 David King - 0.77.0-1 -- Update to 0.77.0 - -* Sat Jul 20 2024 Fedora Release Engineering - 0.76.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Mon Jun 10 2024 David King - 0.76.3-1 -- Update to 0.76.3 - -* Fri Jun 07 2024 David King - 0.76.2-2 -- Use updated notification patches from ptyxis - -* Tue May 28 2024 David King - 0.76.2-1 -- Update to 0.76.2 - -* Fri May 03 2024 David King - 0.76.1-1 -- Update to 0.76.1 - -* Tue Apr 02 2024 David King - 0.76.0-1 -- Update to 0.76.0 - -* Mon Feb 12 2024 Tomas Popela - 0.74.2-4 -- Build for the SPDX license format change - -* Wed Jan 31 2024 Pete Walter - 0.74.2-3 -- Rebuild for ICU 74 - -* Sat Jan 27 2024 Fedora Release Engineering - 0.74.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sat Dec 16 2023 Kalev Lember - 0.74.2-1 -- Update to 0.74.2 - -* Sun Oct 22 2023 Kalev Lember - 0.74.1-1 -- Update to 0.74.1 - -* Tue Sep 19 2023 Kalev Lember - 0.74.0-1 -- Update to 0.74.0 - -* Tue Aug 08 2023 Kalev Lember - 0.73.93-1 -- Update to 0.73.93 - -* Sat Jul 22 2023 Fedora Release Engineering - 0.72.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Tue Jul 11 2023 František Zatloukal - 0.72.2-2 -- Rebuilt for ICU 73.2 - -* Wed Jun 07 2023 Kalev Lember - 0.72.2-1 -- Update to 0.72.2 - -* Sun Apr 16 2023 David King - 0.72.1-1 -- Update to 0.72.1 - -* Mon Mar 20 2023 David King - 0.72.0-1 -- Update to 0.72.0 (#2179642) - -* Thu Mar 09 2023 David King - 0.71.99-1 -- Update to 0.71.99 - -* Wed Feb 15 2023 David King - 0.71.92-1 -- Update to 0.71.92 - -* Sat Jan 21 2023 Fedora Release Engineering - 0.70.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Sat Dec 31 2022 Pete Walter - 0.70.2-2 -- Rebuild for ICU 72 - -* Tue Dec 06 2022 David King - 0.70.2-1 -- Update to 0.70.2 - -* Fri Oct 28 2022 David King - 0.70.1-1 -- Update to 0.70.1 - -* Mon Sep 26 2022 David King - 0.70.0-2 -- Fix GTK4 ABI padding (#2122922) - -* Mon Sep 19 2022 Kalev Lember - 0.70.0-1 -- Update to 0.70.0 - -* Mon Aug 08 2022 Kalev Lember - 0.69.92-1 -- Update to 0.69.92 - -* Wed Aug 03 2022 David King - 0.69.90-1 -- Update to 0.69.90 -- Enable GTK4 support - -* Mon Aug 01 2022 Frantisek Zatloukal - 0.68.0-3 -- Rebuilt for ICU 71.1 - -* Sat Jul 23 2022 Fedora Release Engineering - 0.68.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Sun Mar 27 2022 David King - 0.68.0-1 -- Update to 0.68.0 - -* Thu Feb 17 2022 David King - 0.67.90-1 -- Update to 0.67.90 - -* Thu Jan 27 2022 David King - 0.66.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Thu Dec 16 2021 David King - 0.66.2-1 -- Update to 0.66.2 - -* Mon Nov 01 2021 David King - 0.66.1-1 -- Update to 0.66.1 - -* Fri Oct 01 2021 Kalev Lember - 0.66.0-2 -- Require systemd-libs rather than systemd - -* Tue Sep 28 2021 David King - 0.66.0-1 -- Update to 0.66.0 - -* Fri Jul 23 2021 Fedora Release Engineering - 0.64.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Thu Jun 17 2021 Debarshi Ray - 0.64.2-2 -- Fix the License fields and ship the correct license texts - -* Wed Jun 16 2021 Debarshi Ray - 0.64.2-1 -- Update to 0.64.2 - -* Thu May 20 2021 Pete Walter - 0.64.1-3 -- Rebuild for ICU 69 - -* Fri May 07 2021 Debarshi Ray - 0.64.1-2 -- Add missing _VTE_CXX_NOEXCEPT in downstream patches - -* Thu May 06 2021 Debarshi Ray - 0.64.1-1 -- Update to 0.64.1 - -* Thu May 06 2021 Debarshi Ray - 0.64.0-1 -- Update to 0.64.0 - -* Thu May 06 2021 Debarshi Ray - 0.63.91-1 -- Update to 0.63.91 -- Rebase downstream patches - -* Thu Feb 18 2021 Kalev Lember - 0.62.3-2 -- Revert a change that limited select all, as decided by Workstation WG - -* Tue Feb 16 2021 Kalev Lember - 0.62.3-1 -- Update to 0.62.3 -- Use https URLs for upstream - -* Wed Jan 27 2021 Fedora Release Engineering - 0.62.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Mon Jan 25 2021 Kalev Lember - 0.62.2-1 -- Update to 0.62.2 - -* Wed Dec 16 2020 Debarshi Ray - 0.62.1-3 -- Accommodate 'sudo toolbox' when tracking the active container - -* Tue Nov 03 2020 Jeff Law - 0.62.1-2 -- Fix bogus volatile caught by gcc-11 - -* Thu Oct 08 2020 Debarshi Ray - 0.62.1-1 -- Update to 0.62.1 -- Rebase downstream patches - -* Thu Sep 24 2020 Debarshi Ray - 0.62.0-1 -- Update to 0.62.0 - -* Thu Sep 24 2020 Debarshi Ray - 0.61.91-1 -- Update to 0.61.91 - -* Thu Sep 24 2020 Debarshi Ray - 0.61.90-1 -- Update to 0.61.90 -- Rebase downstream patches - -* Wed Jul 29 2020 Fedora Release Engineering - 0.60.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Thu Jun 04 2020 Kalev Lember - 0.60.3-1 -- Update to 0.60.3 - -* Sat May 16 2020 Pete Walter - 0.60.2-2 -- Rebuild for ICU 67 - -* Mon Apr 27 2020 Kalev Lember - 0.60.2-1 -- Update to 0.60.2 - -* Mon Apr 06 2020 Debarshi Ray - 0.60.1-2 -- Improve legibility when using colours from the system theme - -* Tue Mar 31 2020 Kalev Lember - 0.60.1-1 -- Update to 0.60.1 - -* Sat Mar 21 2020 Kalev Lember - 0.60.0-2 -- Move vte-urlencode-cwd to vte-profile subpackage (#1815769) - -* Fri Mar 06 2020 Debarshi Ray - 0.60.0-1 -- Update to 0.60.0 - -* Mon Mar 02 2020 Debarshi Ray - 0.59.92-2 -- Replace C1 controls with C0 to emit OSC 777 from PS0 (RH #1783802) - -* Mon Mar 02 2020 Debarshi Ray - 0.59.92-1 -- Update to 0.59.92 - -* Thu Feb 20 2020 Debarshi Ray - 0.59.91-1 -- Update to 0.59.91 -- Rebase downstream patches - -* Wed Feb 19 2020 Debarshi Ray - 0.59.0-1 -- Update to 0.59.0 -- Rebase downstream patches - -* Fri Jan 31 2020 Fedora Release Engineering - 0.58.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Wed Nov 27 2019 Kalev Lember - 0.58.3-1 -- Update to 0.58.3 -- Avoid overriding vte's own -fno-exceptions - -* Mon Oct 14 2019 Kalev Lember - 0.58.2-1 -- Update to 0.58.2 - -* Mon Oct 07 2019 Kalev Lember - 0.58.1-1 -- Update to 0.58.1 - -* Fri Oct 04 2019 Adam Williamson - 0.58.0-2 -- Backport fix for crash due to out of bounds cursor position (#1756567) - -* Mon Sep 09 2019 Kalev Lember - 0.58.0-1 -- Update to 0.58.0 - -* Mon Aug 12 2019 Kalev Lember - 0.57.90-1 -- Update to 0.57.90 - -* Sat Jul 27 2019 Fedora Release Engineering - 0.57.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Tue Jul 02 2019 Debarshi Ray - 0.57.3-1 -- Update to 0.57.3 -- Rebase downstream patches - -* Wed Jun 19 2019 Debarshi Ray - 0.57.0-2 -- Support tracking the active container inside the terminal - -* Tue Jun 18 2019 Debarshi Ray - 0.57.0-1 -- Update to 0.57.0 -- Switch to the Meson build system -- Rebase downstream patches - -* Tue May 07 2019 Kalev Lember - 0.56.3-1 -- Update to 0.56.3 - -* Mon May 06 2019 Kalev Lember - 0.56.2-1 -- Update to 0.56.2 - -* Tue Apr 09 2019 Kalev Lember - 0.56.1-1 -- Update to 0.56.1 - -* Tue Apr 02 2019 Debarshi Ray - 0.56.0-2 -- Add signals proxying an interactive shell's precmd and preexec hooks. - -* Mon Mar 11 2019 Kalev Lember - 0.56.0-1 -- Update to 0.56.0 - -* Mon Mar 04 2019 Kalev Lember - 0.55.92-1 -- Update to 0.55.92 - -* Tue Feb 19 2019 Kalev Lember - 0.55.90-2 -- Rebuilt against fixed atk (#1626575) - -* Tue Feb 19 2019 Kalev Lember - 0.55.90-1 -- Update to 0.55.90 - -* Sun Feb 03 2019 Fedora Release Engineering - 0.54.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Wed Dec 12 2018 Kalev Lember - 0.54.3-1 -- Update to 0.54.3 - -* Fri Oct 26 2018 Kalev Lember - 0.54.2-1 -- Update to 0.54.2 - -* Mon Oct 08 2018 Debarshi Ray - 0.54.1-4 -- Removal of utmp logging makes the utmp group unnecessary - -* Fri Oct 05 2018 Debarshi Ray - 0.54.1-3 -- Tweak the escape sequence emission to unbreak the parsing - -* Fri Oct 05 2018 Debarshi Ray - 0.54.1-2 -- Tighten the dependencies a bit - -* Fri Oct 05 2018 Debarshi Ray - 0.54.1-1 -- Update to 0.54.1 - -* Thu Oct 04 2018 Debarshi Ray - 0.54.0-1 -- Update to 0.54.0 - -* Thu Oct 04 2018 Debarshi Ray - 0.53.92-1 -- Update to 0.53.92 - -* Sat Jul 14 2018 Fedora Release Engineering - 0.53.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Mon Jun 18 2018 Kalev Lember - 0.53.0-2 -- Require systemd, not initscripts for the utmp group (#1592403) - -* Mon Jun 04 2018 Debarshi Ray - 0.53.0-1 -- Update to 0.53.0 - -* Mon May 21 2018 Kalev Lember - 0.52.2-1 -- Update to 0.52.2 - -* Mon Apr 09 2018 Kalev Lember - 0.52.1-1 -- Update to 0.52.1 - -* Tue Apr 03 2018 Kalev Lember - 0.52.0-1 -- Update to 0.52.0 -- Remove ldconfig scriptlets - -* Wed Mar 28 2018 Debarshi Ray - 0.51.90-1 -- Update to 0.51.90 - -* Wed Mar 28 2018 Debarshi Ray - 0.51.3-1 -- Update to 0.51.3 -- Rebase downstream patches - -* Thu Feb 08 2018 Igor Gnatenko - 0.50.2-3 -- Switch to %%ldconfig_scriptlets - -* Thu Nov 02 2017 Kalev Lember - 0.50.2-2 -- Rebuild - -* Wed Nov 01 2017 Debarshi Ray - 0.50.2-1 -- Update to 0.50.2 - -* Thu Oct 05 2017 Debarshi Ray - 0.50.1-1 -- Update to 0.50.1 -- Rebase downstream patches - -* Thu Sep 14 2017 Kalev Lember - 0.50.0-1 -- Update to 0.50.0 -- Rebase downstream patches - -* Thu Aug 03 2017 Fedora Release Engineering - 0.48.3-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Thu Jul 27 2017 Fedora Release Engineering - 0.48.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Wed May 10 2017 Kalev Lember - 0.48.3-1 -- Update to 0.48.3 - -* Wed Apr 12 2017 Kalev Lember - 0.48.2-1 -- Update to 0.48.2 -- Rebase downstream patches - -* Wed Mar 22 2017 Kalev Lember - 0.48.1-1 -- Update to 0.48.1 - -* Fri Feb 24 2017 Debarshi Ray - 0.47.90-1 -- Update to 0.47.90 -- Rebase downstream patches - -* Sat Feb 11 2017 Fedora Release Engineering - 0.46.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Tue Nov 08 2016 Debarshi Ray - 0.46.1-1 -- Update to 0.46.1 -- Rebase downstream patches - -* Thu Sep 22 2016 Kalev Lember - 0.46.0-2 -- BR vala instead of obsolete vala-tools subpackage - -* Mon Sep 19 2016 Kalev Lember - 0.46.0-1 -- Update to 0.46.0 - -* Wed Sep 14 2016 Kalev Lember - 0.45.92-1 -- Update to 0.45.92 - -* Thu Aug 18 2016 Kalev Lember - 0.45.90-1 -- Update to 0.45.90 -- Rebase downstream patches - -* Fri Jul 01 2016 Debarshi Ray - 0.44.2-2 -- Add a property to configure the scroll speed - -* Tue May 10 2016 Debarshi Ray - 0.44.2-1 -- Update to 0.44.2 -- Rebase downstream patches and undo unintentional ABI break - -* Mon Apr 11 2016 Debarshi Ray - 0.44.1-1 -- Update to 0.44.1 - -* Tue Mar 22 2016 Kalev Lember - 0.44.0-1 -- Update to 0.44.0 - -* Tue Mar 15 2016 Debarshi Ray - 0.43.92-1 -- Update to 0.43.92 - -* Tue Mar 01 2016 Debarshi Ray - 0.43.91-1 -- Update to 0.43.91 -- Remove BuildRequires on pkgconfig(libpcre2-8) - -* Tue Mar 01 2016 Debarshi Ray - 0.43.90-1 -- Update to 0.43.90 - -* Fri Feb 05 2016 Fedora Release Engineering - 0.43.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Fri Jan 29 2016 Debarshi Ray - 0.43.2-1 -- Update to 0.43.2 - -* Fri Jan 29 2016 Debarshi Ray - 0.43.1-1 -- Update to 0.43.1 -- Drop upstreamed patch - -* Fri Jan 29 2016 Debarshi Ray - 0.43.0-1 -- Update to 0.43.0 -- Add BuildRequires on pkgconfig(libpcre2-8) -- Disable -Wnonnull - -* Thu Jan 28 2016 Debarshi Ray - 0.42.3-1 -- Update to 0.42.3 -- Backport upstream patch to fix disappearing lines (GNOME #761097) - -* Wed Oct 14 2015 Kalev Lember - 0.42.1-1 -- Update to 0.42.1 - -* Tue Sep 22 2015 Kalev Lember - 0.42.0-1 -- Update to 0.42.0 -- Use license macro for COPYING - -* Mon Sep 14 2015 Debarshi Ray - 0.41.90-1 -- Update to 0.41.90 -- Rebased downstream patches after the migration to C++ -- gnome-pty-helper has been removed - -* Fri Jun 19 2015 Fedora Release Engineering - 0.40.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Tue May 12 2015 Debarshi Ray - 0.40.2-1 -- Update to 0.40.2 - -* Tue Mar 24 2015 Debarshi Ray - 0.40.0-1 -- Update to 0.40.0 - -* Thu Mar 19 2015 Debarshi Ray - 0.39.92-1 -- Update to 0.39.92 - -* Tue Feb 17 2015 Debarshi Ray - 0.39.90-1 -- Update to 0.39.90 -- Add command-notify patches - -* Fri Dec 19 2014 Richard Hughes - 0.39.1-1 -- Update to 0.39.1 - -* Mon Dec 01 2014 Debarshi Ray - 0.39.0-2 -- Backport upstream patch to fix zombie shells (GNOME #740929) - -* Tue Nov 25 2014 Kalev Lember - 0.39.0-1 -- Update to 0.39.0 - -* Mon Nov 10 2014 Kalev Lember - 0.38.2-1 -- Update to 0.38.2 - -* Mon Oct 13 2014 Kalev Lember - 0.38.1-1 -- Update to 0.38.1 - -* Sun Sep 14 2014 Kalev Lember - 0.38.0-1 -- Update to 0.38.0 - -* Mon Aug 18 2014 Kalev Lember - 0.37.90-1 -- Update to 0.37.90 - -* Mon Aug 18 2014 Fedora Release Engineering - 0.37.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Tue Jul 22 2014 Kalev Lember - 0.37.2-2 -- Rebuilt for gobject-introspection 1.41.4 - -* Tue Jun 24 2014 Richard Hughes - 0.37.2-1 -- Update to 0.37.2 - -* Sun Jun 08 2014 Fedora Release Engineering - 0.37.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Wed May 28 2014 Kalev Lember - 0.37.1-1 -- Update to 0.37.1 - -* Wed May 07 2014 Kalev Lember - 0.37.0-2 -- Split out a vte-profile subpackage that can be used with both vte291 / vte3 - -* Tue May 06 2014 Kalev Lember - 0.37.0-1 -- Initial Fedora package, based on previous vte3 0.36 packaging +%autochangelog From ef65a928ac5777a2e3ba2eb5834949c49f61f3b5 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 6 Jun 2025 17:08:56 -0500 Subject: [PATCH 138/164] Delete demo desktop files These are user-visible, so they need to either go into a subpackage or go away, one or the other. I'm not in the mood to add a subpackage today. If you want these back, feel free to create a subpackage. --- vte291.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vte291.spec b/vte291.spec index 63c8674..6896d57 100644 --- a/vte291.spec +++ b/vte291.spec @@ -129,6 +129,8 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %install %meson_install +rm %{buildroot}/%{_datadir}/applications/org.gnome.Vte.App.Gtk3.desktop +rm %{buildroot}/%{_datadir}/applications/org.gnome.Vte.App.Gtk4.desktop %find_lang vte-%{apiver} @@ -140,8 +142,6 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %dir %{_libdir}/girepository-1.0 %{_libdir}/girepository-1.0/Vte-2.91.typelib %{_userunitdir}/vte-spawn-.scope.d -%{_datadir}/applications/org.gnome.Vte.App.Gtk3.desktop -%{_datadir}/applications/org.gnome.Vte.App.Gtk4.desktop %{_datadir}/xdg-terminals/org.gnome.Vte.App.Gtk3.desktop %{_datadir}/xdg-terminals/org.gnome.Vte.App.Gtk4.desktop From dbb3baa37a7ee90e4dccbdb8951b816a9b4b075b Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Wed, 9 Jul 2025 13:27:28 +0200 Subject: [PATCH 139/164] Update to 0.81.0 --- .gitignore | 117 +----------------- ...oat-when-std-from_chars-is-insuffici.patch | 30 ++--- sources | 2 +- vte291.spec | 11 +- 4 files changed, 27 insertions(+), 133 deletions(-) diff --git a/.gitignore b/.gitignore index 2a8358a..f80d291 100644 --- a/.gitignore +++ b/.gitignore @@ -1,115 +1,2 @@ -/vte-0.37.0.tar.xz -/vte-0.37.1.tar.xz -/vte-0.37.2.tar.xz -/vte-0.37.90.tar.xz -/vte-0.38.0.tar.xz -/vte-0.38.1.tar.xz -/vte-0.38.2.tar.xz -/vte-0.39.0.tar.xz -/vte-0.39.1.tar.xz -/vte-0.39.90.tar.xz -/vte-0.39.92.tar.xz -/vte-0.40.0.tar.xz -/vte-0.40.2.tar.xz -/vte-0.41.90.tar.xz -/vte-0.42.0.tar.xz -/vte-0.42.1.tar.xz -/vte-0.42.3.tar.xz -/vte-0.43.0.tar.xz -/vte-0.43.1.tar.xz -/vte-0.43.2.tar.xz -/vte-0.43.90.tar.xz -/vte-0.43.91.tar.xz -/vte-0.43.92.tar.xz -/vte-0.44.0.tar.xz -/vte-0.44.1.tar.xz -/vte-0.44.2.tar.xz -/vte-0.45.90.tar.xz -/vte-0.45.92.tar.xz -/vte-0.46.0.tar.xz -/vte-0.46.1.tar.xz -/vte-0.47.90.tar.xz -/vte-0.48.1.tar.xz -/vte-0.48.2.tar.xz -/vte-0.48.3.tar.xz -/vte-0.50.0.tar.xz -/vte-0.50.1.tar.xz -/vte-0.50.2.tar.xz -/vte-0.51.3.tar.xz -/vte-0.51.90.tar.xz -/vte-0.52.0.tar.xz -/vte-0.52.1.tar.xz -/vte-0.52.2.tar.xz -/vte-0.53.0.tar.xz -/vte-0.53.92.tar.xz -/vte-0.54.0.tar.xz -/vte-0.54.1.tar.xz -/vte-0.54.2.tar.xz -/vte-0.54.3.tar.xz -/vte-0.55.90.tar.xz -/vte-0.55.92.tar.xz -/vte-0.56.0.tar.xz -/vte-0.56.1.tar.xz -/vte-0.56.2.tar.xz -/vte-0.56.3.tar.xz -/vte-0.57.0.tar.xz -/vte-0.57.3.tar.xz -/vte-0.57.90.tar.xz -/vte-0.58.0.tar.xz -/vte-0.58.1.tar.xz -/vte-0.58.2.tar.xz -/vte-0.58.3.tar.xz -/vte-0.59.0.tar.xz -/vte-0.59.91.tar.xz -/vte-0.59.92.tar.xz -/vte-0.60.0.tar.xz -/vte-0.60.1.tar.xz -/vte-0.60.2.tar.xz -/vte-0.60.3.tar.xz -/vte-0.61.90.tar.xz -/vte-0.61.91.tar.xz -/vte-0.62.0.tar.xz -/vte-0.62.1.tar.xz -/vte-0.62.2.tar.xz -/vte-0.62.3.tar.xz -/vte-0.63.91.tar.xz -/vte-0.64.0.tar.xz -/vte-0.64.1.tar.xz -/vte-0.64.2.tar.xz -/vte-0.65.91.tar.bz2 -/vte-0.66.0.tar.bz2 -/vte-0.66.1.tar.bz2 -/vte-0.66.2.tar.xz -/vte-0.67.90.tar.xz -/vte-0.68.0.tar.bz2 -/vte-0.69.90.tar.xz -/vte-0.69.92.tar.bz2 -/vte-0.70.0.tar.xz -/vte-0.70.1.tar.xz -/vte-0.70.2.tar.xz -/vte-0.71.92.tar.xz -/vte-0.71.99.tar.xz -/vte-0.72.0.tar.bz2 -/vte-0.72.0.tar.xz -/vte-0.72.1.tar.bz2 -/vte-0.72.2.tar.xz -/vte-0.73.93.tar.xz -/vte-0.74.0.tar.xz -/vte-0.74.1.tar.xz -/vte-0.74.2.tar.xz -/vte-0.76.0.tar.xz -/vte-0.76.1.tar.xz -/vte-0.76.2.tar.xz -/vte-0.76.3.tar.xz -/vte-0.77.0.tar.bz2 -/vte-0.77.91.tar.xz -/vte-0.77.92.tar.bz2 -/vte-0.78.0.tar.xz -/vte-0.78.1.tar.xz -/vte-0.78.2.tar.xz -/vte-0.79.90.tar.xz -/vte-0.79.0.tar.xz -/vte-0.79.91.tar.xz -/vte-0.80.0.tar.xz -/vte-0.80.1.tar.xz -/vte-0.80.2.tar.xz +/vte-*.tar.xz +/vte-*-build diff --git a/0001-Only-use-fast_float-when-std-from_chars-is-insuffici.patch b/0001-Only-use-fast_float-when-std-from_chars-is-insuffici.patch index b44c953..54dd033 100644 --- a/0001-Only-use-fast_float-when-std-from_chars-is-insuffici.patch +++ b/0001-Only-use-fast_float-when-std-from_chars-is-insuffici.patch @@ -1,4 +1,4 @@ -From 39557ba02e67af3d6585da96560459bc3b922ca3 Mon Sep 17 00:00:00 2001 +From 5a7238855b363502686557d7cb08ab23823caff6 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Wed, 19 Feb 2025 13:43:15 -0500 Subject: [PATCH] Only use fast_float when std::from_chars is insufficient @@ -10,14 +10,14 @@ older g++. --- meson.build | 25 +++++++++++++++++++++++++ src/color-parser.cc | 4 ++++ - src/termprops.hh | 4 ++++ + src/properties.hh | 4 ++++ 3 files changed, 33 insertions(+) diff --git a/meson.build b/meson.build -index 7b590c33..ab02880a 100644 +index b7dc930d6..dabe21488 100644 --- a/meson.build +++ b/meson.build -@@ -675,6 +675,29 @@ config_h.set10('WITH_SYSTEMD', systemd_dep.found()) +@@ -698,6 +698,29 @@ config_h.set10('WITH_SYSTEMD', systemd_dep.found()) # try compiling a test programme to see if the version is new enough. if cxx.compiles(''' @@ -47,7 +47,7 @@ index 7b590c33..ab02880a 100644 #include #include #include -@@ -701,6 +724,8 @@ else +@@ -724,6 +747,8 @@ else fast_float_dep = dependency('fast_float', required: true) endif @@ -57,7 +57,7 @@ index 7b590c33..ab02880a 100644 config_sources = [ diff --git a/src/color-parser.cc b/src/color-parser.cc -index 237b4ca7..8d205307 100644 +index 237b4ca79..8d205307f 100644 --- a/src/color-parser.cc +++ b/src/color-parser.cc @@ -29,7 +29,11 @@ @@ -70,14 +70,14 @@ index 237b4ca7..8d205307 100644 +#define fast_float std +#endif - #include "color-names.hh" + #include -diff --git a/src/termprops.hh b/src/termprops.hh -index c9253764..0f462acb 100644 ---- a/src/termprops.hh -+++ b/src/termprops.hh -@@ -35,7 +35,11 @@ - #include +diff --git a/src/properties.hh b/src/properties.hh +index 7c7c597f2..fcd4a190c 100644 +--- a/src/properties.hh ++++ b/src/properties.hh +@@ -40,7 +40,11 @@ + #include #include +#if WITH_FAST_FLOAT @@ -86,8 +86,8 @@ index c9253764..0f462acb 100644 +#define fast_float std +#endif - namespace vte::terminal { + namespace vte::property { -- -2.48.1 +GitLab diff --git a/sources b/sources index a8d6ce3..581bd3b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.80.2.tar.xz) = 6ff5dc8971279b3cb035f0b70a2c13b06f97cea840e117c4fa0273ec491a00ed4475abc4b84e91b5536d85714b6f751092a2652027df477d746fe66f407a2de2 +SHA512 (vte-0.81.0.tar.xz) = e6d9ae09fa37e118de4e0557552f8fea757c6f73149ebf396ceffc077c737f4d0d5ce2ff3ddc099ac616ed24c8ac0162d21eaa7cf3c59c9911011fbf05950505 diff --git a/vte291.spec b/vte291.spec index 6896d57..8109932 100644 --- a/vte291.spec +++ b/vte291.spec @@ -1,5 +1,6 @@ %global apiver 2.91 +%global fmt_version 11.0.0 %global fribidi_version 1.0.0 %global glib2_version 2.72.0 %global gnutls_version 3.2.7 @@ -11,7 +12,7 @@ %global pcre2_version 10.21 Name: vte291 -Version: 0.80.2 +Version: 0.81.0 Release: %autorelease Summary: GTK terminal emulator library @@ -19,11 +20,12 @@ Summary: GTK terminal emulator library License: GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND X11 AND CC-BY-4.0 URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://download.gnome.org/sources/vte/0.80/vte-%{version}.tar.xz +Source0: https://download.gnome.org/sources/vte/0.81/vte-%{version}.tar.xz # https://gitlab.gnome.org/GNOME/vte/-/merge_requests/2 Patch0: 0001-Only-use-fast_float-when-std-from_chars-is-insuffici.patch +BuildRequires: pkgconfig(fmt) >= %{fmt_version} BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} BuildRequires: pkgconfig(gio-2.0) >= %{glib2_version} BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version} @@ -36,6 +38,7 @@ BuildRequires: pkgconfig(liblz4) BuildRequires: pkgconfig(libpcre2-8) >= %{pcre2_version} BuildRequires: pkgconfig(libsystemd) >= %{libsystemd_version} BuildRequires: pkgconfig(pango) >= %{pango_version} +BuildRequires: fast_float-devel BuildRequires: gcc-c++ BuildRequires: gettext BuildRequires: gi-docgen @@ -144,6 +147,10 @@ rm %{buildroot}/%{_datadir}/applications/org.gnome.Vte.App.Gtk4.desktop %{_userunitdir}/vte-spawn-.scope.d %{_datadir}/xdg-terminals/org.gnome.Vte.App.Gtk3.desktop %{_datadir}/xdg-terminals/org.gnome.Vte.App.Gtk4.desktop +%dir %{_datadir}/vte-2.91 +%dir %{_datadir}/vte-2.91/terminfo +%dir %{_datadir}/vte-2.91/terminfo/x +%{_datadir}/vte-2.91/terminfo/x/xterm-256color %files gtk4 %{_libdir}/libvte-%{apiver}-gtk4.so.0* From 16c104b4e302a9f226cbba3998b388fa0adfcf04 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Wed, 9 Jul 2025 14:34:34 +0200 Subject: [PATCH 140/164] Add simdutf dependency --- vte291.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vte291.spec b/vte291.spec index 8109932..becb163 100644 --- a/vte291.spec +++ b/vte291.spec @@ -10,6 +10,7 @@ %global libsystemd_version 220 %global pango_version 1.22.0 %global pcre2_version 10.21 +%global simdutf_version 7.2.1 Name: vte291 Version: 0.81.0 @@ -38,6 +39,7 @@ BuildRequires: pkgconfig(liblz4) BuildRequires: pkgconfig(libpcre2-8) >= %{pcre2_version} BuildRequires: pkgconfig(libsystemd) >= %{libsystemd_version} BuildRequires: pkgconfig(pango) >= %{pango_version} +BuildRequires: pkgconfig(simdutf) >= %{simdutf_version} BuildRequires: fast_float-devel BuildRequires: gcc-c++ BuildRequires: gettext From 1f4ccca048c0fb67e030f0092cf4f94f2a9f31fb Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 25 Jul 2025 20:14:46 +0000 Subject: [PATCH 141/164] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From 67a7646a01b09b5197402e202e67fe0996a84f2c Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Mon, 28 Jul 2025 17:05:30 -0400 Subject: [PATCH 142/164] Update std::from_chars patch https://gitlab.gnome.org/GNOME/vte/-/merge_requests/2 --- ...oat-when-std-from_chars-is-insuffici.patch | 51 ++++++++++++++++--- vte291.spec | 1 - 2 files changed, 43 insertions(+), 9 deletions(-) diff --git a/0001-Only-use-fast_float-when-std-from_chars-is-insuffici.patch b/0001-Only-use-fast_float-when-std-from_chars-is-insuffici.patch index 54dd033..672fa27 100644 --- a/0001-Only-use-fast_float-when-std-from_chars-is-insuffici.patch +++ b/0001-Only-use-fast_float-when-std-from_chars-is-insuffici.patch @@ -1,4 +1,4 @@ -From 5a7238855b363502686557d7cb08ab23823caff6 Mon Sep 17 00:00:00 2001 +From 31a469d55774e8487003e26964c5e7e071ad8e84 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Wed, 19 Feb 2025 13:43:15 -0500 Subject: [PATCH] Only use fast_float when std::from_chars is insufficient @@ -10,14 +10,16 @@ older g++. --- meson.build | 25 +++++++++++++++++++++++++ src/color-parser.cc | 4 ++++ + src/parser-glue.hh | 5 +++++ + src/parser-test.cc | 2 ++ src/properties.hh | 4 ++++ - 3 files changed, 33 insertions(+) + 5 files changed, 40 insertions(+) diff --git a/meson.build b/meson.build -index b7dc930d6..dabe21488 100644 +index 5a53eeda..fb80a52e 100644 --- a/meson.build +++ b/meson.build -@@ -698,6 +698,29 @@ config_h.set10('WITH_SYSTEMD', systemd_dep.found()) +@@ -730,6 +730,29 @@ config_h.set10('WITH_SYSTEMD', systemd_dep.found()) # try compiling a test programme to see if the version is new enough. if cxx.compiles(''' @@ -47,7 +49,7 @@ index b7dc930d6..dabe21488 100644 #include #include #include -@@ -724,6 +747,8 @@ else +@@ -756,6 +779,8 @@ else fast_float_dep = dependency('fast_float', required: true) endif @@ -57,7 +59,7 @@ index b7dc930d6..dabe21488 100644 config_sources = [ diff --git a/src/color-parser.cc b/src/color-parser.cc -index 237b4ca79..8d205307f 100644 +index e6a813be..1d6175d6 100644 --- a/src/color-parser.cc +++ b/src/color-parser.cc @@ -29,7 +29,11 @@ @@ -72,8 +74,41 @@ index 237b4ca79..8d205307f 100644 #include +diff --git a/src/parser-glue.hh b/src/parser-glue.hh +index e129c1a2..e43f864e 100644 +--- a/src/parser-glue.hh ++++ b/src/parser-glue.hh +@@ -26,7 +26,12 @@ + + #include "debug.hh" + ++#if WITH_FAST_FLOAT + #include ++#else ++#include ++#define fast_float std ++#endif + + #include + +diff --git a/src/parser-test.cc b/src/parser-test.cc +index e076bb49..42430cd6 100644 +--- a/src/parser-test.cc ++++ b/src/parser-test.cc +@@ -1738,9 +1738,11 @@ main(int argc, + g_test_add_func("/vte/parser/sequences/glue/uchar", test_seq_glue_uchar); + g_test_add_func("/vte/parser/sequences/glue/string", test_seq_glue_string); + g_test_add_func("/vte/parser/sequences/glue/string-tokeniser/char", test_seq_glue_string_tokeniser); ++#if HAVE_FAST_FLOAT + // requires newest fast_float + // g_test_add_func("/vte/parser/sequences/glue/string-tokeniser/char8_t", test_seq_glue_string_tokeniser); + g_test_add_func("/vte/parser/sequences/glue/string-tokeniser/char32_t", test_seq_glue_string_tokeniser); ++#endif + g_test_add_func("/vte/parser/sequences/glue/sequence-builder", test_seq_glue_sequence_builder); + g_test_add_func("/vte/parser/sequences/control", test_seq_control); + g_test_add_func("/vte/parser/sequences/escape/invalid", test_seq_esc_invalid); diff --git a/src/properties.hh b/src/properties.hh -index 7c7c597f2..fcd4a190c 100644 +index 58e1d2c9..9757bf54 100644 --- a/src/properties.hh +++ b/src/properties.hh @@ -40,7 +40,11 @@ @@ -89,5 +124,5 @@ index 7c7c597f2..fcd4a190c 100644 namespace vte::property { -- -GitLab +2.50.1 diff --git a/vte291.spec b/vte291.spec index becb163..81dbc12 100644 --- a/vte291.spec +++ b/vte291.spec @@ -40,7 +40,6 @@ BuildRequires: pkgconfig(libpcre2-8) >= %{pcre2_version} BuildRequires: pkgconfig(libsystemd) >= %{libsystemd_version} BuildRequires: pkgconfig(pango) >= %{pango_version} BuildRequires: pkgconfig(simdutf) >= %{simdutf_version} -BuildRequires: fast_float-devel BuildRequires: gcc-c++ BuildRequires: gettext BuildRequires: gi-docgen From d77bcdd7cc1719951afcfe0bccd503f4769ca082 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Tue, 5 Aug 2025 23:55:09 +0200 Subject: [PATCH 143/164] Rebuilt for icu 77.1 From dedee5c4eeaaa6666b40ed9da82fce42114590ac Mon Sep 17 00:00:00 2001 From: Fabio Valentini Date: Mon, 25 Aug 2025 19:03:40 +0200 Subject: [PATCH 144/164] Update to version 0.81.90 --- sources | 2 +- vte291.spec | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/sources b/sources index 581bd3b..3e03cef 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.81.0.tar.xz) = e6d9ae09fa37e118de4e0557552f8fea757c6f73149ebf396ceffc077c737f4d0d5ce2ff3ddc099ac616ed24c8ac0162d21eaa7cf3c59c9911011fbf05950505 +SHA512 (vte-0.81.90.tar.xz) = 733ebde781fde8838a2f1151c733c5d669b07bc8033379bd61931786c16f7f79296ead197b3ecafe2d9a95bce086b4f8f54e090a90cc4cfa8ce07ac3538d2388 diff --git a/vte291.spec b/vte291.spec index 81dbc12..d413f56 100644 --- a/vte291.spec +++ b/vte291.spec @@ -13,7 +13,7 @@ %global simdutf_version 7.2.1 Name: vte291 -Version: 0.81.0 +Version: 0.81.90 Release: %autorelease Summary: GTK terminal emulator library @@ -148,10 +148,6 @@ rm %{buildroot}/%{_datadir}/applications/org.gnome.Vte.App.Gtk4.desktop %{_userunitdir}/vte-spawn-.scope.d %{_datadir}/xdg-terminals/org.gnome.Vte.App.Gtk3.desktop %{_datadir}/xdg-terminals/org.gnome.Vte.App.Gtk4.desktop -%dir %{_datadir}/vte-2.91 -%dir %{_datadir}/vte-2.91/terminfo -%dir %{_datadir}/vte-2.91/terminfo/x -%{_datadir}/vte-2.91/terminfo/x/xterm-256color %files gtk4 %{_libdir}/libvte-%{apiver}-gtk4.so.0* From 3c7962ad56a3fac12f22385a5a16c3ce1eb798a1 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Fri, 16 Dec 2022 11:00:34 -0500 Subject: [PATCH 145/164] Ensure correct fonts are installed for HTML docs --- vte291.spec | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/vte291.spec b/vte291.spec index d413f56..3e7eda1 100644 --- a/vte291.spec +++ b/vte291.spec @@ -87,6 +87,10 @@ Summary: Development files for GTK+ 3 %{name} License: GPL-3.0-or-later AND LGPL-3.0-or-later Requires: %{name}%{?_isa} = %{version}-%{release} +# Because web fonts from upstream are not bundled in the gi-docgen package, +# packages containing documentation generated with gi-docgen should depend on +# this metapackage to ensure the proper system fonts are present. +Recommends: gi-docgen-fonts %description devel The %{name}-devel package contains libraries and header files for @@ -101,6 +105,10 @@ License: GPL-3.0-or-later AND LGPL-3.0-or-later Requires: %{name}-gtk4%{?_isa} = %{version}-%{release} Requires: %{name}-devel%{?_isa} = %{version}-%{release} +# Because web fonts from upstream are not bundled in the gi-docgen package, +# packages containing documentation generated with gi-docgen should depend on +# this metapackage to ensure the proper system fonts are present. +Recommends: gi-docgen-fonts %description gtk4-devel The %{name}-gtk4-devel package contains libraries and header files for From 55becaf64d0487f001f7e5cf10a5dc32f6d02ab0 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 3 Sep 2025 16:54:26 -0500 Subject: [PATCH 146/164] Add a bunch of patches! The a11y patches are requested by Lenovo. Then we also have a fix for: https://bugzilla.redhat.com/show_bug.cgi?id=2390745 --- a11y-granular-scroll-notifications.patch | 197 +++++++++++++++++++++++ a11y-line-counting.patch | 30 ++++ a11y-range-per-text-attribute.patch | 37 +++++ fix-backspace.patch | 27 ++++ vte291.spec | 12 +- 5 files changed, 302 insertions(+), 1 deletion(-) create mode 100644 a11y-granular-scroll-notifications.patch create mode 100644 a11y-line-counting.patch create mode 100644 a11y-range-per-text-attribute.patch create mode 100644 fix-backspace.patch diff --git a/a11y-granular-scroll-notifications.patch b/a11y-granular-scroll-notifications.patch new file mode 100644 index 0000000..1ef57d6 --- /dev/null +++ b/a11y-granular-scroll-notifications.patch @@ -0,0 +1,197 @@ +From f685d94c79e03d352bdb9a567268db233066aed5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Tyrychtr?= +Date: Wed, 20 Aug 2025 14:34:20 +0200 +Subject: [PATCH] vteaccess-gtk4: Implement granular notifications upon + scrolling + +This MR implements the missing scroll notifications, which are much more +semantic than the previous ones which only relied on the changed text. + +Fixes #2877 +--- + src/vteaccess-gtk4.cc | 88 +++++++++++++++++++++++++++++++++++++++++-- + src/vteaccess-gtk4.h | 1 + + src/vteinternal.hh | 23 ++++++----- + 3 files changed, 100 insertions(+), 12 deletions(-) + +diff --git a/src/vteaccess-gtk4.cc b/src/vteaccess-gtk4.cc +index b886d2c6c..e626bb274 100644 +--- a/src/vteaccess-gtk4.cc ++++ b/src/vteaccess-gtk4.cc +@@ -75,6 +75,7 @@ typedef struct _VteAccessibleText + VteTerminal *terminal; + VteAccessibleTextContents contents[2]; + guint contents_flip : 1; ++ guint text_scrolled : 1; + } VteAccessibleText; + + static inline gboolean +@@ -816,6 +817,11 @@ vte_accessible_text_contents_changed (VteTerminal *terminal, + if (!vte_terminal_get_enable_a11y (terminal)) + return; + ++ if (state->text_scrolled) { ++ state->text_scrolled = FALSE; ++ return; ++ } ++ + prev = &state->contents[state->contents_flip]; + next = &state->contents[!state->contents_flip]; + +@@ -839,12 +845,11 @@ vte_accessible_text_contents_changed (VteTerminal *terminal, + /* NOTE: + * + * The code below is based upon what vteaccess.cc did for GTK 3. +- * It does not do any sort of appropriate diffing to try to handle +- * scrolling correctly. That would be a good idea to implement in +- * the longer term. + * + * It just looks for a long prefix match, and then a long suffix + * match and attempts to diff what is between those to end points. ++ * ++ * Scrolling based changes are handled separately. + */ + + const char *prevc = prevstr; +@@ -1017,3 +1022,80 @@ _vte_accessible_text_init (GtkAccessibleText *accessible) + GTK_ACCESSIBLE_PROPERTY_MULTI_LINE, TRUE, + GTK_ACCESSIBLE_VALUE_UNDEFINED); + } ++ ++void ++_vte_accessible_text_scrolled (GtkAccessibleText *accessible, long delta) ++{ ++ VteTerminal *terminal = VTE_TERMINAL (accessible); ++ VteAccessibleText *state = vte_accessible_text_get (terminal); ++ VteAccessibleTextContents *prev = &state->contents[state->contents_flip]; ++ VteAccessibleTextContents *next = &state->contents[!state->contents_flip]; ++ ++ g_assert (VTE_IS_TERMINAL (terminal)); ++ g_assert (state != nullptr); ++ g_assert (state->terminal == terminal); ++ ++ if (!vte_terminal_get_enable_a11y (terminal)) ++ return; ++ ++ _vte_debug_print (vte::debug::category::ALLY, ++ "Text scrolled by {} lines", delta); ++ ++ vte_accessible_text_contents_reset (next); ++ vte_accessible_text_contents_snapshot (next, state->terminal); ++ ++ if (delta > 0) { ++ /* Scrolling down: lines at the top disappeared, new lines appeared at bottom */ ++ gsize lines_to_remove = MIN(delta, char_positions_get_size(&prev->linebreaks)); ++ if (lines_to_remove > 0 && char_positions_get_size(&prev->linebreaks) > 0) { ++ /* Find how many characters were in the removed lines */ ++ gsize chars_removed = 0; ++ if (lines_to_remove < char_positions_get_size(&prev->linebreaks)) { ++ chars_removed = *char_positions_index(&prev->linebreaks, lines_to_remove); ++ } else { ++ chars_removed = prev->n_chars; ++ } ++ ++ if (chars_removed > 0) { ++ /* Notify that text was removed from the beginning */ ++ gtk_accessible_text_update_contents(accessible, ++ GTK_ACCESSIBLE_TEXT_CONTENT_CHANGE_REMOVE, ++ 0, chars_removed); ++ ++ /* Notify that new text was added at the end */ ++ state->contents_flip = !state->contents_flip; ++ gtk_accessible_text_update_contents(accessible, ++ GTK_ACCESSIBLE_TEXT_CONTENT_CHANGE_INSERT, ++ next->n_chars - chars_removed, next->n_chars); ++ } ++ } ++ } else if (delta < 0) { ++ /* Scrolling up: lines at the bottom disappeared, new lines appeared at top */ ++ gsize lines_to_remove = MIN(-delta, char_positions_get_size(&prev->linebreaks)); ++ if (lines_to_remove > 0 && char_positions_get_size(&prev->linebreaks) > 0) { ++ /* Find how many characters were in the removed lines from bottom */ ++ gsize start_remove = char_positions_get_size(&prev->linebreaks) - lines_to_remove; ++ gsize chars_removed = 0; ++ if (start_remove < char_positions_get_size(&prev->linebreaks)) { ++ gsize remove_start_pos = *char_positions_index(&prev->linebreaks, start_remove); ++ chars_removed = prev->n_chars - remove_start_pos; ++ } else { ++ chars_removed = prev->n_chars; ++ } ++ ++ if (chars_removed > 0) { ++ /* Notify that text was removed from the end */ ++ gtk_accessible_text_update_contents(accessible, ++ GTK_ACCESSIBLE_TEXT_CONTENT_CHANGE_REMOVE, ++ prev->n_chars - chars_removed, prev->n_chars); ++ ++ /* Notify that new text was added at the beginning */ ++ state->contents_flip = !state->contents_flip; ++ gtk_accessible_text_update_contents(accessible, ++ GTK_ACCESSIBLE_TEXT_CONTENT_CHANGE_INSERT, ++ 0, chars_removed); ++ } ++ } ++ } ++ state->text_scrolled = TRUE; ++} +diff --git a/src/vteaccess-gtk4.h b/src/vteaccess-gtk4.h +index 37b09c7b3..cd79d7131 100644 +--- a/src/vteaccess-gtk4.h ++++ b/src/vteaccess-gtk4.h +@@ -21,5 +21,6 @@ G_BEGIN_DECLS + + void _vte_accessible_text_iface_init (GtkAccessibleTextInterface *iface); + void _vte_accessible_text_init (GtkAccessibleText *accessible); ++void _vte_accessible_text_scrolled (GtkAccessibleText *accessible, long delta); + + G_END_DECLS +diff --git a/src/vteinternal.hh b/src/vteinternal.hh +index 104042a86..636d03b97 100644 +--- a/src/vteinternal.hh ++++ b/src/vteinternal.hh +@@ -88,7 +88,8 @@ static_assert(CHAR_BIT == 8, "Weird"); + #if WITH_A11Y + #if VTE_GTK == 3 + #include "vteaccess.h" +-#else ++#elif VTE_GTK == 4 ++#include "vteaccess-gtk4.h" + #endif + #endif + +@@ -1431,20 +1432,24 @@ public: + _vte_terminal_accessible_text_modified(m_accessible.get()); + } + +- void emit_text_scrolled(long delta) +- { +- if (m_accessible) +- _vte_terminal_accessible_text_scrolled(m_accessible.get(), delta); +- } +- + #else + + inline constexpr void emit_text_deleted() const noexcept { } + inline constexpr void emit_text_inserted() const noexcept { } + inline constexpr void emit_text_modified() const noexcept { } +- inline constexpr void emit_text_scrolled(long delta) const noexcept { } + +-#endif /* WITH_A11Y && VTE_GTK == 3*/ ++#endif /* WITH_A11Y && (VTE_GTK == 3 || VTE_GTK == 4)*/ ++ ++ void emit_text_scrolled(long delta) ++ { ++#if WITH_A11Y && VTE_GTK == 3 ++ if (m_accessible) ++ _vte_terminal_accessible_text_scrolled(m_accessible.get(), delta); ++#elif WITH_A11Y && VTE_GTK == 4 ++ if (m_widget) ++ _vte_accessible_text_scrolled(GTK_ACCESSIBLE_TEXT(m_widget), delta); ++#endif ++ } + + bool m_no_legacy_signals{false}; + +-- +GitLab + diff --git a/a11y-line-counting.patch b/a11y-line-counting.patch new file mode 100644 index 0000000..385cd4f --- /dev/null +++ b/a11y-line-counting.patch @@ -0,0 +1,30 @@ +From 1fc98911a0de338897e76ddec8d0682217fa5753 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Tyrychtr?= +Date: Mon, 14 Apr 2025 15:48:02 +0200 +Subject: [PATCH] vte-access-gtk4: Fix line counting during a line query + +We were comparing the byte offset of the character to the next line start. +However, the line start index is in characters, not byte offsets. So, with +enough multi-byte characters, we started returning nonsense. + +Fixes orca#588. +--- + src/vteaccess-gtk4.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/vteaccess-gtk4.cc b/src/vteaccess-gtk4.cc +index efd89fdbc..9fe91ac96 100644 +--- a/src/vteaccess-gtk4.cc ++++ b/src/vteaccess-gtk4.cc +@@ -475,7 +475,7 @@ vte_accessible_text_get_contents_at (GtkAccessibleText *accessible, + line++) { + guint line_offset = *char_positions_index (&contents->linebreaks, line); + +- if (line_offset > char_offset) { ++ if (line_offset > offset) { + line--; + break; + } +-- +GitLab + diff --git a/a11y-range-per-text-attribute.patch b/a11y-range-per-text-attribute.patch new file mode 100644 index 0000000..21bb4ed --- /dev/null +++ b/a11y-range-per-text-attribute.patch @@ -0,0 +1,37 @@ +From 52529a4787a358dcff4c2e22911b30602f9d5048 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Tyrychtr?= +Date: Fri, 2 May 2025 15:09:49 +0200 +Subject: [PATCH] vteaccess-gtk4: Return a range per text attribute + +The docs say that a text attribute is composed of a range,, name and value. +We were returning only one range, though, so the code in Gtk counting on +the fact that n_ranges was also the number of attributes, was confused. +As a result, we were always only returning the first text attribute. +--- + src/vteaccess-gtk4.cc | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/vteaccess-gtk4.cc b/src/vteaccess-gtk4.cc +index b886d2c6c..539346f38 100644 +--- a/src/vteaccess-gtk4.cc ++++ b/src/vteaccess-gtk4.cc +@@ -687,12 +687,14 @@ vte_accessible_text_get_attributes (GtkAccessibleText *accessible, + + *attribute_names = g_new0 (char *, n_attrs + 1); + *attribute_values = g_new0 (char *, n_attrs + 1); +- *n_ranges = 1; +- *ranges = (GtkAccessibleTextRange *)g_memdup2 (&range, sizeof range); ++ *n_ranges = n_attrs; ++ *ranges = g_new (GtkAccessibleTextRange, n_attrs); + + for (i = 0; i < n_attrs; i++) { + (*attribute_names)[i] = g_strdup (attrs[i].name); + (*attribute_values)[i] = g_strdup (attrs[i].value); ++ (*ranges)[i].start = range.start; ++ (*ranges)[i].length = range.length; + } + + return TRUE; +-- +GitLab + diff --git a/fix-backspace.patch b/fix-backspace.patch new file mode 100644 index 0000000..f97e1d6 --- /dev/null +++ b/fix-backspace.patch @@ -0,0 +1,27 @@ +From 35573b12658daf4c25f8ee4f77b743af5ff8465f Mon Sep 17 00:00:00 2001 +From: Christian Persch +Date: Sun, 31 Aug 2025 20:33:16 +0200 +Subject: [PATCH] emulation: Fix XTRQTCAP response for Backspace key + +https://gitlab.gnome.org/GNOME/vte/-/issues/2897 +(cherry picked from commit bb0e930f446812f4b15d97f1f26566006925f7ac) +--- + src/vteseq.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/vteseq.cc b/src/vteseq.cc +index bbf7d276c..8821d73d3 100644 +--- a/src/vteseq.cc ++++ b/src/vteseq.cc +@@ -9817,7 +9817,7 @@ try + char* normal = nullptr; + auto len = 0uz; + auto suppress = false, add_modifiers = false; +- map_erase_binding(m_delete_binding, ++ map_erase_binding(keycode == GDK_KEY_Delete ? m_delete_binding : m_backspace_binding, + keycode == GDK_KEY_Delete ? EraseMode::eDELETE_SEQUENCE : EraseMode::eTTY, + state, + normal, +-- +GitLab + diff --git a/vte291.spec b/vte291.spec index 3e7eda1..16fc9bb 100644 --- a/vte291.spec +++ b/vte291.spec @@ -24,7 +24,17 @@ URL: https://wiki.gnome.org/Apps/Terminal/VTE Source0: https://download.gnome.org/sources/vte/0.81/vte-%{version}.tar.xz # https://gitlab.gnome.org/GNOME/vte/-/merge_requests/2 -Patch0: 0001-Only-use-fast_float-when-std-from_chars-is-insuffici.patch +Patch: 0001-Only-use-fast_float-when-std-from_chars-is-insuffici.patch + +# https://gitlab.gnome.org/GNOME/vte/-/merge_requests/4 +Patch: a11y-line-counting.patch +# https://gitlab.gnome.org/GNOME/vte/-/merge_requests/6 +Patch: a11y-range-per-text-attribute.patch +# https://gitlab.gnome.org/GNOME/vte/-/merge_requests/7 +Patch: a11y-granular-scroll-notifications.patch + +# https://gitlab.gnome.org/GNOME/vte/-/issues/2897 +Patch: fix-backspace.patch BuildRequires: pkgconfig(fmt) >= %{fmt_version} BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} From 754f52437b9d8e6ab532a762efd4d65f3f81fbd1 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 16 Sep 2025 14:23:02 -0500 Subject: [PATCH 147/164] Update to 0.82.0 Also, add a bcond to control whether we use bundled fast_float or system fast_float. --- ...oat-when-std-from_chars-is-insuffici.patch | 128 ------------ a11y-granular-scroll-notifications.patch | 197 ------------------ a11y-line-counting.patch | 30 --- a11y-range-per-text-attribute.patch | 37 ---- fix-backspace.patch | 27 --- sources | 2 +- vte291.spec | 39 ++-- 7 files changed, 24 insertions(+), 436 deletions(-) delete mode 100644 0001-Only-use-fast_float-when-std-from_chars-is-insuffici.patch delete mode 100644 a11y-granular-scroll-notifications.patch delete mode 100644 a11y-line-counting.patch delete mode 100644 a11y-range-per-text-attribute.patch delete mode 100644 fix-backspace.patch diff --git a/0001-Only-use-fast_float-when-std-from_chars-is-insuffici.patch b/0001-Only-use-fast_float-when-std-from_chars-is-insuffici.patch deleted file mode 100644 index 672fa27..0000000 --- a/0001-Only-use-fast_float-when-std-from_chars-is-insuffici.patch +++ /dev/null @@ -1,128 +0,0 @@ -From 31a469d55774e8487003e26964c5e7e071ad8e84 Mon Sep 17 00:00:00 2001 -From: Yaakov Selkowitz -Date: Wed, 19 Feb 2025 13:43:15 -0500 -Subject: [PATCH] Only use fast_float when std::from_chars is insufficient - -When the default C++ standard library provides the necessary support, it -should be preferred over any supplementary library. This restores the -status quo for recent g++ while still supporting clang -stdlib=libc++ and -older g++. ---- - meson.build | 25 +++++++++++++++++++++++++ - src/color-parser.cc | 4 ++++ - src/parser-glue.hh | 5 +++++ - src/parser-test.cc | 2 ++ - src/properties.hh | 4 ++++ - 5 files changed, 40 insertions(+) - -diff --git a/meson.build b/meson.build -index 5a53eeda..fb80a52e 100644 ---- a/meson.build -+++ b/meson.build -@@ -730,6 +730,29 @@ config_h.set10('WITH_SYSTEMD', systemd_dep.found()) - # try compiling a test programme to see if the version is new enough. - - if cxx.compiles(''' -+ #include -+ #include -+ #include -+ -+ int main(void) { -+ auto str = "1234"; -+ auto start = str; -+ auto end = str + strlen(str); -+ auto value = uint64_t{}; -+ auto rv = std::from_chars(start, end, value, 16); -+ if (rv.ec != std::errc{} || rv.ptr != end) -+ return 2; -+ -+ return 0; -+ } -+ ''', -+ args: [ -+ cxx_std_opt, -+ ], -+ name: 'system std::from_chars usability check', -+ ) -+ fast_float_dep = dependency('', required: false) -+elif cxx.compiles(''' - #include - #include - #include -@@ -756,6 +779,8 @@ else - fast_float_dep = dependency('fast_float', required: true) - endif - -+config_h.set10('WITH_FAST_FLOAT', fast_float_dep.found()) -+ - # Write config.h - - config_sources = [ -diff --git a/src/color-parser.cc b/src/color-parser.cc -index e6a813be..1d6175d6 100644 ---- a/src/color-parser.cc -+++ b/src/color-parser.cc -@@ -29,7 +29,11 @@ - - #include - -+#if WITH_FAST_FLOAT - #include -+#else -+#define fast_float std -+#endif - - #include - -diff --git a/src/parser-glue.hh b/src/parser-glue.hh -index e129c1a2..e43f864e 100644 ---- a/src/parser-glue.hh -+++ b/src/parser-glue.hh -@@ -26,7 +26,12 @@ - - #include "debug.hh" - -+#if WITH_FAST_FLOAT - #include -+#else -+#include -+#define fast_float std -+#endif - - #include - -diff --git a/src/parser-test.cc b/src/parser-test.cc -index e076bb49..42430cd6 100644 ---- a/src/parser-test.cc -+++ b/src/parser-test.cc -@@ -1738,9 +1738,11 @@ main(int argc, - g_test_add_func("/vte/parser/sequences/glue/uchar", test_seq_glue_uchar); - g_test_add_func("/vte/parser/sequences/glue/string", test_seq_glue_string); - g_test_add_func("/vte/parser/sequences/glue/string-tokeniser/char", test_seq_glue_string_tokeniser); -+#if HAVE_FAST_FLOAT - // requires newest fast_float - // g_test_add_func("/vte/parser/sequences/glue/string-tokeniser/char8_t", test_seq_glue_string_tokeniser); - g_test_add_func("/vte/parser/sequences/glue/string-tokeniser/char32_t", test_seq_glue_string_tokeniser); -+#endif - g_test_add_func("/vte/parser/sequences/glue/sequence-builder", test_seq_glue_sequence_builder); - g_test_add_func("/vte/parser/sequences/control", test_seq_control); - g_test_add_func("/vte/parser/sequences/escape/invalid", test_seq_esc_invalid); -diff --git a/src/properties.hh b/src/properties.hh -index 58e1d2c9..9757bf54 100644 ---- a/src/properties.hh -+++ b/src/properties.hh -@@ -40,7 +40,11 @@ - #include - #include - -+#if WITH_FAST_FLOAT - #include -+#else -+#define fast_float std -+#endif - - namespace vte::property { - --- -2.50.1 - diff --git a/a11y-granular-scroll-notifications.patch b/a11y-granular-scroll-notifications.patch deleted file mode 100644 index 1ef57d6..0000000 --- a/a11y-granular-scroll-notifications.patch +++ /dev/null @@ -1,197 +0,0 @@ -From f685d94c79e03d352bdb9a567268db233066aed5 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Tyrychtr?= -Date: Wed, 20 Aug 2025 14:34:20 +0200 -Subject: [PATCH] vteaccess-gtk4: Implement granular notifications upon - scrolling - -This MR implements the missing scroll notifications, which are much more -semantic than the previous ones which only relied on the changed text. - -Fixes #2877 ---- - src/vteaccess-gtk4.cc | 88 +++++++++++++++++++++++++++++++++++++++++-- - src/vteaccess-gtk4.h | 1 + - src/vteinternal.hh | 23 ++++++----- - 3 files changed, 100 insertions(+), 12 deletions(-) - -diff --git a/src/vteaccess-gtk4.cc b/src/vteaccess-gtk4.cc -index b886d2c6c..e626bb274 100644 ---- a/src/vteaccess-gtk4.cc -+++ b/src/vteaccess-gtk4.cc -@@ -75,6 +75,7 @@ typedef struct _VteAccessibleText - VteTerminal *terminal; - VteAccessibleTextContents contents[2]; - guint contents_flip : 1; -+ guint text_scrolled : 1; - } VteAccessibleText; - - static inline gboolean -@@ -816,6 +817,11 @@ vte_accessible_text_contents_changed (VteTerminal *terminal, - if (!vte_terminal_get_enable_a11y (terminal)) - return; - -+ if (state->text_scrolled) { -+ state->text_scrolled = FALSE; -+ return; -+ } -+ - prev = &state->contents[state->contents_flip]; - next = &state->contents[!state->contents_flip]; - -@@ -839,12 +845,11 @@ vte_accessible_text_contents_changed (VteTerminal *terminal, - /* NOTE: - * - * The code below is based upon what vteaccess.cc did for GTK 3. -- * It does not do any sort of appropriate diffing to try to handle -- * scrolling correctly. That would be a good idea to implement in -- * the longer term. - * - * It just looks for a long prefix match, and then a long suffix - * match and attempts to diff what is between those to end points. -+ * -+ * Scrolling based changes are handled separately. - */ - - const char *prevc = prevstr; -@@ -1017,3 +1022,80 @@ _vte_accessible_text_init (GtkAccessibleText *accessible) - GTK_ACCESSIBLE_PROPERTY_MULTI_LINE, TRUE, - GTK_ACCESSIBLE_VALUE_UNDEFINED); - } -+ -+void -+_vte_accessible_text_scrolled (GtkAccessibleText *accessible, long delta) -+{ -+ VteTerminal *terminal = VTE_TERMINAL (accessible); -+ VteAccessibleText *state = vte_accessible_text_get (terminal); -+ VteAccessibleTextContents *prev = &state->contents[state->contents_flip]; -+ VteAccessibleTextContents *next = &state->contents[!state->contents_flip]; -+ -+ g_assert (VTE_IS_TERMINAL (terminal)); -+ g_assert (state != nullptr); -+ g_assert (state->terminal == terminal); -+ -+ if (!vte_terminal_get_enable_a11y (terminal)) -+ return; -+ -+ _vte_debug_print (vte::debug::category::ALLY, -+ "Text scrolled by {} lines", delta); -+ -+ vte_accessible_text_contents_reset (next); -+ vte_accessible_text_contents_snapshot (next, state->terminal); -+ -+ if (delta > 0) { -+ /* Scrolling down: lines at the top disappeared, new lines appeared at bottom */ -+ gsize lines_to_remove = MIN(delta, char_positions_get_size(&prev->linebreaks)); -+ if (lines_to_remove > 0 && char_positions_get_size(&prev->linebreaks) > 0) { -+ /* Find how many characters were in the removed lines */ -+ gsize chars_removed = 0; -+ if (lines_to_remove < char_positions_get_size(&prev->linebreaks)) { -+ chars_removed = *char_positions_index(&prev->linebreaks, lines_to_remove); -+ } else { -+ chars_removed = prev->n_chars; -+ } -+ -+ if (chars_removed > 0) { -+ /* Notify that text was removed from the beginning */ -+ gtk_accessible_text_update_contents(accessible, -+ GTK_ACCESSIBLE_TEXT_CONTENT_CHANGE_REMOVE, -+ 0, chars_removed); -+ -+ /* Notify that new text was added at the end */ -+ state->contents_flip = !state->contents_flip; -+ gtk_accessible_text_update_contents(accessible, -+ GTK_ACCESSIBLE_TEXT_CONTENT_CHANGE_INSERT, -+ next->n_chars - chars_removed, next->n_chars); -+ } -+ } -+ } else if (delta < 0) { -+ /* Scrolling up: lines at the bottom disappeared, new lines appeared at top */ -+ gsize lines_to_remove = MIN(-delta, char_positions_get_size(&prev->linebreaks)); -+ if (lines_to_remove > 0 && char_positions_get_size(&prev->linebreaks) > 0) { -+ /* Find how many characters were in the removed lines from bottom */ -+ gsize start_remove = char_positions_get_size(&prev->linebreaks) - lines_to_remove; -+ gsize chars_removed = 0; -+ if (start_remove < char_positions_get_size(&prev->linebreaks)) { -+ gsize remove_start_pos = *char_positions_index(&prev->linebreaks, start_remove); -+ chars_removed = prev->n_chars - remove_start_pos; -+ } else { -+ chars_removed = prev->n_chars; -+ } -+ -+ if (chars_removed > 0) { -+ /* Notify that text was removed from the end */ -+ gtk_accessible_text_update_contents(accessible, -+ GTK_ACCESSIBLE_TEXT_CONTENT_CHANGE_REMOVE, -+ prev->n_chars - chars_removed, prev->n_chars); -+ -+ /* Notify that new text was added at the beginning */ -+ state->contents_flip = !state->contents_flip; -+ gtk_accessible_text_update_contents(accessible, -+ GTK_ACCESSIBLE_TEXT_CONTENT_CHANGE_INSERT, -+ 0, chars_removed); -+ } -+ } -+ } -+ state->text_scrolled = TRUE; -+} -diff --git a/src/vteaccess-gtk4.h b/src/vteaccess-gtk4.h -index 37b09c7b3..cd79d7131 100644 ---- a/src/vteaccess-gtk4.h -+++ b/src/vteaccess-gtk4.h -@@ -21,5 +21,6 @@ G_BEGIN_DECLS - - void _vte_accessible_text_iface_init (GtkAccessibleTextInterface *iface); - void _vte_accessible_text_init (GtkAccessibleText *accessible); -+void _vte_accessible_text_scrolled (GtkAccessibleText *accessible, long delta); - - G_END_DECLS -diff --git a/src/vteinternal.hh b/src/vteinternal.hh -index 104042a86..636d03b97 100644 ---- a/src/vteinternal.hh -+++ b/src/vteinternal.hh -@@ -88,7 +88,8 @@ static_assert(CHAR_BIT == 8, "Weird"); - #if WITH_A11Y - #if VTE_GTK == 3 - #include "vteaccess.h" --#else -+#elif VTE_GTK == 4 -+#include "vteaccess-gtk4.h" - #endif - #endif - -@@ -1431,20 +1432,24 @@ public: - _vte_terminal_accessible_text_modified(m_accessible.get()); - } - -- void emit_text_scrolled(long delta) -- { -- if (m_accessible) -- _vte_terminal_accessible_text_scrolled(m_accessible.get(), delta); -- } -- - #else - - inline constexpr void emit_text_deleted() const noexcept { } - inline constexpr void emit_text_inserted() const noexcept { } - inline constexpr void emit_text_modified() const noexcept { } -- inline constexpr void emit_text_scrolled(long delta) const noexcept { } - --#endif /* WITH_A11Y && VTE_GTK == 3*/ -+#endif /* WITH_A11Y && (VTE_GTK == 3 || VTE_GTK == 4)*/ -+ -+ void emit_text_scrolled(long delta) -+ { -+#if WITH_A11Y && VTE_GTK == 3 -+ if (m_accessible) -+ _vte_terminal_accessible_text_scrolled(m_accessible.get(), delta); -+#elif WITH_A11Y && VTE_GTK == 4 -+ if (m_widget) -+ _vte_accessible_text_scrolled(GTK_ACCESSIBLE_TEXT(m_widget), delta); -+#endif -+ } - - bool m_no_legacy_signals{false}; - --- -GitLab - diff --git a/a11y-line-counting.patch b/a11y-line-counting.patch deleted file mode 100644 index 385cd4f..0000000 --- a/a11y-line-counting.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 1fc98911a0de338897e76ddec8d0682217fa5753 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Tyrychtr?= -Date: Mon, 14 Apr 2025 15:48:02 +0200 -Subject: [PATCH] vte-access-gtk4: Fix line counting during a line query - -We were comparing the byte offset of the character to the next line start. -However, the line start index is in characters, not byte offsets. So, with -enough multi-byte characters, we started returning nonsense. - -Fixes orca#588. ---- - src/vteaccess-gtk4.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/vteaccess-gtk4.cc b/src/vteaccess-gtk4.cc -index efd89fdbc..9fe91ac96 100644 ---- a/src/vteaccess-gtk4.cc -+++ b/src/vteaccess-gtk4.cc -@@ -475,7 +475,7 @@ vte_accessible_text_get_contents_at (GtkAccessibleText *accessible, - line++) { - guint line_offset = *char_positions_index (&contents->linebreaks, line); - -- if (line_offset > char_offset) { -+ if (line_offset > offset) { - line--; - break; - } --- -GitLab - diff --git a/a11y-range-per-text-attribute.patch b/a11y-range-per-text-attribute.patch deleted file mode 100644 index 21bb4ed..0000000 --- a/a11y-range-per-text-attribute.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 52529a4787a358dcff4c2e22911b30602f9d5048 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Tyrychtr?= -Date: Fri, 2 May 2025 15:09:49 +0200 -Subject: [PATCH] vteaccess-gtk4: Return a range per text attribute - -The docs say that a text attribute is composed of a range,, name and value. -We were returning only one range, though, so the code in Gtk counting on -the fact that n_ranges was also the number of attributes, was confused. -As a result, we were always only returning the first text attribute. ---- - src/vteaccess-gtk4.cc | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/src/vteaccess-gtk4.cc b/src/vteaccess-gtk4.cc -index b886d2c6c..539346f38 100644 ---- a/src/vteaccess-gtk4.cc -+++ b/src/vteaccess-gtk4.cc -@@ -687,12 +687,14 @@ vte_accessible_text_get_attributes (GtkAccessibleText *accessible, - - *attribute_names = g_new0 (char *, n_attrs + 1); - *attribute_values = g_new0 (char *, n_attrs + 1); -- *n_ranges = 1; -- *ranges = (GtkAccessibleTextRange *)g_memdup2 (&range, sizeof range); -+ *n_ranges = n_attrs; -+ *ranges = g_new (GtkAccessibleTextRange, n_attrs); - - for (i = 0; i < n_attrs; i++) { - (*attribute_names)[i] = g_strdup (attrs[i].name); - (*attribute_values)[i] = g_strdup (attrs[i].value); -+ (*ranges)[i].start = range.start; -+ (*ranges)[i].length = range.length; - } - - return TRUE; --- -GitLab - diff --git a/fix-backspace.patch b/fix-backspace.patch deleted file mode 100644 index f97e1d6..0000000 --- a/fix-backspace.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 35573b12658daf4c25f8ee4f77b743af5ff8465f Mon Sep 17 00:00:00 2001 -From: Christian Persch -Date: Sun, 31 Aug 2025 20:33:16 +0200 -Subject: [PATCH] emulation: Fix XTRQTCAP response for Backspace key - -https://gitlab.gnome.org/GNOME/vte/-/issues/2897 -(cherry picked from commit bb0e930f446812f4b15d97f1f26566006925f7ac) ---- - src/vteseq.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/vteseq.cc b/src/vteseq.cc -index bbf7d276c..8821d73d3 100644 ---- a/src/vteseq.cc -+++ b/src/vteseq.cc -@@ -9817,7 +9817,7 @@ try - char* normal = nullptr; - auto len = 0uz; - auto suppress = false, add_modifiers = false; -- map_erase_binding(m_delete_binding, -+ map_erase_binding(keycode == GDK_KEY_Delete ? m_delete_binding : m_backspace_binding, - keycode == GDK_KEY_Delete ? EraseMode::eDELETE_SEQUENCE : EraseMode::eTTY, - state, - normal, --- -GitLab - diff --git a/sources b/sources index 3e03cef..f44bed4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.81.90.tar.xz) = 733ebde781fde8838a2f1151c733c5d669b07bc8033379bd61931786c16f7f79296ead197b3ecafe2d9a95bce086b4f8f54e090a90cc4cfa8ce07ac3538d2388 +SHA512 (vte-0.82.0.tar.xz) = 82d42c0824fde365cdef9e23a0ab1a01434275ca92383bdd3efc8074498f192821473103447f8667c785170886959bf22df5a2cc0d7d5375439e078402fd889f diff --git a/vte291.spec b/vte291.spec index 16fc9bb..b2a2d14 100644 --- a/vte291.spec +++ b/vte291.spec @@ -12,8 +12,14 @@ %global pcre2_version 10.21 %global simdutf_version 7.2.1 +%if 1 +%bcond bundled_fast_float 1 +%else +%bcond bundled_fast_float 0 +%endif + Name: vte291 -Version: 0.81.90 +Version: 0.82.0 Release: %autorelease Summary: GTK terminal emulator library @@ -21,20 +27,7 @@ Summary: GTK terminal emulator library License: GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND X11 AND CC-BY-4.0 URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://download.gnome.org/sources/vte/0.81/vte-%{version}.tar.xz - -# https://gitlab.gnome.org/GNOME/vte/-/merge_requests/2 -Patch: 0001-Only-use-fast_float-when-std-from_chars-is-insuffici.patch - -# https://gitlab.gnome.org/GNOME/vte/-/merge_requests/4 -Patch: a11y-line-counting.patch -# https://gitlab.gnome.org/GNOME/vte/-/merge_requests/6 -Patch: a11y-range-per-text-attribute.patch -# https://gitlab.gnome.org/GNOME/vte/-/merge_requests/7 -Patch: a11y-granular-scroll-notifications.patch - -# https://gitlab.gnome.org/GNOME/vte/-/issues/2897 -Patch: fix-backspace.patch +Source0: https://download.gnome.org/sources/vte/0.82/vte-%{version}.tar.xz BuildRequires: pkgconfig(fmt) >= %{fmt_version} BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} @@ -59,6 +52,10 @@ BuildRequires: meson BuildRequires: systemd-rpm-macros BuildRequires: vala +%if %{without bundled_fast_float} +BuildRequires: fast_float-devel +%endif + Requires: fribidi >= %{fribidi_version} Requires: glib2 >= %{glib2_version} Requires: gnutls%{?_isa} >= %{gnutls_version} @@ -69,7 +66,9 @@ Requires: pcre2%{?_isa} >= %{pcre2_version} Requires: systemd-libs%{?_isa} >= %{libsystemd_version} Requires: vte-profile -Conflicts: gnome-terminal < 3.20.1-2 +%if %{with bundled_fast_float} +Provides: bundled(fast_float) +%endif %description VTE is a library implementing a terminal emulator widget for GTK+. VTE @@ -145,6 +144,14 @@ emulator library. sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %endif +# Guarantee we don't accidentally use subprojects if a new subproject is added. +%if %{with bundled_fast_float} +rm -rf subprojects/fmt/ +rm -rf subprojects/simdutf/ +%else +rm -rf subprojects/ +%endif + %build %meson --buildtype=plain -Ddocs=true -Dgtk3=true -Dgtk4=true %meson_build From 05916348c17cacf8e9534f6c5f0d4f91fc7a128f Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 16 Sep 2025 18:15:33 -0500 Subject: [PATCH 148/164] Fix fast_float bcond condition --- vte291.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index b2a2d14..8746c38 100644 --- a/vte291.spec +++ b/vte291.spec @@ -12,7 +12,7 @@ %global pcre2_version 10.21 %global simdutf_version 7.2.1 -%if 1 +%if 0%{?rhel} %bcond bundled_fast_float 1 %else %bcond bundled_fast_float 0 From 3415f78862974c04c496e43365ab4fa6fc90084b Mon Sep 17 00:00:00 2001 From: Petr Schindler Date: Mon, 13 Oct 2025 21:51:42 +0200 Subject: [PATCH 149/164] Update to 0.82.1 --- sources | 2 +- vte291.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sources b/sources index f44bed4..0fb6472 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.82.0.tar.xz) = 82d42c0824fde365cdef9e23a0ab1a01434275ca92383bdd3efc8074498f192821473103447f8667c785170886959bf22df5a2cc0d7d5375439e078402fd889f +SHA512 (vte-0.82.1.tar.xz) = b636a96ed0ee066be2939e4cfebca63bb92414fd6f16287d9c0c814093e057d0b19bf0c4df76dca4816f893f1b49a6171f3bb94bb1e40a255517fe2695bea634 diff --git a/vte291.spec b/vte291.spec index 8746c38..d6435fd 100644 --- a/vte291.spec +++ b/vte291.spec @@ -19,7 +19,7 @@ %endif Name: vte291 -Version: 0.82.0 +Version: 0.82.1 Release: %autorelease Summary: GTK terminal emulator library From b28a1d52fc11fc5ce10d1cfffe75192ff7c93972 Mon Sep 17 00:00:00 2001 From: Adrian Vovk Date: Tue, 9 Dec 2025 20:44:00 -0500 Subject: [PATCH 150/164] Update to 0.82.2 --- sources | 2 +- vte291.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sources b/sources index 0fb6472..2c42b34 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.82.1.tar.xz) = b636a96ed0ee066be2939e4cfebca63bb92414fd6f16287d9c0c814093e057d0b19bf0c4df76dca4816f893f1b49a6171f3bb94bb1e40a255517fe2695bea634 +SHA512 (vte-0.82.2.tar.xz) = 73e90beec2672c04476d6673eeac448860faaa00e507f71f6c36122b38bbb5857b2d0b876a928254348ef0f006f5a091e0f09179d23d74d1e05bdbba28c65f74 diff --git a/vte291.spec b/vte291.spec index d6435fd..5449d8a 100644 --- a/vte291.spec +++ b/vte291.spec @@ -19,7 +19,7 @@ %endif Name: vte291 -Version: 0.82.1 +Version: 0.82.2 Release: %autorelease Summary: GTK terminal emulator library From ba10e7b8e56a5cc448687580b46aa49a78fde10c Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 17 Jan 2026 20:04:39 +0000 Subject: [PATCH 151/164] Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild From b48d579b6e725e9ac2541e7fc1767669ec65ef4c Mon Sep 17 00:00:00 2001 From: Jan Horak Date: Mon, 19 Jan 2026 20:29:13 +0100 Subject: [PATCH 152/164] Update to 0.82.3 --- sources | 2 +- vte291.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sources b/sources index 2c42b34..9ce8ebf 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.82.2.tar.xz) = 73e90beec2672c04476d6673eeac448860faaa00e507f71f6c36122b38bbb5857b2d0b876a928254348ef0f006f5a091e0f09179d23d74d1e05bdbba28c65f74 +SHA512 (vte-0.82.3.tar.xz) = 4b03ff539ea0240b2fe814c4523da248e9b201beb68439990f9590fd8f75024e869e06bf07c2afc06258b588b6750bdb776a1505662c991fddced39adbed15d8 diff --git a/vte291.spec b/vte291.spec index 5449d8a..676cc14 100644 --- a/vte291.spec +++ b/vte291.spec @@ -19,7 +19,7 @@ %endif Name: vte291 -Version: 0.82.2 +Version: 0.82.3 Release: %autorelease Summary: GTK terminal emulator library From 6807a69cfcc4ec2de2dffb7ccd5de4272f4fa196 Mon Sep 17 00:00:00 2001 From: Jan Horak Date: Tue, 3 Feb 2026 15:28:47 +0100 Subject: [PATCH 153/164] Update to 0.83.90 --- sources | 2 +- vte291.spec | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sources b/sources index 9ce8ebf..1a9a1d5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.82.3.tar.xz) = 4b03ff539ea0240b2fe814c4523da248e9b201beb68439990f9590fd8f75024e869e06bf07c2afc06258b588b6750bdb776a1505662c991fddced39adbed15d8 +SHA512 (vte-0.83.90.tar.xz) = 000aa173f9333028576c6a78e24b00e090d9361e31ecf76ae5e5ae0c9f8e31fdcf67817c3d135e71dca16389376a40b25d8803727ade96ccbb9522a832ff8056 diff --git a/vte291.spec b/vte291.spec index 676cc14..478d9c6 100644 --- a/vte291.spec +++ b/vte291.spec @@ -19,7 +19,7 @@ %endif Name: vte291 -Version: 0.82.3 +Version: 0.83.90 Release: %autorelease Summary: GTK terminal emulator library @@ -27,7 +27,7 @@ Summary: GTK terminal emulator library License: GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND X11 AND CC-BY-4.0 URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://download.gnome.org/sources/vte/0.82/vte-%{version}.tar.xz +Source0: https://download.gnome.org/sources/vte/0.83/vte-%{version}.tar.xz BuildRequires: pkgconfig(fmt) >= %{fmt_version} BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} From e772ad825ffa6f5d38ec7be6f9e55826e2274bba Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Tue, 24 Feb 2026 08:32:52 +0100 Subject: [PATCH 154/164] Onboard to Packit for stable Fedora branches --- .packit.yaml | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 .packit.yaml diff --git a/.packit.yaml b/.packit.yaml new file mode 100644 index 0000000..b1b62fd --- /dev/null +++ b/.packit.yaml @@ -0,0 +1,59 @@ +# Minimal Packit Configuration for GNOME Packages +# Copy this to your dist-git repository as .packit.yaml +# +# Prerequisites: +# - Package is monitored by release-monitoring.org +# - Monitoring status set to "Monitoring" in dist-git + +# Required for tag filtering (release-monitoring also tracks alpha/beta) +upstream_project_url: https://gitlab.gnome.org/GNOME/vte + +jobs: + # Automated updates for stable branches + - job: pull_from_upstream + trigger: release + # Packit does the full update (spec, changelog) on the latest stable branch. + # The exact same commit is reused to open PRs for all other stable branches, + # which can be merged with fast-forward only (git merge --ff-only), + # keeping a linear, non-divergent history across branches. + dist_git_branches: + fedora-latest-stable: + fast_forward_merge_into: + - fedora-stable + + # ======================================================================== + # VERSIONING: Choose ONE option based on your package's versioning scheme + # ======================================================================== + + # OPTION A: Major version only - allows minor and patch updates + # For 2-digit: 50.0 -> 50.1 ✅, 50.x -> 51.0 ❌ + # For 3-digit: 1.2.3 -> 1.3.0 ✅, 1.x.x -> 2.0.0 ❌ + # Use for: GNOME apps/libs with 2-digit versions, or libraries following semver + # version_update_mask: '^\d+\.' + + # OPTION B: Major.minor version - patch updates only + # Examples: 1.2.3 -> 1.2.4 ✅, 1.2.x -> 1.3.0 ❌ + # Use for: Libraries with ABI concerns, even/odd development scheme + version_update_mask: '^\d+\.\d+\.' + + # ======================================================================== + # TAG FILTERING - Filter out pre-releases from release-monitoring + # ======================================================================== + # Required because release-monitoring.org also tracks alpha/beta/rc + upstream_tag_exclude: '.*(alpha|beta|rc).*' + + # Optional - only include stable release tags: + # upstream_tag_include: '^\d+\.\d+$' # For 2-digit versions + # upstream_tag_include: '^\d+\.\d+\.\d+$' # For 3-digit versions + + # Build in Koji after merge + - job: koji_build + trigger: commit + dist_git_branches: + - fedora-stable + + # Submit Bodhi update + - job: bodhi_update + trigger: commit + dist_git_branches: + - fedora-stable From 282f22b791c1ccb6a93fa588e5c887f3bf03dae8 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Wed, 25 Feb 2026 12:57:57 +0100 Subject: [PATCH 155/164] Packit: drop fast_forward_merge_into as current stable branches diverge --- .packit.yaml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.packit.yaml b/.packit.yaml index b1b62fd..3705e72 100644 --- a/.packit.yaml +++ b/.packit.yaml @@ -12,14 +12,8 @@ jobs: # Automated updates for stable branches - job: pull_from_upstream trigger: release - # Packit does the full update (spec, changelog) on the latest stable branch. - # The exact same commit is reused to open PRs for all other stable branches, - # which can be merged with fast-forward only (git merge --ff-only), - # keeping a linear, non-divergent history across branches. dist_git_branches: - fedora-latest-stable: - fast_forward_merge_into: - - fedora-stable + - fedora-stable # ======================================================================== # VERSIONING: Choose ONE option based on your package's versioning scheme From d000632996a9a1e237519cd6b6131d9a90e4c0fe Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Mon, 2 Mar 2026 09:57:11 +0100 Subject: [PATCH 156/164] Packit: drop upstream_project_url and rely on release-monitoring only --- .packit.yaml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/.packit.yaml b/.packit.yaml index 3705e72..c3700e1 100644 --- a/.packit.yaml +++ b/.packit.yaml @@ -5,9 +5,6 @@ # - Package is monitored by release-monitoring.org # - Monitoring status set to "Monitoring" in dist-git -# Required for tag filtering (release-monitoring also tracks alpha/beta) -upstream_project_url: https://gitlab.gnome.org/GNOME/vte - jobs: # Automated updates for stable branches - job: pull_from_upstream @@ -30,16 +27,6 @@ jobs: # Use for: Libraries with ABI concerns, even/odd development scheme version_update_mask: '^\d+\.\d+\.' - # ======================================================================== - # TAG FILTERING - Filter out pre-releases from release-monitoring - # ======================================================================== - # Required because release-monitoring.org also tracks alpha/beta/rc - upstream_tag_exclude: '.*(alpha|beta|rc).*' - - # Optional - only include stable release tags: - # upstream_tag_include: '^\d+\.\d+$' # For 2-digit versions - # upstream_tag_include: '^\d+\.\d+\.\d+$' # For 3-digit versions - # Build in Koji after merge - job: koji_build trigger: commit From 9923e7d419e5c0dcbaa05b4fd950064456336328 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Tue, 3 Mar 2026 09:29:18 +0100 Subject: [PATCH 157/164] Update to 0.83.91 --- sources | 2 +- vte291.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sources b/sources index 1a9a1d5..ef13cf1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.83.90.tar.xz) = 000aa173f9333028576c6a78e24b00e090d9361e31ecf76ae5e5ae0c9f8e31fdcf67817c3d135e71dca16389376a40b25d8803727ade96ccbb9522a832ff8056 +SHA512 (vte-0.83.91.tar.xz) = 5e3638bd31c71ff194a4f83527f7be87480df493dd5507d884b62af25c148801e862cb417395f3cf43b344fecf8a6ca480d0eddd2ed04ed6d22bdaced51b93fc diff --git a/vte291.spec b/vte291.spec index 478d9c6..b1af12c 100644 --- a/vte291.spec +++ b/vte291.spec @@ -19,7 +19,7 @@ %endif Name: vte291 -Version: 0.83.90 +Version: 0.83.91 Release: %autorelease Summary: GTK terminal emulator library From c9c2ccd922635817aecb7812ae6401ae0ccfc904 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Mon, 16 Mar 2026 12:27:24 +0100 Subject: [PATCH 158/164] Update to 0.84.0 --- sources | 2 +- vte291.spec | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sources b/sources index ef13cf1..5d81e53 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.83.91.tar.xz) = 5e3638bd31c71ff194a4f83527f7be87480df493dd5507d884b62af25c148801e862cb417395f3cf43b344fecf8a6ca480d0eddd2ed04ed6d22bdaced51b93fc +SHA512 (vte-0.84.0.tar.xz) = 76f26a46d55da107458682de82dc620aec5da3a89d813628c31764b2f06805435ee976e43326d792ca55c5db310da37667a6b8094bd12e6c09084d30b0332eb6 diff --git a/vte291.spec b/vte291.spec index b1af12c..a2cd33b 100644 --- a/vte291.spec +++ b/vte291.spec @@ -19,7 +19,7 @@ %endif Name: vte291 -Version: 0.83.91 +Version: 0.84.0 Release: %autorelease Summary: GTK terminal emulator library @@ -27,7 +27,7 @@ Summary: GTK terminal emulator library License: GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND X11 AND CC-BY-4.0 URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://download.gnome.org/sources/vte/0.83/vte-%{version}.tar.xz +Source0: https://download.gnome.org/sources/vte/0.84/vte-%{version}.tar.xz BuildRequires: pkgconfig(fmt) >= %{fmt_version} BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} From 692568d63ec8e35840cb00c40a509dbd46e49af3 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Tue, 17 Mar 2026 18:24:01 +0100 Subject: [PATCH 159/164] Add some helper code to avoid silly human errors [skip changelog] --- vte291.spec | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/vte291.spec b/vte291.spec index a2cd33b..791cdc4 100644 --- a/vte291.spec +++ b/vte291.spec @@ -18,6 +18,8 @@ %bcond bundled_fast_float 0 %endif +%global major_minor_version %%(echo %%{version} | cut -d "." -f 1-2) + Name: vte291 Version: 0.84.0 Release: %autorelease @@ -27,7 +29,7 @@ Summary: GTK terminal emulator library License: GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND X11 AND CC-BY-4.0 URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://download.gnome.org/sources/vte/0.84/vte-%{version}.tar.xz +Source0: https://download.gnome.org/sources/vte/%{major_minor_version}/vte-%{version}.tar.xz BuildRequires: pkgconfig(fmt) >= %{fmt_version} BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} From 69346ba770ac6eaa71de933edb07fe4da77e01f2 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Wed, 25 Mar 2026 14:31:53 +0100 Subject: [PATCH 160/164] Add configuration for release-monitoring --- monitoring.toml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 monitoring.toml diff --git a/monitoring.toml b/monitoring.toml new file mode 100644 index 0000000..0ad7b11 --- /dev/null +++ b/monitoring.toml @@ -0,0 +1,13 @@ +# Enable/disable monitoring +monitoring = true +# Enable/disable filling bugzilla ticket for new release +# When disabled it will also disable scratch builds +bugzilla = false +# Enable/disable reporting only stable versions +# Stable versions are recognized based on release-monitoring.org project settings +stable_only = true +# Enable/disable reporting all new versions instead of the latest one +# Enabling this will disable scratch builds +all_versions = true +# Enable/disable scratch build for newly opened version +scratch_build = false From c0be57da94ad9db99eb4ee5f847743519aba5190 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Mon, 8 Jun 2026 09:53:25 +0200 Subject: [PATCH 161/164] Rebuilt for icu 78.3 From b41d430d9c569c1cd2c0df559f4828f5de732ae2 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Fri, 3 Jul 2026 11:17:38 +0200 Subject: [PATCH 162/164] Use a gnome-srpm-macros macro [skip changelog] --- vte291.spec | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/vte291.spec b/vte291.spec index 791cdc4..71f2224 100644 --- a/vte291.spec +++ b/vte291.spec @@ -18,8 +18,6 @@ %bcond bundled_fast_float 0 %endif -%global major_minor_version %%(echo %%{version} | cut -d "." -f 1-2) - Name: vte291 Version: 0.84.0 Release: %autorelease @@ -29,7 +27,7 @@ Summary: GTK terminal emulator library License: GPL-3.0-or-later AND LGPL-3.0-or-later AND MIT AND X11 AND CC-BY-4.0 URL: https://wiki.gnome.org/Apps/Terminal/VTE -Source0: https://download.gnome.org/sources/vte/%{major_minor_version}/vte-%{version}.tar.xz +Source0: https://download.gnome.org/sources/vte/%{gnome_major_minor_version}/vte-%{version}.tar.xz BuildRequires: pkgconfig(fmt) >= %{fmt_version} BuildRequires: pkgconfig(fribidi) >= %{fribidi_version} From 53df76d9fb27ca4e3727acfa5a4b17a406ede36a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 17 Jul 2026 08:38:50 +0000 Subject: [PATCH 163/164] Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild From 1c4e5b9266aa6ac71c630eaa7f2ac6c8f778100a Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Mon, 3 Aug 2026 08:58:13 +0200 Subject: [PATCH 164/164] Update to 0.84.1 --- sources | 2 +- vte291.spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sources b/sources index 5d81e53..c00fd0b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.84.0.tar.xz) = 76f26a46d55da107458682de82dc620aec5da3a89d813628c31764b2f06805435ee976e43326d792ca55c5db310da37667a6b8094bd12e6c09084d30b0332eb6 +SHA512 (vte-0.84.1.tar.xz) = 34ac77e712b12b62518a09122ce36c816e4c14a53b01be55f233c8749dd234b6b60a9ab47730e34be44fef1994364002a5f31a0af937e95ed1804752a8dd645e diff --git a/vte291.spec b/vte291.spec index 71f2224..de7241f 100644 --- a/vte291.spec +++ b/vte291.spec @@ -19,7 +19,7 @@ %endif Name: vte291 -Version: 0.84.0 +Version: 0.84.1 Release: %autorelease Summary: GTK terminal emulator library