[anjuta] terminal: Support vte-2.90 or vte-2.91



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]