'If find_screen returns None, then this basically extends a
screen vertically and horizontally and see if x,y lies in the
band.
Only works if it can find a SINGLE closest screen, else we
revert to _find_closest_closest.
Useful when dragging a window out of a screen onto another but
having leftmost corner above viewport.'

def find_closest_screen(self, x, y):

    normal = self.find_screen(x, y)
    if (normal is not None):
        return normal
    x_match = []
    y_match = []
    for i in self.screens:
        if (i.x <= x <= (i.x + i.width)):
            x_match.append(i)
        if (i.y <= y <= (i.y + i.height)):
            y_match.append(i)
    if (len(x_match) == 1):
        return x_match[0]
    if (len(y_match) == 1):
        return y_match[0]
    return self._find_closest_closest(x, y, (x_match + y_match))
