X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=scripts%2Fwindowplacement.py;h=505993c5bf22e7e82ce967956f693db0bab2b276;hb=698b9a09986a41b6724ac7fb8e6ca668c3645cea;hp=d01fe71b2834b1395934b6cf8b87ef59a6c947c0;hpb=d0c90fcc6019e5fe97c0ef048fa07e4b34e2497c;p=chaz%2Fopenbox diff --git a/scripts/windowplacement.py b/scripts/windowplacement.py index d01fe71b..505993c5 100644 --- a/scripts/windowplacement.py +++ b/scripts/windowplacement.py @@ -7,37 +7,18 @@ ### these. ### ############################################################################ -############################################################################## -### Options for the windowplacement module: ### -### ### -# ignore_requested_positions - When true, the placement algorithm will ### -### attempt to place windows even when they ### -### request a position (like XMMS). ### -### Note this only applies to normal windows, ### -### not to special cases like desktops and ### -### docks. ### -ignore_requested_positions = 0 ### -### ### -############################################################################## - -import otk -import ob -import random +import otk, ob, random _rand = random.Random() def random(data): """Place windows randomly around the screen.""" if not data.client: return - if not (ignore_requested_positions and data.client.normal()): - 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) + if data.client.positionRequested(): return + client_area = data.client.frame.area() + screen_area = ob.openbox.screen(data.screen).area(data.client.desktop()) + width = screen_area.width() - client_area.width() + height = screen_area.height() - client_area.height() global _rand x = _rand.randrange(screen_area.x(), width-1) y = _rand.randrange(screen_area.y(), height-1) @@ -49,22 +30,21 @@ _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 and data.client.normal()): - 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) + if data.client.positionRequested(): return + client_area = data.client.frame.area() + screen_area = ob.openbox.screen(data.screen).area(data.client.desktop()) + width = screen_area.width() - client_area.width() + height = screen_area.height() - client_area.height() 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) + frame_size = data.client.frame.size() _cascade_x += frame_size.top _cascade_y += frame_size.top +export_functions = random, cascade + print "Loaded windowplacement.py"