diff --git a/.gitignore b/.gitignore index 9f13573..a95d518 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,11 @@ /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.60.4.tar.xz diff --git a/sources b/sources index 401de7a..9ce84dc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vte-0.58.3.tar.xz) = b0a38eb1cd7d923b0431af943dbdb89932833f9a2b0b8fc1fa9ee728c87418c1f5a424b2ccee661721093a80c569f3b41c721b0ba2302ba0c3a42d4c5e31aa9a +SHA512 (vte-0.60.4.tar.xz) = d6e63740a1d7b93934fcc4e88412869e34489ffccb25d67dd860ac19165e5df7a26a577d4e01c18df06c794bb2de9d7af7c5d8fa09ec0e6b72a65567c5f0cd1d diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index 2a9267f..f387070 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,7 +1,7 @@ -From 71e9d26cb88f0837ce1e2f3a4d4ac001aae5365e Mon Sep 17 00:00:00 2001 +From a36779fe5cf5d91978c6d832c9f24c57a8ffd556 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 e7815b4446d1..d5fc77536e54 100644 +index 4a457af94e89..f0d167bcc654 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10696,6 +10696,15 @@ Terminal::emit_pending_signals() +@@ -10247,6 +10247,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 31012518362e..6ad0987d22ca 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 aaf831a7f544..8c184da649cc 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -739,6 +739,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 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) +@@ -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 c18a178af178..92ff9d07752d 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 b0b6239e38e3..554a4506f49f 100644 +index b37272ad09eb..166bd627f202 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -560,6 +560,11 @@ public: +@@ -721,6 +721,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: +@@ -1438,6 +1443,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 3004c0569657..4f1d8049726c 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1398,6 +1398,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 9ee154778974..3688462478e5 100644 bool Terminal::get_osc_color_index(int osc, int value, -@@ -6488,6 +6515,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 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) +@@ -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: @@ -206,13 +206,13 @@ index 9ee154778974..3688462478e5 100644 default: break; -- -2.20.1 +2.30.2 -From 92222d93d5a51a3bfa232b2b99c80303abbaa699 Mon Sep 17 00:00:00 2001 +From cc68c0c87c4ba4ca19de08f35e9b5e990fb3ae83 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 @@ -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,19 +236,19 @@ 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.20.1 +2.30.2 -From a6802affd1e2d8e1869312221e4be55b2b458d28 Mon Sep 17 00:00:00 2001 +From 19e24c06762c4e61249436f796b01c557084d269 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 +++++++ @@ -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 0c7eed5d18f1..6086c0a65db2 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1679,6 +1679,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,23 +299,23 @@ index d845b5ce26a4..90148baf34e3 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -1907,6 +1915,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); + 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.30.2 -From 0903623fab2a9d3b4653014e44a7dd717c162b7f Mon Sep 17 00:00:00 2001 +From 664a2611da04a7be61d0d4d7aef7f5d4cf09744c 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. @@ -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 d5fc77536e54..8ca4ca03bcfb 100644 +index f0d167bcc654..813634fc5119 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9901,6 +9901,7 @@ void +@@ -9449,6 +9449,7 @@ void Terminal::widget_scroll(GdkEventScroll *event) { gdouble delta_x, delta_y; @@ -354,13 +354,13 @@ index d5fc77536e54..8ca4ca03bcfb 100644 gdouble v; gint cnt, i; int button; -@@ -9957,7 +9958,13 @@ Terminal::widget_scroll(GdkEventScroll *event) +@@ -9505,7 +9506,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 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() +@@ -9802,6 +9809,16 @@ Terminal::decscusr_cursor_shape() const noexcept } } @@ -387,10 +387,10 @@ 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 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 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 8c184da649cc..25a2fc8a2358 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -523,6 +523,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 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, +@@ -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 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) +@@ -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 92ff9d07752d..eb754969ac40 100644 /** * VteTerminal:scrollback-lines: * -@@ -4335,6 +4356,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; } @@ -479,7 +479,7 @@ index 92ff9d07752d..eb754969ac40 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,33 +491,33 @@ 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 166bd627f202..b4a97c05dba9 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -423,6 +423,7 @@ public: +@@ -499,6 +499,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 */ -@@ -1191,6 +1192,7 @@ public: - bool set_pty(VtePty *pty, - bool proces_remaining = true); +@@ -1316,6 +1317,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); -- -2.20.1 +2.30.2 -From 09dfe4cb1a05299526646b030be90647a88e6a7b Mon Sep 17 00:00:00 2001 +From 7aa92908e1d1d072a7b197f3f392a9ac9d2055a6 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 --- @@ -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 90148baf34e3..2636defdef8f 100644 +index 6086c0a65db2..0c7a70bf6da5 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -95,6 +95,7 @@ public: +@@ -98,6 +98,7 @@ public: int verbosity{0}; double cell_height_scale{1.0}; double cell_width_scale{1.0}; @@ -566,16 +566,16 @@ index 90148baf34e3..2636defdef8f 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, +@@ -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 }, + { "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, -@@ -1947,6 +1950,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); @@ -584,13 +584,13 @@ index 90148baf34e3..2636defdef8f 100644 vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); -- -2.20.1 +2.30.2 -From be6f135af60af8b2699d507d5a74d8753d4a61cc Mon Sep 17 00:00:00 2001 +From df00884e5108d8518da113aa7a849b6820437205 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 @@ -603,15 +603,11 @@ 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.sh.in | 2 +- src/vte/vteterminal.h | 3 ++- src/vtegtk.cc | 18 ++++++++++++++++++ src/vtegtk.hh | 1 + @@ -620,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 8ca4ca03bcfb..eb3cd6b33c7f 100644 +index 813634fc5119..d902627b101e 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10722,6 +10722,13 @@ Terminal::emit_pending_signals() +@@ -10273,6 +10273,13 @@ Terminal::emit_pending_signals() m_notification_received = false; } @@ -637,21 +633,21 @@ index 8ca4ca03bcfb..eb3cd6b33c7f 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..c7a3b07f9ea4 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 "\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 diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 90e3e05153a3..3db163051077 100644 +index 94febee1d494..2d757afbdcc0 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -105,9 +105,10 @@ struct _VteTerminalClass { @@ -667,10 +663,10 @@ index 90e3e05153a3..3db163051077 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index eb754969ac40..cc502bf495d8 100644 +index 25a2fc8a2358..840f6dd54c53 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -746,6 +746,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 +674,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) +@@ -846,6 +847,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -703,7 +699,7 @@ index eb754969ac40..cc502bf495d8 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 +711,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 b4a97c05dba9..8f90d0c44e41 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -566,6 +566,8 @@ public: +@@ -727,6 +727,8 @@ public: std::string m_notification_summary; std::string m_notification_body; @@ -728,10 +724,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 4f1d8049726c..f6e32800dd6f 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1423,6 +1423,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; } @@ -743,13 +739,13 @@ index 3688462478e5..28de93f5b3af 100644 bool -- -2.20.1 +2.30.2 -From e2b0e5ead4c1512bf06c887ad6d4c1af537fa353 Mon Sep 17 00:00:00 2001 +From 3b594b057f6a8fe530aeb0cc515ac17f8d6d5f20 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 @@ -783,10 +779,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 0c7a70bf6da5..2dece3ddb724 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1690,6 +1690,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1650,6 +1650,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -799,22 +795,22 @@ index 2636defdef8f..2d0c48576643 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -1919,6 +1925,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); + 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.30.2 -From bbec4f9fe8d0387be88edf6ef2f16ef029adfd59 Mon Sep 17 00:00:00 2001 +From 1e48536994e2cec378fed060a389c13ed3aa32fa 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 @@ -831,7 +827,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 +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 eb3cd6b33c7f..d427f0995b2b 100644 +index d902627b101e..b914f79ff363 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10729,6 +10729,13 @@ Terminal::emit_pending_signals() +@@ -10280,6 +10280,13 @@ Terminal::emit_pending_signals() m_shell_preexec = FALSE; } @@ -857,21 +853,21 @@ index eb3cd6b33c7f..d427f0995b2b 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 c7a3b07f9ea4..4cff7dd1fb71 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 3db163051077..8ef9e1dcdeb4 100644 +index 2d757afbdcc0..a75ae7ee2640 100644 --- a/src/vte/vteterminal.h +++ b/src/vte/vteterminal.h @@ -105,10 +105,11 @@ struct _VteTerminalClass { @@ -888,10 +884,10 @@ index 3db163051077..8ef9e1dcdeb4 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index cc502bf495d8..b93c76d00296 100644 +index 840f6dd54c53..3059bdeddc09 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -746,6 +746,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 +895,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) +@@ -847,6 +848,23 @@ vte_terminal_class_init(VteTerminalClass *klass) G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); @@ -924,7 +920,7 @@ index cc502bf495d8..b93c76d00296 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 +932,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 8f90d0c44e41..174b28070db2 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh -@@ -566,6 +566,7 @@ public: +@@ -727,6 +727,7 @@ public: std::string m_notification_summary; std::string m_notification_body; @@ -948,10 +944,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 f6e32800dd6f..981bf0bba306 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1424,7 +1424,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -1403,7 +1403,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, return; } @@ -963,13 +959,13 @@ index 28de93f5b3af..c0bce6995093 100644 } } -- -2.20.1 +2.30.2 -From 4767996ace813a6d5c8e1278cb5accd6005cfca1 Mon Sep 17 00:00:00 2001 +From c8b80018249aa23576f9fbb75b78205841c47f12 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 @@ -1003,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 2d0c48576643..e3ec0026e1dc 100644 +index 2dece3ddb724..960aadc3cdc8 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1690,6 +1690,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1650,6 +1650,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -1019,7 +1015,7 @@ index 2d0c48576643..e3ec0026e1dc 100644 static void shell_preexec_cb(VteTerminal *terminal) { -@@ -1925,6 +1931,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); @@ -1028,13 +1024,13 @@ index 2d0c48576643..e3ec0026e1dc 100644 /* Settings */ -- -2.20.1 +2.30.2 -From 1470d44065d81a0d8e093b012489ba60333e8d65 Mon Sep 17 00:00:00 2001 +From dc936676792d001ab8070b3274bcf792592d73e5 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 @@ -1065,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 d427f0995b2b..2a328a37022a 100644 +index b914f79ff363..e65e33f31ceb 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10750,6 +10750,15 @@ Terminal::emit_pending_signals() +@@ -10301,6 +10301,15 @@ Terminal::emit_pending_signals() m_window_title_changed = false; } @@ -1085,10 +1081,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 a75ae7ee2640..53de9c737000 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); +@@ -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 +1096,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 3059bdeddc09..53bc922fc6ed 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc -@@ -478,6 +478,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 +1112,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) +@@ -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 +1140,7 @@ index b93c76d00296..e0e50ae12907 100644 /** * VteTerminal:current-directory-uri: * -@@ -3704,6 +3731,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; } @@ -1190,7 +1186,7 @@ index b93c76d00296..e0e50ae12907 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 +1199,19 @@ 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 174b28070db2..3a773fccf206 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 +@@ -110,6 +111,18 @@ typedef enum _VteCharacterReplacement { + VTE_CHARACTER_REPLACEMENT_LINE_DRAWING } VteCharacterReplacement; +struct VteContainer { @@ -1233,7 +1229,7 @@ index 8dd59f237d20..be13f827a85c 100644 typedef struct _VtePaletteColor { struct { vte::color::rgb color; -@@ -561,6 +574,9 @@ public: +@@ -722,6 +735,9 @@ public: gboolean m_cursor_moved_pending; gboolean m_contents_changed_pending; @@ -1244,10 +1240,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 981bf0bba306..22f250a51499 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1406,6 +1406,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; @@ -1286,5 +1282,154 @@ index c0bce6995093..dd64310caaf7 100644 ++token; -- -2.20.1 +2.30.2 + + +From 3ef6f4e22870c5a572ada4ec0d462805b9a28a63 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 53bc922fc6ed..50b2c53644f2 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.30.2 + + +From debefa23ffec26b86d82a0f7080755c78f47c39f 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 50b2c53644f2..f70e75f8b183 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.30.2 diff --git a/vte291.spec b/vte291.spec index 75961b0..cd430d3 100644 --- a/vte291.spec +++ b/vte291.spec @@ -1,23 +1,26 @@ %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 icu_uc_version 4.8 +%global libsystemd_version 220 %global pango_version 1.22.0 %global pcre2_version 10.21 Name: vte291 -Version: 0.58.3 -Release: 2%{?dist} +Version: 0.60.4 +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.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++ @@ -32,16 +35,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 @@ -76,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 @@ -95,6 +107,7 @@ emulator library. %doc NEWS %{_libdir}/libvte-%{apiver}.so.0* %{_libdir}/girepository-1.0/ +%{_userunitdir}/vte-spawn-.scope.d %files devel %{_bindir}/vte-%{apiver} @@ -106,9 +119,46 @@ emulator library. %{_datadir}/vala/ %files -n vte-profile +%{_libexecdir}/vte-urlencode-cwd +%{_sysconfdir}/profile.d/vte.csh %{_sysconfdir}/profile.d/vte.sh %changelog +* Fri May 07 2021 Debarshi Ray - 0.60.4-1 +- Update to 0.60.4 + +* Mon Jun 01 2020 Kalev Lember - 0.60.3-1 +- Update to 0.60.3 + +* 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