diff --git a/terminatorlib/container.py b/terminatorlib/container.py index 70fd4808..db95b353 100755 --- a/terminatorlib/container.py +++ b/terminatorlib/container.py @@ -95,7 +95,7 @@ class Container(object): """Split this container vertically""" return(self.split_axis(widget, False)) - def split_axis(self, widget, vertical=True): + def split_axis(self, widget, vertical=True, sibling=None): """Default axis splitter. This should be implemented by subclasses""" raise NotImplementedError('split_axis') diff --git a/terminatorlib/paned.py b/terminatorlib/paned.py index 62c52276..2571284d 100755 --- a/terminatorlib/paned.py +++ b/terminatorlib/paned.py @@ -41,7 +41,7 @@ class Paned(Container): del(self.cnxids['init']) # pylint: disable-msg=W0613 - def split_axis(self, widget, vertical=True): + def split_axis(self, widget, vertical=True, sibling=None): """Default axis splitter. This should be implemented by subclasses""" self.remove(widget) if vertical: @@ -49,7 +49,8 @@ class Paned(Container): else: container = HPaned() - sibling = Terminal() + if not sibling: + sibling = Terminal() self.terminator.register_terminal(sibling) sibling.spawn_child() diff --git a/terminatorlib/terminal.py b/terminatorlib/terminal.py index a3d792df..6d689649 100755 --- a/terminatorlib/terminal.py +++ b/terminatorlib/terminal.py @@ -637,8 +637,8 @@ class Terminal(gtk.VBox): pos = self.get_location(widget, x, y) - data.terminator.remove(widgetsrc, True) - data.terminator.add(self, widgetsrc, pos) + srcpaned.remove(widgetsrc) + dstpaned.split_axis(dsthbox, pos in ['top', 'bottom'], widgetsrc) def get_location(self, vte, x, y): """Get our location within the terminal""" diff --git a/terminatorlib/window.py b/terminatorlib/window.py index c66ba94b..d00bb23b 100755 --- a/terminatorlib/window.py +++ b/terminatorlib/window.py @@ -186,7 +186,7 @@ class Window(Container, gtk.Window): self.disconnect_child(widget) return(True) - def split_axis(self, widget, vertical=True): + def split_axis(self, widget, vertical=True, sibling=None): """Split the window""" self.remove(widget) @@ -196,7 +196,8 @@ class Window(Container, gtk.Window): else: container = HPaned() - sibling = Terminal() + if not sibling: + sibling = Terminal() self.terminator.register_terminal(sibling) self.add(container) container.show_all()