Make focus list key handling somewhat less ugly.

SVN revision: 28182
This commit is contained in:
Kim Woelders 2007-02-01 02:35:16 +00:00
parent 3b2edcf777
commit 3255b57c36
1 changed files with 13 additions and 7 deletions

View File

@ -403,6 +403,7 @@ WarpFocusHandleEvent(Win win __UNUSED__, XEvent * ev, void *prm __UNUSED__)
{
WarpFocusWin *fw = warpFocusWindow;
KeySym key;
unsigned int mask;
if (!EoIsShown(fw))
return;
@ -411,14 +412,14 @@ WarpFocusHandleEvent(Win win __UNUSED__, XEvent * ev, void *prm __UNUSED__)
{
case KeyPress:
if (ev->xkey.keycode == warpFocusKey)
key = XK_Tab;
key = 0x80000000;
else
key = XLookupKeysym(&ev->xkey, 0);
switch (key)
{
default:
break;
case XK_Tab:
case 0x80000000:
case XK_Down:
WarpFocus(1);
break;
@ -429,19 +430,24 @@ WarpFocusHandleEvent(Win win __UNUSED__, XEvent * ev, void *prm __UNUSED__)
break;
case KeyRelease:
mask = 0;
EQueryPointer(NULL, NULL, NULL, NULL, &mask);
if ((mask & Mode.masks.mod_key_mask) == 0)
{
WarpFocusFinish();
break;
}
if (ev->xkey.keycode == warpFocusKey)
key = XK_Tab;
key = 0x80000000;
else
key = XLookupKeysym(&ev->xkey, 0);
switch (key)
{
default:
WarpFocusFinish();
break;
case XK_Escape:
WarpFocusHide();
break;
case XK_Tab:
default:
case 0x80000000:
case XK_Down:
case XK_Up:
break;