Skip to content

Commit c4d372c

Browse files
committed
Fixes vte object not being released properly, and holding open hidden /tmp files.
1 parent 1277464 commit c4d372c

2 files changed

Lines changed: 21 additions & 16 deletions

File tree

‎terminatorlib/container.py‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ def closeterm(self, widget):
127127
return(False)
128128

129129
self.terminator.deregister_terminal(widget)
130+
widget.close()
130131
self.terminator.group_hoover()
131132
return(True)
132133

‎terminatorlib/terminal.py‎

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ def get_cwd(self):
224224
def close(self):
225225
"""Close ourselves"""
226226
dbg('close: called')
227-
self.cnxids.remove_signal(self.vte, 'child-exited')
227+
self.cnxids.remove_widget(self.vte)
228228
self.emit('close-term')
229229
try:
230230
dbg('close: killing %d' % self.pid)
@@ -235,6 +235,10 @@ def close(self):
235235
dbg('os.kill failed: %s' % ex)
236236
pass
237237

238+
if self.vte:
239+
self.terminalbox.remove(self.vte)
240+
del(self.vte)
241+
238242
def create_terminalbox(self):
239243
"""Create a GtkHBox containing the terminal and a scrollbar"""
240244

@@ -338,10 +342,10 @@ def connect_signals(self):
338342

339343
self.scrollbar.connect('button-press-event', self.on_buttonpress)
340344

341-
self.vte.connect('key-press-event', self.on_keypress)
342-
self.vte.connect('button-press-event', self.on_buttonpress)
343-
self.vte.connect('scroll-event', self.on_mousewheel)
344-
self.vte.connect('popup-menu', self.popup_menu)
345+
self.cnxids.new(self.vte, 'key-press-event', self.on_keypress)
346+
self.cnxids.new(self.vte, 'button-press-event', self.on_buttonpress)
347+
self.cnxids.new(self.vte, 'scroll-event', self.on_mousewheel)
348+
self.cnxids.new(self.vte, 'popup-menu', self.popup_menu)
345349

346350
srcvtetargets = [("vte", Gtk.TargetFlags.SAME_APP, self.TARGET_TYPE_VTE)]
347351
dsttargets = [("vte", Gtk.TargetFlags.SAME_APP, self.TARGET_TYPE_VTE),
@@ -383,29 +387,29 @@ def connect_signals(self):
383387
dsttargets, Gdk.DragAction.COPY | Gdk.DragAction.MOVE)
384388

385389
for widget in [self.vte, self.titlebar]:
386-
widget.connect('drag-begin', self.on_drag_begin, self)
387-
widget.connect('drag-data-get', self.on_drag_data_get,
390+
self.cnxids.new(widget, 'drag-begin', self.on_drag_begin, self)
391+
self.cnxids.new(widget, 'drag-data-get', self.on_drag_data_get,
388392
self)
389393

390-
self.vte.connect('drag-motion', self.on_drag_motion, self)
391-
self.vte.connect('drag-data-received',
394+
self.cnxids.new(self.vte, 'drag-motion', self.on_drag_motion, self)
395+
self.cnxids.new(self.vte, 'drag-data-received',
392396
self.on_drag_data_received, self)
393397

394398
self.cnxids.new(self.vte, 'selection-changed',
395399
lambda widget: self.maybe_copy_clipboard())
396400

397401
if self.composite_support:
398-
self.vte.connect('composited-changed', self.reconfigure)
402+
self.cnxids.new(self.vte, 'composited-changed', self.reconfigure)
399403

400-
self.vte.connect('window-title-changed', lambda x:
404+
self.cnxids.new(self.vte, 'window-title-changed', lambda x:
401405
self.emit('title-change', self.get_window_title()))
402-
self.vte.connect('grab-focus', self.on_vte_focus)
403-
self.vte.connect('focus-in-event', self.on_vte_focus_in)
404-
self.vte.connect('focus-out-event', self.on_vte_focus_out)
405-
self.vte.connect('size-allocate', self.deferred_on_vte_size_allocate)
406+
self.cnxids.new(self.vte, 'grab-focus', self.on_vte_focus)
407+
self.cnxids.new(self.vte, 'focus-in-event', self.on_vte_focus_in)
408+
self.cnxids.new(self.vte, 'focus-out-event', self.on_vte_focus_out)
409+
self.cnxids.new(self.vte, 'size-allocate', self.deferred_on_vte_size_allocate)
406410

407411
self.vte.add_events(Gdk.EventMask.ENTER_NOTIFY_MASK)
408-
self.vte.connect('enter_notify_event',
412+
self.cnxids.new(self.vte, 'enter_notify_event',
409413
self.on_vte_notify_enter)
410414

411415
self.cnxids.new(self.vte, 'realize', self.reconfigure)

0 commit comments

Comments
 (0)