[anjuta] terminal: Support vte-2.90 or vte-2.91
- From: Sebastien Granjoux <sgranjoux src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [anjuta] terminal: Support vte-2.90 or vte-2.91
- Date: Mon, 18 Aug 2014 19:50:36 +0000 (UTC)
commit 558211171d80a6ec8c81365d029f0c90dac60b57
Author: Sébastien Granjoux <seb sfo free fr>
Date: Mon Aug 18 21:49:27 2014 +0200
terminal: Support vte-2.90 or vte-2.91
configure.ac | 20 ++++++++++++-----
plugins/terminal/terminal-schemas.h | 5 ++++
plugins/terminal/terminal.c | 41 +++++++++++++++++++++++++++++++++++
3 files changed, 60 insertions(+), 6 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 9cd4519..3d74f1e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -189,12 +189,20 @@ if test "$user_disabled_terminal" = 1; then
terminal_enabled="no"
else
AC_MSG_RESULT(no)
- PKG_CHECK_MODULES(PLUGIN_TERMINAL, [vte-2.91 >= $VTE_REQUIRED],
- [
- terminal_enabled=yes
- ], [
- terminal_enabled=no
- ])
+ PKG_CHECK_EXISTS([vte-2.91 >= $VTE_REQUIRED],
+ [vte_2_91_enabled=yes],
+ [vte_2_91_enabled=no])
+ if test $vte_2_91_enabled = yes; then
+ PKG_CHECK_MODULES(PLUGIN_TERMINAL, [vte-2.91 >= $VTE_REQUIRED],
+ [terminal_enabled=yes],
+ [terminal_enabled=no])
+ AC_DEFINE(HAVE_VTE_2_91,1,[libvte 2.91 support])
+ else
+ PKG_CHECK_MODULES(PLUGIN_TERMINAL, [vte-2.90 >= $VTE_REQUIRED],
+ [terminal_enabled=yes],
+ [terminal_enabled=no])
+ AC_DEFINE(HAVE_VTE_2_90,1,[libvte 2.90 support])
+ fi
fi
AM_CONDITIONAL(HAVE_PLUGIN_TERMINAL, [test x$terminal_enabled = xyes])
diff --git a/plugins/terminal/terminal-schemas.h b/plugins/terminal/terminal-schemas.h
index 2a9fa46..e3afc34 100644
--- a/plugins/terminal/terminal-schemas.h
+++ b/plugins/terminal/terminal-schemas.h
@@ -18,6 +18,8 @@
#ifndef TERMINAL_SCHEMAS_H
#define TERMINAL_SCHEMAS_H
+#include <config.h>
+
#include <glib.h>
G_BEGIN_DECLS
@@ -63,6 +65,9 @@ G_BEGIN_DECLS
#define TERMINAL_PROFILE_USE_SYSTEM_FONT_KEY "use-system-font"
#define TERMINAL_PROFILE_USE_THEME_COLORS_KEY "use-theme-colors"
#define TERMINAL_PROFILE_VISIBLE_NAME_KEY "visible-name"
+#ifdef HAVE_VTE_2_90
+#define TERMINAL_PROFILE_WORD_CHARS_KEY "word-chars"
+#endif
#define TERMINAL_SETTING_CONFIRM_CLOSE_KEY "confirm-close"
#define TERMINAL_SETTING_DEFAULT_SHOW_MENUBAR_KEY "default-show-menubar"
diff --git a/plugins/terminal/terminal.c b/plugins/terminal/terminal.c
index 09c325d..a160f15 100644
--- a/plugins/terminal/terminal.c
+++ b/plugins/terminal/terminal.c
@@ -197,11 +197,15 @@ terminal_set_preferences (VteTerminal *term, GSettings* settings, TerminalPlugin
}
if (str_val != NULL)
{
+#ifdef HAVE_VTE_2_90
+ vte_terminal_set_font_from_string (term, str_val);
+#else
PangoFontDescription *font_desc;
font_desc = pango_font_description_from_string (str_val);
vte_terminal_set_font (term, font_desc);
pango_font_description_free (font_desc);
+#endif
}
/* Set cursor blink */
@@ -230,6 +234,14 @@ terminal_set_preferences (VteTerminal *term, GSettings* settings, TerminalPlugin
bool_val = g_settings_get_boolean (profile_settings, TERMINAL_PROFILE_SCROLL_ON_OUTPUT_KEY);
vte_terminal_set_scroll_on_output (term, bool_val);
+#ifdef HAVE_VTE_2_90
+ /* Set word characters */
+ str_val = g_settings_get_string (profile_settings, TERMINAL_PROFILE_WORD_CHARS_KEY);
+ if (str_val != NULL)
+ vte_terminal_set_word_chars (term, str_val);
+ g_free (str_val);
+#endif
+
/* Set backspace key */
str_val = g_settings_get_string (profile_settings, TERMINAL_PROFILE_BACKSPACE_BINDING_KEY);
if (str_val != NULL)
@@ -281,7 +293,11 @@ terminal_set_preferences (VteTerminal *term, GSettings* settings, TerminalPlugin
* which is not the case with vte_terminal_set_color_foreground() and
* vte_terminal_set_color_background()
*/
+#ifdef HAVE_VTE_2_90
+ vte_terminal_set_colors_rgba (term, foreground, background, palette, size);
+#else
vte_terminal_set_colors (term, foreground, background, palette, size);
+#endif
g_free (palette);
g_object_unref (profiles_list);
@@ -332,9 +348,16 @@ use_default_profile_cb (GtkToggleButton *button,
gtk_widget_set_sensitive (term->pref_profile_combo, TRUE);
}
+#ifdef HAVE_VTE_2_90
+static void
+terminal_child_exited_cb (VteTerminal *term, gpointer user_data)
+{
+ int status = vte_terminal_get_child_exit_status (term);
+#else
static void
terminal_child_exited_cb (VteTerminal *term, int status, gpointer user_data)
{
+#endif
TerminalPlugin *term_plugin = ANJUTA_PLUGIN_TERMINAL (user_data);
GPid pid = term_plugin->child_pid;
@@ -391,10 +414,17 @@ terminal_execute (TerminalPlugin *term_plugin, const gchar *directory,
vte_terminal_reset (term, TRUE, TRUE);
*/
+#ifdef HAVE_VTE_2_90
+ if (vte_terminal_fork_command_full (term, term_plugin->pty_flags,
+ dir, args, environment,
+ G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD, NULL, NULL,
+ &pid, NULL))
+#else
if (vte_terminal_spawn_sync (term, term_plugin->pty_flags,
dir, args, environment,
G_SPAWN_SEARCH_PATH |
G_SPAWN_DO_NOT_REAP_CHILD, NULL, NULL,
&pid, NULL, NULL))
+#endif
{
gboolean focus;
@@ -436,10 +466,17 @@ init_shell (TerminalPlugin *term_plugin, const char *path)
else
first_time = FALSE;
+#ifdef HAVE_VTE_2_90
+ vte_terminal_fork_command_full (term, term_plugin->pty_flags,
+ path, shell, NULL,
+ 0, NULL, NULL,
+ NULL, NULL);
+#else
vte_terminal_spawn_sync (term, term_plugin->pty_flags,
path, shell, NULL,
0, NULL, NULL,
NULL, NULL, NULL);
+#endif
g_free (shell[0]);
}
@@ -686,7 +723,11 @@ create_box (GtkWidget *term)
{
GtkWidget *sb, *hbox;
+#ifdef HAVE_VTE_2_90
+ sb = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, GTK_ADJUSTMENT (vte_terminal_get_adjustment
(VTE_TERMINAL (term))));
+#else
sb = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, gtk_scrollable_get_vadjustment (GTK_SCROLLABLE
(term)));
+#endif
gtk_widget_set_can_focus (sb, FALSE);
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]