X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=scripts%2Fclientmotion.py;h=ec1da0abb34ec880b0e0c13044a49750ff4475ae;hb=e05d5f7934ce27893f900627fbd06b1679d4c0ad;hp=24b16e63fc13899127a7c8553fab82f193593c49;hpb=098fa0ce20f440da3140adad2cfe8ae9a6854d46;p=chaz%2Fopenbox diff --git a/scripts/clientmotion.py b/scripts/clientmotion.py index 24b16e63..ec1da0ab 100644 --- a/scripts/clientmotion.py +++ b/scripts/clientmotion.py @@ -1,51 +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_motion(action, win, type, modifiers, xroot, yroot, time): - client = Openbox_findClient(openbox, win) - if not client: return +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(xroot, yroot, client, anchor_corner): global posqueue dx = xroot - posqueue[0][1] dy = yroot - posqueue[0][2] + OBClient_resize(client, anchor_corner, + Rect_width(area) - dx, Rect_height(area) + dy) - area = posqueue[0][3] # A Rect - if (type == Type_Titlebar) or (type == Type_Label): - OBClient_move(client, Rect_x(area) + dx, Rect_y(area) + dy) +def def_motion(data): + client = Openbox_findClient(openbox, data.window()) + if not client: return + + 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: - OBClient_resize(client, OBClient_TopRight, - Rect_width(area) - dx, Rect_height(area) + dy) + def_do_resize(data.xroot(), data.yroot(), client, + OBClient_TopRight) elif type == Type_RightGrip: - OBClient_resize(client, OBClient_TopLeft, - Rect_width(area) + dx, Rect_height(area) + dy) + 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)