all repos — openbox @ 5d672875d4c37c65bd25b4a8cdb982b7f3b517df

openbox fork - make it a bit more like ryudo

add cascade placement
Dana Jansens danakj@orodu.net
commit

5d672875d4c37c65bd25b4a8cdb982b7f3b517df

parent

dbfdd0fefb9180334fd08b2a853e62d5356d71d4

1 files changed, 25 insertions(+), 0 deletions(-)

jump to
M scripts/windowplacement.pyscripts/windowplacement.py

@@ -24,6 +24,7 @@

_rand = random.Random() def random(data): + """Place windows randomly around the screen.""" if not data.client: return if not ignore_requested_positions: if data.client.positionRequested(): return

@@ -38,5 +39,29 @@ global _rand

x = _rand.randrange(screen_area.x(), width-1) y = _rand.randrange(screen_area.y(), height-1) data.client.move(x, y) + +_cascade_x = 0 +_cascade_y = 0 + +def cascade(data): + """Place windows in a cascading order from top-left to bottom-right.""" + if not data.client: return + if not ignore_requested_positions: + if data.client.positionRequested(): return + client_area = data.client.area() + frame_size = data.client.frame.size() + screen_area = ob.openbox.screen(data.screen).area() + width = screen_area.width() - (client_area.width() + + frame_size.left + frame_size.right) + height = screen_area.height() - (client_area.height() + + frame_size.top + frame_size.bottom) + global _cascade_x, _cascade_y + if _cascade_x < screen_area.x() or _cascade_y < screen_area.y() or \ + _cascade_x >= width or _cascade_y >= height: + _cascade_x = screen_area.x() + _cascade_y = screen_area.y() + data.client.move(_cascade_x, _cascade_y) + _cascade_x += frame_size.top + _cascade_y += frame_size.top print "Loaded windowplacement.py"