]> Dogcows Code - chaz/openbox/blobdiff - scripts/builtins.py
pass the right num of shit to the client msg
[chaz/openbox] / scripts / builtins.py
index d87bf3d84dae560f7fb6f42daea57f36f16f26c6..027ccabb0d4664ae02fb42bf8cb400f51c06d1e9 100644 (file)
@@ -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 ###
 #########################################
This page took 0.021481 seconds and 4 git commands to generate.