X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=scripts%2Fclientmotion.py;h=ec1da0abb34ec880b0e0c13044a49750ff4475ae;hb=e05d5f7934ce27893f900627fbd06b1679d4c0ad;hp=e34afed4c2944db9f8ab61f52a140bedb74c33c5;hpb=a6661d587cd043e1894418c091b8dbd4e18a7d55;p=chaz%2Fopenbox diff --git a/scripts/clientmotion.py b/scripts/clientmotion.py index e34afed4..ec1da0ab 100644 --- a/scripts/clientmotion.py +++ b/scripts/clientmotion.py @@ -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)