docs: def _split_horizontal(self, section, width, height):
          """For an horizontal split the rectangle is placed in the lower
          left corner of the section (section's xy coordinates), the top
          most side of the rectangle and its horizontal continuation,
          marks the line of division for the split.
          +-----------------+
          |                 |
          |                 |
          |                 |
          |                 |
          +-------+---------+
          |#######|         |
          |#######|         |
          |#######|         |
          +-------+---------+
          If the rectangle width is equal to the the section width, only one
          section is created over the rectangle. If the rectangle height is
          equal to the section height, only one section to the right of the
          rectangle is created. If both width and height are equal, no sections
          are created.
          """
          # First remove the section we are splitting so it doesn't 
          # interfere when later we try to merge the resulting split
          # rectangles, with the rest of free sections.
          #self._sections.remove(section)
  
          # Creates two new empty sections, and returns the new rectangle.
          if height < section.height:
              self._add_section(Rectangle(section.x, section.y+height,
                  section.width, section.height-height))
  
          if width < section.width:
              self._add_section(Rectangle(section.x+width, section.y,
                  section.width-width, height))