Update to 0.61.90

- Rebase downstream patches

- VTE no longer insists on -fno-exceptions:
  https://gitlab.gnome.org/GNOME/vte/-/issues/185
This commit is contained in:
Debarshi Ray 2020-09-24 15:36:06 +02:00
parent 3bef72c9cb
commit b6699a2710
4 changed files with 157 additions and 295 deletions

1
.gitignore vendored
View File

@ -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

View File

@ -1 +1 @@
SHA512 (vte-0.60.3.tar.xz) = 3694fe711e0b3eb9d6ba37ad8036f5d3cca4265635ed7afcde750a8445b17f820d1c55b557d0ea1c8a5a45e5408915d8da2ffd65b4d397c6582f288812ae1f18
SHA512 (vte-0.61.90.tar.xz) = a52d9afc0c60f4d3d6724d3e196c58fa40aec0bb5c4650affdc103abe02ecd452cccb4b8f7dfb2f6f041033cea96fd84018b7727f83a4764ec90cc7987d6245b

View File

@ -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 <debarshir@gnome.org>
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 <debarshir@gnome.org>
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 <debarshir@gnome.org>
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 <debarshir@gnome.org>
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 <debarshir@gnome.org>
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 <debarshir@gnome.org>
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 <debarshir@gnome.org>
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 <debarshir@gnome.org>
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 <debarshir@gnome.org>
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 <debarshir@gnome.org>
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 <list>
#include <queue>
#include <optional>
@ -1210,7 +1222,7 @@ index 6b1feb377df7..2329d7fd4c13 100644
#include <string>
#include <variant>
#include <vector>
@@ -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 <jimmac@gmail.com>
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 <jimmac@gmail.com>
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

View File

@ -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 <rishi@fedoraproject.org> - 0.61.90-1
- Update to 0.61.90
- Rebase downstream patches
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.60.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild