@@ -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