diff options
| author | Dana Jansens <danakj@orodu.net> | 2002-12-25 04:54:44 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2002-12-25 04:54:44 +0000 |
| commit | b34824a4e2ddc0247099fa1b3952de426bfde05b (patch) | |
| tree | 123c1d179da9554c06f0c9c9fb8ddce544b75fba /scripts | |
| parent | b9a2430dcccfec8d70aea68dbb1964e562216b79 (diff) | |
global python scripts. client motion/resizing is all done via python now
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/Makefile.am | 9 | ||||
| -rw-r--r-- | scripts/clientmotion.py | 77 |
2 files changed, 86 insertions, 0 deletions
diff --git a/scripts/Makefile.am b/scripts/Makefile.am new file mode 100644 index 00000000..b1cecc47 --- /dev/null +++ b/scripts/Makefile.am @@ -0,0 +1,9 @@ +scriptdir = $(libdir)/openbox/python +MAINTAINERCLEANFILES = Makefile.in +script_DATA = clientmotion.py +EXTRA_DIST = $(script_DATA) + +distclean-local: + rm -f *\~ .\#* +uninstall-am: + rmdir -p $(scriptdir) diff --git a/scripts/clientmotion.py b/scripts/clientmotion.py new file mode 100644 index 00000000..857d6377 --- /dev/null +++ b/scripts/clientmotion.py @@ -0,0 +1,77 @@ +posqueue = []; + +def motion_press(action, win, type, modifiers, button, xroot, yroot, time): + client = Openbox_findClient(openbox, win) + + global posqueue + newi = [button, xroot, 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 motion_release(action, win, type, modifiers, button, xroot, yroot, time): + global posqueue + for i in posqueue: + if i[0] == button: + #delete_Rect i[3] + posqueue.remove(i) + break + + # ButtonPressAction *a = 0; + # for (int i=0; i<BUTTONS; ++i) { + # if (_posqueue[i]->button == e.button) + # a = _posqueue[i]; + # if (a) // found one and removed it + # _posqueue[i] = _posqueue[i+1]; + # } + # if (a) { // found one + # _posqueue[BUTTONS-1] = a; + # a->button = 0; + # } + + +def motion(action, win, type, modifiers, xroot, yroot, time): + client = Openbox_findClient(openbox, win) + + global posqueue + dx = xroot - posqueue[0][1] + dy = yroot - posqueue[0][2] + # _dx = x_root - _posqueue[0]->pos.x(); + # _dy = y_root - _posqueue[0]->pos.y(); + + if not client: + return + 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) + # c->move(_posqueue[0]->clientarea.x() + _dx, + # _posqueue[0]->clientarea.y() + _dy); + elif type == Type_LeftGrip: + OBClient_resize(client, OBClient_TopRight, + Rect_width(area) - dx, Rect_height(area) + dy) + # c->resize(OBClient::TopRight, + # _posqueue[0]->clientarea.width() - _dx, + # _posqueue[0]->clientarea.height() + _dy); + elif type == Type_RightGrip: + OBClient_resize(client, OBClient_TopLeft, + Rect_width(area) + dx, Rect_height(area) + dy) + # c->resize(OBClient::TopLeft, + # _posqueue[0]->clientarea.width() + _dx, + # _posqueue[0]->clientarea.height() + _dy); + + +register(Action_ButtonPress, motion_press) +register(Action_ButtonRelease, motion_release) +register(Action_MouseMotion, motion) |
