diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-01-30 20:51:41 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-01-30 20:51:41 +0000 |
| commit | 225d4302d0b2bd40d03d3bfa54116c0adfe3143e (patch) | |
| tree | 17994e5de8d0008a72065b774409f2df7d784259 /scripts | |
| parent | 38345bf32eeb1d506ce1f3fde93145a2c55828f3 (diff) | |
popups for moving and resizing
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/Makefile.am | 2 | ||||
| -rw-r--r-- | scripts/behavior.py | 21 | ||||
| -rw-r--r-- | scripts/callbacks.py | 53 |
3 files changed, 17 insertions, 59 deletions
diff --git a/scripts/Makefile.am b/scripts/Makefile.am index 95deedad..36747ee5 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -1,7 +1,7 @@ scriptdir = $(libdir)/openbox/python MAINTAINERCLEANFILES = Makefile.in script_DATA = config.py builtins.py defaults.py focus.py callbacks.py \ - focusmodel.py windowplacement.py behavior.py + focusmodel.py windowplacement.py behavior.py motion.py EXTRA_DIST = $(script_DATA) distclean-local: diff --git a/scripts/behavior.py b/scripts/behavior.py index 3b407e10..5e475af8 100644 --- a/scripts/behavior.py +++ b/scripts/behavior.py @@ -6,6 +6,7 @@ import ob import callbacks +import motion def setup_window_clicks(): """Sets up the default bindings for various mouse buttons for various @@ -26,16 +27,26 @@ def setup_window_clicks(): * Double-left click on a window's titlebar will toggle shading it """ ob.mbind("A-Left", ob.MouseContext.Frame, - ob.MouseAction.Motion, callbacks.move) + ob.MouseAction.Motion, motion.move) + ob.mbind("A-Left", ob.MouseContext.Frame, + ob.MouseAction.Release, motion.end_move) + ob.mbind("Left", ob.MouseContext.Titlebar, + ob.MouseAction.Motion, motion.move) ob.mbind("Left", ob.MouseContext.Titlebar, - ob.MouseAction.Motion, callbacks.move) + ob.MouseAction.Release, motion.end_move) + ob.mbind("Left", ob.MouseContext.Handle, + ob.MouseAction.Motion, motion.move) ob.mbind("Left", ob.MouseContext.Handle, - ob.MouseAction.Motion, callbacks.move) + ob.MouseAction.Release, motion.end_move) ob.mbind("A-Right", ob.MouseContext.Frame, - ob.MouseAction.Motion, callbacks.resize) + ob.MouseAction.Motion, motion.resize) + ob.mbind("A-Right", ob.MouseContext.Frame, + ob.MouseAction.Release, motion.end_resize) + ob.mbind("Left", ob.MouseContext.Grip, + ob.MouseAction.Motion, motion.resize) ob.mbind("Left", ob.MouseContext.Grip, - ob.MouseAction.Motion, callbacks.resize) + ob.MouseAction.Release, motion.end_resize) ob.mbind("Left", ob.MouseContext.Titlebar, ob.MouseAction.Press, callbacks.raise_win) diff --git a/scripts/callbacks.py b/scripts/callbacks.py index 1289a7bb..4d509268 100644 --- a/scripts/callbacks.py +++ b/scripts/callbacks.py @@ -5,10 +5,6 @@ ############################################################################# ### 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 @@ -66,55 +62,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) |
