Be able to remove a terminal without destroying it. This should really be factored out into a deparent() and remove(). Closes LP #313553
This commit is contained in:
parent
eba60f3fcc
commit
c7fdbf5aa6
|
@ -720,7 +720,7 @@ class Terminator:
|
||||||
dbg ('SEGBUG: spawned child')
|
dbg ('SEGBUG: spawned child')
|
||||||
return
|
return
|
||||||
|
|
||||||
def remove(self, widget):
|
def remove(self, widget, keep = False):
|
||||||
"""Remove a TerminatorTerm from the Terminator view and terms list
|
"""Remove a TerminatorTerm from the Terminator view and terms list
|
||||||
Returns True on success, False on failure"""
|
Returns True on success, False on failure"""
|
||||||
parent = widget.get_parent ()
|
parent = widget.get_parent ()
|
||||||
|
@ -771,18 +771,20 @@ class Terminator:
|
||||||
if isinstance(sibling, TerminatorTerm) and isinstance(sibling.get_parent(), gtk.Notebook):
|
if isinstance(sibling, TerminatorTerm) and isinstance(sibling.get_parent(), gtk.Notebook):
|
||||||
sibling._titlebox.hide()
|
sibling._titlebox.hide()
|
||||||
|
|
||||||
|
self.term_list.remove (widget)
|
||||||
|
if not keep:
|
||||||
widget._vte.get_parent().remove(widget._vte)
|
widget._vte.get_parent().remove(widget._vte)
|
||||||
widget._vte = None
|
widget._vte = None
|
||||||
self.term_list.remove (widget)
|
|
||||||
|
|
||||||
elif isinstance (parent, gtk.Notebook):
|
elif isinstance (parent, gtk.Notebook):
|
||||||
parent.remove(widget)
|
parent.remove(widget)
|
||||||
nbpages = parent.get_n_pages()
|
nbpages = parent.get_n_pages()
|
||||||
index = self.term_list.index (widget)
|
index = self.term_list.index (widget)
|
||||||
|
|
||||||
|
self.term_list.remove (widget)
|
||||||
|
if not keep:
|
||||||
widget._vte.get_parent().remove(widget._vte)
|
widget._vte.get_parent().remove(widget._vte)
|
||||||
widget._vte = None
|
widget._vte = None
|
||||||
self.term_list.remove (widget)
|
|
||||||
if nbpages == 1:
|
if nbpages == 1:
|
||||||
if self.window.allocation.height != gtk.gdk.screen_height():
|
if self.window.allocation.height != gtk.gdk.screen_height():
|
||||||
self.window.resize(self.window.allocation.width, min(self.window.allocation.height - parent.get_tab_label(parent.get_nth_page(0)).height_request(), gtk.gdk.screen_height()))
|
self.window.resize(self.window.allocation.width, min(self.window.allocation.height - parent.get_tab_label(parent.get_nth_page(0)).height_request(), gtk.gdk.screen_height()))
|
||||||
|
|
|
@ -339,7 +339,7 @@ text/plain
|
||||||
return
|
return
|
||||||
pos = self.get_location(widget, x, y)
|
pos = self.get_location(widget, x, y)
|
||||||
|
|
||||||
data.terminator.remove(widgetsrc)
|
data.terminator.remove(widgetsrc, True)
|
||||||
data.terminator.add(self, widgetsrc,pos)
|
data.terminator.add(self, widgetsrc,pos)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue