X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=scripts%2Fcallbacks.py;h=7ff673550cfb9cffe2f1139d065a36ecd97e6f7b;hb=4a79f7c4390b420a0993a0f3059924c3839cd445;hp=1289a7bbf3a271c4dc1988d511aba83ec12ea0cd;hpb=5face4c6f35172761367f63ac0b6eaf62d84e532;p=chaz%2Fopenbox diff --git a/scripts/callbacks.py b/scripts/callbacks.py index 1289a7bb..7ff67355 100644 --- a/scripts/callbacks.py +++ b/scripts/callbacks.py @@ -2,39 +2,54 @@ ### Functions that can be used as callbacks for mouse/keyboard bindings ### ############################################################################ -############################################################################# -### Options that can be modified to change the default hooks' behaviors. ### -### ### -# resize_nearest - 1 to resize from the corner nearest where the mouse ### -### is, 0 to resize always from the bottom right corner. ### -resize_nearest = 1 ### -### ### -############################################################################# - import ob import otk def state_above(data, add=2): - """Toggles, adds or removes the 'above' state on a window.""" + """Toggles, adds or removes the 'above' state on a window. + The second paramater should one of: 0 - removes the state, 1 - adds the + state, 2 - toggles the state.""" if not data.client: return ob.send_client_msg(otk.display.screenInfo(data.screen).rootWindow(), otk.Property_atoms().net_wm_state, data.client.window(), add, otk.Property_atoms().net_wm_state_above) def state_below(data, add=2): - """Toggles, adds or removes the 'below' state on a window.""" + """Toggles, adds or removes the 'below' state on a window. + The second paramater should one of: 0 - removes the state, 1 - adds the + state, 2 - toggles the state.""" if not data.client: return ob.send_client_msg(otk.display.screenInfo(data.screen).rootWindow(), otk.Property_atoms().net_wm_state, data.client.window(), add, otk.Property_atoms().net_wm_state_below) def state_shaded(data, add=2): - """Toggles, adds or removes the 'shaded' state on a window.""" + """Toggles, adds or removes the 'shaded' state on a window. + The second paramater should one of: 0 - removes the state, 1 - adds the + state, 2 - toggles the state.""" if not data.client: return ob.send_client_msg(otk.display.screenInfo(data.screen).rootWindow(), otk.Property_atoms().net_wm_state, data.client.window(), add, otk.Property_atoms().net_wm_state_shaded) +def state_skip_taskbar(data, add=2): + """Toggles, adds or removes the 'skip_taskbar' state on a window. + The second paramater should one of: 0 - removes the state, 1 - adds the + state, 2 - toggles the state.""" + if not data.client: return + ob.send_client_msg(otk.display.screenInfo(data.screen).rootWindow(), + otk.Property_atoms().net_wm_state, data.client.window(), + add, otk.Property_atoms().net_wm_state_skip_taskbar) + +def state_skip_pager(data, add=2): + """Toggles, adds or removes the 'skip_pager' state on a window. + The second paramater should one of: 0 - removes the state, 1 - adds the + state, 2 - toggles the state.""" + if not data.client: return + ob.send_client_msg(otk.display.screenInfo(data.screen).rootWindow(), + otk.Property_atoms().net_wm_state, data.client.window(), + add, otk.Property_atoms().net_wm_state_skip_pager) + def iconify(data): """Iconifies the window on which the event occured""" if not data.client: return @@ -66,55 +81,6 @@ def focus(data): return data.client.focus() -def move(data): - """Moves the window interactively. This should only be used with - MouseMotion events""" - if not data.client: return - - # not-normal windows dont get moved - if not data.client.normal(): return - - dx = data.xroot - data.pressx - dy = data.yroot - data.pressy - data.client.move(data.press_clientx + dx, data.press_clienty + dy) - -def resize(data): - """Resizes the window interactively. This should only be used with - MouseMotion events""" - if not data.client: return - - # not-normal windows dont get resized - if not data.client.normal(): return - - px = data.pressx - py = data.pressy - dx = data.xroot - px - dy = data.yroot - py - - # pick a corner to anchor - if not (resize_nearest or data.context == MC_Grip): - corner = ob.Client.TopLeft - else: - x = px - data.press_clientx - y = py - data.press_clienty - if y < data.press_clientheight / 2: - if x < data.press_clientwidth / 2: - corner = ob.Client.BottomRight - dx *= -1 - else: - corner = ob.Client.BottomLeft - dy *= -1 - else: - if x < data.press_clientwidth / 2: - corner = ob.Client.TopRight - dx *= -1 - else: - corner = ob.Client.TopLeft - - data.client.resize(corner, - data.press_clientwidth + dx, - data.press_clientheight + dy); - def restart(data, other = ""): """Restarts openbox, optionally starting another window manager.""" ob.openbox.restart(other)