enable pointer movement in cwm via C-<arrowkeys>

looked over by oga@
This commit is contained in:
todd
2007-11-13 23:08:49 +00:00
parent dc39e11ff9
commit 576d299095
4 changed files with 75 additions and 0 deletions

View File

@@ -112,6 +112,44 @@ kbfunc_client_resize(struct client_ctx *cc, void *arg)
client_ptrwarp(cc);
}
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)
{