+ global edge_resistance
+ global _last_x, _last_y
+ if edge_resistance:
+ fs = _client.frame.size()
+ w = _client.area().width() + fs.left + fs.right
+ h = _client.area().height() + fs.top + fs.bottom
+ # use the area based on the struts
+ area = ob.openbox.screen(_screen).area()
+ l = area.left()
+ r = area.right() - w + 1
+ t = area.top()
+ b = area.bottom() - h + 1
+ # left screen edge
+ if _last_x > x and x < l and x >= l - edge_resistance:
+ x = l
+ # right screen edge
+ if _last_x < x and x > r and x <= r + edge_resistance:
+ x = r
+ # top screen edge
+ if _last_y > y and y < t and y >= t - edge_resistance:
+ y = t
+ # right screen edge
+ if _last_y < y and y > b and y <= b + edge_resistance:
+ y = b
+
+ global _inmove
+ if not _inmove:
+ _last_x = 0
+ _last_y = 0
+ else:
+ _last_x = x
+ _last_y = y