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