=== modified file 'terminatorlib/paned.py'
--- terminatorlib/paned.py	2015-12-03 21:38:43 +0000
+++ terminatorlib/paned.py	2015-12-05 10:57:05 +0000
@@ -311,6 +311,7 @@
             del(self)
 
     def resizeterm(self, widget, keyname):
+        print "RESIZETERM"
         """Handle a keyboard event requesting a terminal resize"""
         if keyname in ['up', 'down'] and isinstance(self, Gtk.VPaned):
             # This is a key we can handle
@@ -414,6 +415,7 @@
         else:
             container = HPaned()
             reverse = clockwise
+        print "R", reverse
 
         container.ratio = self.ratio
 
@@ -427,21 +429,35 @@
         for child in children:
             self.remove(child)
             container.add(child)
+#        print "R alemost end"
+#        while Gtk.events_pending():
+#            Gtk.main_iteration_do(False)
+        print "R end"
 
     def new_size(self, widget, allocation):
+#        print "NEW"
+#        print self
+        print "NEW", self.get_toplevel().set_pos_by_ratio
+        print "A", allocation.height
+#        while Gtk.events_pending():
+#            Gtk.main_iteration_do(False)
         if self.get_toplevel().set_pos_by_ratio:
             self.set_position_by_ratio()
         else:
             self.set_position(self.get_position())
+#        while Gtk.events_pending():
+#            Gtk.main_iteration_do(False)
     
     def set_position_by_ratio(self):
         non_separator_width = max(self.get_length() - self.get_handlesize(), 0)
+        print "set_position_by_ratio %s * %s = %s" % (self.ratio, non_separator_width, self.ratio * non_separator_width)
         self.set_pos(int(self.ratio * non_separator_width))
 
     def set_position(self, pos):
         non_separator_width = max(self.get_length() - self.get_handlesize(), 0)
         if non_separator_width > 0:
             self.ratio = float(pos) / float(non_separator_width)
+        print "set_position %s (%s)" % (pos, self.ratio)
         self.set_pos(pos)
 
 class HPaned(Paned, Gtk.HPaned):

=== modified file 'terminatorlib/window.py'
--- terminatorlib/window.py	2015-12-02 19:07:21 +0000
+++ terminatorlib/window.py	2015-12-05 11:05:28 +0000
@@ -530,6 +530,7 @@
         self.set_property('term_zoomed', False)
 
     def rotate(self, widget, clockwise):
+        print "Window R", self.set_pos_by_ratio
         """Rotate children in this window"""
         self.set_pos_by_ratio = True
         maker = Factory()
@@ -544,19 +545,29 @@
 
         if maker.isinstance(child, 'Paned'):
             paned.append(child)
+#            while Gtk.events_pending():
+#                Gtk.main_iteration_do(False)
         for p in paned:
             for child in p.get_children():
                 if child not in paned and maker.isinstance(child, 'Paned'):
                     paned.append(child)
+        print 'LLLLLLLLLLLLLLLLLL', len(paned)
+
+#            self.show_all()
+#            while Gtk.events_pending():
+#               Gtk.main_iteration_do(False)
+
         # then propagate the rotation
         for p in paned:
             p.rotate(widget, clockwise)
-        self.show_all()
-
-        while Gtk.events_pending():
-            Gtk.main_iteration_do(False)
+            self.show_all()
+
+            while Gtk.events_pending():
+                Gtk.main_iteration_do(False)
+
         widget.grab_focus()
         self.set_pos_by_ratio = False
+        print "Window R end"
 
     def get_visible_terminals(self):
         """Walk down the widget tree to find all of the visible terminals.

