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