summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/Makefile.am2
-rw-r--r--scripts/behavior.py21
-rw-r--r--scripts/callbacks.py53
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)