Blob Blame History Raw
From 87e80a931b82242e27f7972fbaed801b9dea705c Mon Sep 17 00:00:00 2001
From: Clement Lefebvre <clement.lefebvre@linuxmint.com>
Date: Tue, 14 Jun 2016 10:50:50 +0100
Subject: [PATCH 2/8] nemo-terminal: added Vte 2.91 support

---
 nemo-terminal/debian/control       |  2 +-
 nemo-terminal/src/nemo_terminal.py | 27 +++++++++++++++++++--------
 2 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/nemo-terminal/debian/control b/nemo-terminal/debian/control
index 4b30ec6..bbcd867 100644
--- a/nemo-terminal/debian/control
+++ b/nemo-terminal/debian/control
@@ -14,7 +14,7 @@ Depends: ${misc:Depends},
 		 python ( >= 2.6),
 		 python-nemo (>= 1.0),
 		 python-gi (>= 3.2.2~),
-		 gir1.2-vte-2.90 (>= 1:0.34.6~),
+		 gir1.2-vte-2.90 (>= 1:0.34.6~) | gir1.2-vte-2.91,
 		 gir1.2-gtk-3.0 (>= 3.8.4~),
 		 gir1.2-gdkpixbuf-2.0 (>= 2.28.1~),
 		 gir1.2-glib-2.0 (>= 1.38.0~)
diff --git a/nemo-terminal/src/nemo_terminal.py b/nemo-terminal/src/nemo_terminal.py
index 20281cc..10dda60 100755
--- a/nemo-terminal/src/nemo_terminal.py
+++ b/nemo-terminal/src/nemo_terminal.py
@@ -50,7 +50,13 @@ gettext.textdomain('nemo-terminal')
 _ = gettext.gettext
 
 import gi
-gi.require_version('Vte', '2.90')
+try:
+    gi.require_version('Vte', '2.90')
+    VTE_2_90_API = True
+except:
+    gi.require_version('Vte', '2.91')
+    VTE_2_90_API = False
+gi.require_version('Nemo', '3.0')
 from gi.repository import GObject, Nemo, Gtk, Gdk, Vte, GLib, Gio
 
 # DEFAULT_CONF = {
@@ -86,9 +92,10 @@ class NemoTerminal(object):
         self.shell_pid = -1
         self.term = Vte.Terminal()
 
-        self.shell_pid = self.term.fork_command_full(Vte.PtyFlags.DEFAULT,
-                self._path, [terminal_or_default()], None,
-                GLib.SpawnFlags.SEARCH_PATH, None, None)[1]
+        if VTE_2_90_API:
+            self.shell_pid = self.term.fork_command_full(Vte.PtyFlags.DEFAULT, self._path, [terminal_or_default()], None, GLib.SpawnFlags.SEARCH_PATH, None, None)[1]
+        else:
+            self.shell_pid = self.term.spawn_sync(Vte.PtyFlags.DEFAULT, self._path, [terminal_or_default()], None, GLib.SpawnFlags.SEARCH_PATH, None, None, None)[1]
         # Make vte.sh active
         #vte_current_dir_script = ". /etc/profile.d/vte.sh ; clear"
         #self.term.feed_child(vte_current_dir_script, len(vte_current_dir_script))     
@@ -124,7 +131,10 @@ class NemoTerminal(object):
         self.term.connect("drag_data_received", self._on_drag_data_received)
         
         # Container
-        self.vscrollbar = Gtk.VScrollbar.new(self.term.adjustment)
+        if VTE_2_90_API:
+            self.vscrollbar = Gtk.VScrollbar.new(self.term.adjustment)
+        else:
+            self.vscrollbar = Gtk.VScrollbar.new(self.term.get_vadjustment())
         
         self.hbox = Gtk.HBox()
         self.hbox.pack_start(self.term, True, True, 0)
@@ -386,9 +396,10 @@ class NemoTerminal(object):
             term -- The VTE terminal (self.term).
         """
         if not self._respawn_lock:
-            self.shell_pid = self.term.fork_command_full(Vte.PtyFlags.DEFAULT,
-                self._path, [terminal_or_default()], None,
-                GLib.SpawnFlags.SEARCH_PATH, None, None)[1]
+            if VTE_2_90_API:
+                self.shell_pid = self.term.fork_command_full(Vte.PtyFlags.DEFAULT, self._path, [terminal_or_default()], None, GLib.SpawnFlags.SEARCH_PATH, None, None)[1]
+            else:
+                self.shell_pid = self.term.spawn_sync(Vte.PtyFlags.DEFAULT, self._path, [terminal_or_default()], None, GLib.SpawnFlags.SEARCH_PATH, None, None, None)[1]
 
     def _on_drag_data_received(self, widget, drag_context, x, y, data, info, time):
         """Handles drag & drop."""
-- 
2.7.4