[gedit-plugins] Fix Ctrl+D in terminal plugin
- From: Garrett Regier <gregier src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit-plugins] Fix Ctrl+D in terminal plugin
- Date: Mon, 1 Jul 2013 15:41:37 +0000 (UTC)
commit 58025fadf1b4ae5bfae433e31f8ae68f011ef209
Author: Garrett Regier <garrettregier gmail com>
Date: Sat Jun 29 15:38:11 2013 -0700
Fix Ctrl+D in terminal plugin
plugins/terminal/terminal.py | 38 ++++++++++++++++++++++----------------
1 files changed, 22 insertions(+), 16 deletions(-)
---
diff --git a/plugins/terminal/terminal.py b/plugins/terminal/terminal.py
index f655cb6..50322a3 100644
--- a/plugins/terminal/terminal.py
+++ b/plugins/terminal/terminal.py
@@ -66,11 +66,6 @@ class GeditTerminal(Vte.Terminal):
self.fork_command_full(Vte.PtyFlags.DEFAULT, None, [Vte.get_user_shell()], None,
GLib.SpawnFlags.SEARCH_PATH, None, None)
- def do_child_exited(self):
- Vte.Terminal.do_child_exited(self)
-
- self._vte.fork_command_full(Vte.PtyFlags.DEFAULT, None, [Vte.get_user_shell()], None,
GLib.SpawnFlags.SEARCH_PATH, None, None)
-
def do_drag_data_received(self, drag_context, x, y, data, info, time):
if info == self.TARGET_URI_LIST:
self.feed_child(' '.join(["'" + Gio.file_new_for_uri(item).get_path() + "'" for item in
Gedit.utils_drop_get_uris(data)]), -1)
@@ -179,10 +174,27 @@ class GeditTerminalPanel(Gtk.Box):
def __init__(self):
Gtk.Box.__init__(self)
+ self._accel_base = '<gedit>/plugins/terminal'
+ self._accels = {
+ 'copy-clipboard': [Gdk.KEY_C, Gdk.ModifierType.CONTROL_MASK | Gdk.ModifierType.SHIFT_MASK,
self.copy_clipboard],
+ 'paste-clipboard': [Gdk.KEY_V, Gdk.ModifierType.CONTROL_MASK | Gdk.ModifierType.SHIFT_MASK,
self.paste_clipboard]
+ }
+
+ for name in self._accels:
+ path = self._accel_base + '/' + name
+ accel = Gtk.AccelMap.lookup_entry(path)
+
+ if not accel[0]:
+ Gtk.AccelMap.add_entry(path, self._accels[name][0], self._accels[name][1])
+
+ self.add_terminal()
+
+ def add_terminal(self):
self._vte = GeditTerminal()
self._vte.show()
self.pack_start(self._vte, True, True, 0)
+ self._vte.connect("child-exited", self.on_vte_child_exited)
self._vte.connect("key-press-event", self.on_vte_key_press)
self._vte.connect("button-press-event", self.on_vte_button_press)
self._vte.connect("popup-menu", self.on_vte_popup_menu)
@@ -191,18 +203,12 @@ class GeditTerminalPanel(Gtk.Box):
scrollbar.show()
self.pack_start(scrollbar, False, False, 0)
- self._accel_base = '<gedit>/plugins/terminal'
- self._accels = {
- 'copy-clipboard': [Gdk.KEY_C, Gdk.ModifierType.CONTROL_MASK | Gdk.ModifierType.SHIFT_MASK,
self.copy_clipboard],
- 'paste-clipboard': [Gdk.KEY_V, Gdk.ModifierType.CONTROL_MASK | Gdk.ModifierType.SHIFT_MASK,
self.paste_clipboard]
- }
-
- for name in self._accels:
- path = self._accel_base + '/' + name
- accel = Gtk.AccelMap.lookup_entry(path)
+ def on_vte_child_exited(self, term):
+ for child in self.get_children():
+ child.destroy()
- if not accel[0]:
- Gtk.AccelMap.add_entry(path, self._accels[name][0], self._accels[name][1])
+ self.add_terminal()
+ self._vte.grab_focus()
def do_grab_focus(self):
self._vte.grab_focus()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]