75 lines
2 KiB
Python
75 lines
2 KiB
Python
posqueue = [];
|
|
|
|
def def_motion_press(data):
|
|
client = Openbox_findClient(openbox, data.window())
|
|
|
|
global posqueue
|
|
newi = [data.button(), data.xroot(), data.yroot()]
|
|
if client:
|
|
newi.append(new_Rect(OBClient_area(client)))
|
|
posqueue.append(newi)
|
|
|
|
def def_motion_release(data):
|
|
global posqueue
|
|
button = data.button()
|
|
for i in posqueue:
|
|
if i[0] == button:
|
|
client = Openbox_findClient(openbox, data.window())
|
|
if client:
|
|
delete_Rect(i[3])
|
|
posqueue.remove(i)
|
|
break
|
|
|
|
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)
|
|
|
|
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:
|
|
def_do_resize(data.xroot(), data.yroot(), client,
|
|
OBClient_TopRight)
|
|
elif type == Type_RightGrip:
|
|
def_do_resize(data.xroot(), data.yroot(), client,
|
|
OBClient_TopLeft)
|
|
|
|
def def_enter(data):
|
|
client = Openbox_findClient(openbox, data.window())
|
|
if not client: return
|
|
if enter_focus != 0:
|
|
OBClient_focus(client)
|
|
|
|
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_ButtonPress, def_motion_press)
|
|
register(Action_ButtonRelease, def_motion_release)
|
|
register(Action_MouseMotion, def_motion)
|
|
|
|
print "Loaded clientmotion.py"
|