break;
}
}
+ if(e->state & Mod1Mask) {
+ switch(ksym) {
+ default: return;
+ case XK_h:
+ ksym = XK_Left;
+ break;
+ case XK_l:
+ ksym = XK_Right;
+ break;
+ case XK_j:
+ ksym = XK_Next;
+ break;
+ case XK_k:
+ ksym = XK_Prior;
+ break;
+ case XK_g:
+ ksym = XK_Home;
+ break;
+ case XK_G:
+ ksym = XK_End;
+ break;
+ }
+ }
switch(ksym) {
default:
if(num && !iscntrl((int) buf[0])) {
}
break;
case XK_End:
+ if(!item)
+ return;
while(next) {
sel = curr = next;
calcoffsets();
}
- while(sel->right)
+ while(sel && sel->right)
sel = sel->right;
break;
case XK_Escape:
running = False;
break;
case XK_Home:
+ if(!item)
+ return;
sel = curr = item;
calcoffsets();
break;
}
break;
case XK_Next:
- if(next) {
- sel = curr = next;
- calcoffsets();
- }
+ if(!next)
+ return;
+ sel = curr = next;
+ calcoffsets();
break;
case XK_Prior:
- if(prev) {
- sel = curr = prev;
- calcoffsets();
- }
+ if(!prev)
+ return;
+ sel = curr = prev;
+ calcoffsets();
break;
case XK_Return:
if((e->state & ShiftMask) && text)