X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=scripts%2Fbuiltins.py;h=027ccabb0d4664ae02fb42bf8cb400f51c06d1e9;hb=ae0b364fce6e3fd5e621b4c28e81a1dc1e415fc6;hp=d87bf3d84dae560f7fb6f42daea57f36f16f26c6;hpb=4c768d5d63154e416e1282396dc48492d0585d42;p=chaz%2Fopenbox diff --git a/scripts/builtins.py b/scripts/builtins.py index d87bf3d8..027ccabb 100644 --- a/scripts/builtins.py +++ b/scripts/builtins.py @@ -2,10 +2,46 @@ ### Functions that can be used as callbacks for mouse/keyboard bindings ### ########################################################################### +def state_above(data, add=2): + """Toggles, adds or removes the 'above' state on a window.""" + client = Openbox_findClient(openbox, data.window()) + if not client: return + root = ScreenInfo_rootWindow(OBDisplay_screenInfo(data.screen())) + window = OBClient_window(client) + above = OBProperty_atom(Openbox_property(openbox), + OBProperty_net_wm_state_above) + send_client_msg(root, OBProperty_net_wm_state, window, add, + above) + +def state_below(data, add=2): + """Toggles, adds or removes the 'below' state on a window.""" + client = Openbox_findClient(openbox, data.window()) + if not client: return + root = ScreenInfo_rootWindow(OBDisplay_screenInfo(data.screen())) + window = OBClient_window(client) + below = OBProperty_atom(Openbox_property(openbox), + OBProperty_net_wm_state_below) + send_client_msg(root, OBProperty_net_wm_state, window, add, + below) + +def state_shaded(data, add=2): + """Toggles, adds or removes the 'shaded' state on a window.""" + client = Openbox_findClient(openbox, data.window()) + if not client: return + root = ScreenInfo_rootWindow(OBDisplay_screenInfo(data.screen())) + window = OBClient_window(client) + shaded = OBProperty_atom(Openbox_property(openbox), + OBProperty_net_wm_state_shaded) + send_client_msg(root, OBProperty_net_wm_state, window, add, + shaded) + def close(data): """Closes the window on which the event occured""" client = Openbox_findClient(openbox, data.window()) - if client: OBClient_close(client) + if not client: return + root = ScreenInfo_rootWindow(OBDisplay_screenInfo(data.screen())) + window = OBClient_window(client) + send_client_msg(root, OBProperty_net_close_window, window, 0) def focus(data): """Focuses the window on which the event occured""" @@ -88,22 +124,15 @@ def lower_win(data): def toggle_shade(data): """Toggles the shade status of the window on which the event occured""" - client = Openbox_findClient(openbox, data.window()) - if not client: return - print "toggle_shade" - OBClient_shade(client, not OBClient_shaded(client)) + state_shaded(data) def shade(data): """Shades the window on which the event occured""" - client = Openbox_findClient(openbox, data.window()) - if not client: return - OBClient_shade(client, 1) + state_shaded(data, 1) def unshade(data): """Unshades the window on which the event occured""" - client = Openbox_findClient(openbox, data.window()) - if not client: return - OBClient_shade(client, 0) + state_shaded(data, 0) def change_desktop(data, num): """Switches to a specified desktop""" @@ -175,7 +204,7 @@ def send_to_prev_desktop(data, no_wrap=0, follow=1): send_to_desktop(data, d) if follow: change_desktop(data, d) - + ######################################### ### Convenience functions for scripts ### #########################################