]> Dogcows Code - chaz/openbox/blobdiff - scripts/clientmotion.py
kill button release events
[chaz/openbox] / scripts / clientmotion.py
index e34afed4c2944db9f8ab61f52a140bedb74c33c5..ec1da0abb34ec880b0e0c13044a49750ff4475ae 100644 (file)
@@ -1,76 +1,72 @@
 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)
 
-       #  ButtonPressAction *a = _posqueue[BUTTONS - 1];
-       #  for (int i=BUTTONS-1; i>0;)
-       #    _posqueue[i] = _posqueue[--i];
-       #  _posqueue[0] = a;
-       #  a->button = e.button;
-       #  a->pos.setPoint(e.x_root, e.y_root);
-       
-       #  OBClient *c = Openbox::instance->findClient(e.window);
-       #  // if it's not defined, they should have clicked on the root window, so this
-       #  // area would be meaningless anyways
-       #  if (c) a->clientarea = c->area();
-       
-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:
-                       print "hi"
-                       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_move(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
-        OBClient_focus(client)
+       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)
 
 
 register(Action_EnterWindow, def_enter)
-#register(Action_LeaveWindow, def_leave)
+register(Action_LeaveWindow, def_leave)
 
 register(Action_ButtonPress, def_motion_press)
 register(Action_ButtonRelease, def_motion_release)
This page took 0.022651 seconds and 4 git commands to generate.