]> Dogcows Code - chaz/openbox/blobdiff - scripts/clientmotion.py
kill button release events
[chaz/openbox] / scripts / clientmotion.py
index bd446f87da74bf660db0025ddf7dc7c8066cfac1..ec1da0abb34ec880b0e0c13044a49750ff4475ae 100644 (file)
@@ -1,59 +1,65 @@
 posqueue = [];
 
-def def_motion_press(action, win, type, modifiers, button, xroot, yroot, time):
-       client = Openbox_findClient(openbox, win)
+def def_motion_press(data):
+       client = Openbox_findClient(openbox, data.window())
 
        global posqueue
-       newi = [button, xroot, yroot]
+       newi = [data.button(), data.xroot(), data.yroot()]
        if client:
                newi.append(new_Rect(OBClient_area(client)))
        posqueue.append(newi)
 
-def def_motion_release(action, win, type, modifiers, button, xroot, yroot,
-                      time):
+def def_motion_release(data):
        global posqueue
+       button = data.button()
        for i in posqueue:
                if i[0] == button:
-                       client = Openbox_findClient(openbox, win)
+                       client = Openbox_findClient(openbox, data.window())
                        if client:
                                delete_Rect(i[3])
                        posqueue.remove(i)
                        break
 
-def def_do_motion(client, xroot, yroot):
+def def_do_move(xroot, yroot, client):
        global posqueue
        dx = xroot - posqueue[0][1]
        dy = yroot - posqueue[0][2]
        area = posqueue[0][3] # A Rect
        OBClient_move(client, Rect_x(area) + dx, Rect_y(area) + dy)
 
-def def_do_resize(client, xroot, yroot, archor_corner):
+def def_do_resize(xroot, yroot, client, anchor_corner):
        global posqueue
        dx = xroot - posqueue[0][1]
        dy = yroot - posqueue[0][2]
-       area = posqueue[0][3] # A Rect
        OBClient_resize(client, anchor_corner,
                        Rect_width(area) - dx, Rect_height(area) + dy)
 
-def def_motion(action, win, type, modifiers, xroot, yroot, time):
-       client = Openbox_findClient(openbox, win)
+def def_motion(data):
+       client = Openbox_findClient(openbox, data.window())
        if not client: return
 
-       if (type == Type_Titlebar) or (type == Type_Label):
-               def_do_motion(client, xroot, yroot)
+       global posqueue
+       if not posqueue[0][0] == 1: return
+       
+       type = data.target()
+       if (type == Type_Titlebar) or (type == Type_Label) or \
+          (type == Type_Plate) or (type == Type_Handle):
+               def_do_move(data.xroot(), data.yroot(), client)
        elif type == Type_LeftGrip:
-               def_do_resize(client, xroot, yroot, OBClient_TopRight)
+               def_do_resize(data.xroot(), data.yroot(), client,
+                             OBClient_TopRight)
        elif type == Type_RightGrip:
-               def_do_resize(client, xroot, yroot, OBClient_TopLeft)
+               def_do_resize(data.xroot(), data.yroot(), client,
+                             OBClient_TopLeft)
 
-def def_enter(action, win, type, modifiers):
-       client = Openbox_findClient(openbox, win)
+def def_enter(data):
+       client = Openbox_findClient(openbox, data.window())
        if not client: return
        if enter_focus != 0:
                OBClient_focus(client)
 
-def def_leave(action, win, type, modifiers):
-       client = Openbox_findClient(openbox, win)
+def def_leave(data):
+       client = Openbox_findClient(openbox, data.window())
        if not client: return
        if leave_unfocus != 0:
                OBClient_unfocus(client)
This page took 0.023764 seconds and 4 git commands to generate.