diff options
author | todd <todd> | 2007-11-13 23:08:49 +0000 |
---|---|---|
committer | todd <todd> | 2007-11-13 23:08:49 +0000 |
commit | 576d299095ac1a0aec7fef700d94f6c1a53c2bcb (patch) | |
tree | 87db35baa2c14d5c49a3f73125b18b49bbcc518e /kbfunc.c | |
parent | dc39e11ff9da56fe22f9c29eb90be8508e50d0be (diff) | |
download | cwm-576d299095ac1a0aec7fef700d94f6c1a53c2bcb.tar.gz cwm-576d299095ac1a0aec7fef700d94f6c1a53c2bcb.tar.xz cwm-576d299095ac1a0aec7fef700d94f6c1a53c2bcb.zip |
enable pointer movement in cwm via C-<arrowkeys>
looked over by oga@
Diffstat (limited to 'kbfunc.c')
-rw-r--r-- | kbfunc.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/kbfunc.c b/kbfunc.c index 05e8d93..1275a83 100644 --- a/kbfunc.c +++ b/kbfunc.c @@ -113,6 +113,44 @@ kbfunc_client_resize(struct client_ctx *cc, void *arg) } void +kbfunc_ptrmove(struct client_ctx *cc, void *arg) +{ + int px,py,mx,my,flags,amt; + struct screen_ctx *sc = screen_current(); + my = mx = 0; + + flags = (int)arg; + amt = MOVE_AMOUNT; + + if (flags & CWM_BIGMOVE) { + flags -= CWM_BIGMOVE; + amt = amt * 10; + } + switch(flags) { + case CWM_UP: + my -= amt; + break; + case CWM_DOWN: + my += amt; + break; + case CWM_RIGHT: + mx += amt; + break; + case CWM_LEFT: + mx -= amt; + break; + } + + if (cc) { + xu_ptr_getpos(cc->pwin, &px, &py); + xu_ptr_setpos(cc->pwin, px + mx, py + my); + } else { + xu_ptr_getpos(sc->rootwin, &px, &py); + xu_ptr_setpos(sc->rootwin, px + mx, py + my); + } +} + +void kbfunc_client_search(struct client_ctx *scratch, void *arg) { struct menu_q menuq; |