    def move_to(self, x, y, h):
        """
        Make the specified location visible.  This is typically used by a widget to scroll the
        canvas such that it is visible.

        :param x: The x location to make visible.
        :param y: The y location to make visible.
        :param h: The height of the location to make visible.
        """
        start_x, start_y, height, width = self._border_mgr.get_rectangle()

        if ((start_x <= x < start_x + width) and (y >= start_y) and (y + h < start_y + height)):
            # Already OK - quit now.
            return

        if y < start_y:
            self._canvas.scroll_to(y - 1 if self._border_mgr.has_border else y)
        else:
            line = y + h - self._canvas.height + (1 if self._border_mgr.has_border else 0)
            self._canvas.scroll_to(max(0, line))
Make the specified location visible.  This is typically used by a widget to scroll the
canvas such that it is visible.

:param x: The x location to make visible.
:param y: The y location to make visible.
:param h: The height of the location to make visible.
asciimatics/widgets/frame.py