+ corner = OBClient.TopLeft
+
+ data.client.resize(corner,
+ data.press_clientwidth + dx,
+ data.press_clientheight + dy);
+
+def restart(data):
+ """Restarts openbox"""
+ openbox.restart("")
+
+def raise_win(data):
+ """Raises the window on which the event occured"""
+ if not data.client: return
+ openbox.screen(data.screen).restack(1, data.client)
+
+def lower_win(data):
+ """Lowers the window on which the event occured"""
+ if not data.client: return
+ openbox.screen(data.screen).restack(0, data.client)
+
+def toggle_shade(data):
+ """Toggles the shade status of the window on which the event occured"""
+ state_shaded(data)
+
+def shade(data):
+ """Shades the window on which the event occured"""
+ state_shaded(data, 1)
+
+def unshade(data):
+ """Unshades the window on which the event occured"""
+ state_shaded(data, 0)
+
+def change_desktop(data, num):
+ """Switches to a specified desktop"""
+ root = OBDisplay_screenInfo(data.screen).rootWindow()
+ send_client_msg(root, OBProperty.net_current_desktop, root, num)
+
+def next_desktop(data, no_wrap=0):
+ """Switches to the next desktop, optionally (by default) cycling around to
+ the first when going past the last."""
+ screen = openbox.screen(data.screen)
+ d = screen.desktop()
+ n = screen.numDesktops()
+ if (d < (n-1)):
+ d = d + 1
+ elif not no_wrap:
+ d = 0
+ change_desktop(data, d)
+
+def prev_desktop(data, no_wrap=0):
+ """Switches to the previous desktop, optionally (by default) cycling around
+ to the last when going past the first."""
+ screen = openbox.screen(data.screen)
+ d = screen.desktop()
+ n = screen.numDesktops()
+ if (d > 0):
+ d = d - 1
+ elif not no_wrap:
+ d = n - 1
+ change_desktop(data, d)
+
+def send_to_desktop(data, num):
+ """Sends a client to a specified desktop"""
+ if not data.client: return
+ send_client_msg(OBDisplay_screenInfo(data.screen).rootWindow(),
+ OBProperty.net_wm_desktop, data.client.window(), num)
+
+def send_to_next_desktop(data, no_wrap=0, follow=1):
+ """Sends a window to the next desktop, optionally (by default) cycling
+ around to the first when going past the last. Also optionally moving to
+ the new desktop after sending the window."""
+ if not data.client: return
+ screen = openbox.screen(data.screen)
+ d = screen.desktop()
+ n = screen.numDesktops()
+ if (d < (n-1)):
+ d = d + 1
+ elif not no_wrap:
+ d = 0
+ send_to_desktop(data, d)
+ if follow:
+ change_desktop(data, d)
+
+def send_to_prev_desktop(data, no_wrap=0, follow=1):
+ """Sends a window to the previous desktop, optionally (by default) cycling
+ around to the last when going past the first. Also optionally moving to
+ the new desktop after sending the window."""
+ if not data.client: return
+ screen = openbox.screen(data.screen)
+ d = screen.desktop()
+ n = screen.numDesktops()
+ if (d > 0):
+ d = d - 1
+ elif not no_wrap:
+ d = n - 1
+ send_to_desktop(data, d)
+ if follow:
+ change_desktop(data, d)
+
+#########################################
+### Convenience functions for scripts ###
+#########################################