Xinqi Bao's Git
projects
/
dmenu.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
hotfix
[dmenu.git]
/
main.c
diff --git
a/main.c
b/main.c
index
964fad6
..
1c6e57f
100644
(file)
--- a/
main.c
+++ b/
main.c
@@
-178,6
+178,29
@@
kpress(XKeyEvent * e) {
break;
}
}
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])) {
switch(ksym) {
default:
if(num && !iscntrl((int) buf[0])) {
@@
-200,11
+223,13
@@
kpress(XKeyEvent * e) {
}
break;
case XK_End:
}
break;
case XK_End:
+ if(!item)
+ return;
while(next) {
sel = curr = next;
calcoffsets();
}
while(next) {
sel = curr = next;
calcoffsets();
}
- while(sel->right)
+ while(sel
&& sel
->right)
sel = sel->right;
break;
case XK_Escape:
sel = sel->right;
break;
case XK_Escape:
@@
-212,6
+237,8
@@
kpress(XKeyEvent * e) {
running = False;
break;
case XK_Home:
running = False;
break;
case XK_Home:
+ if(!item)
+ return;
sel = curr = item;
calcoffsets();
break;
sel = curr = item;
calcoffsets();
break;
@@
-225,16
+252,16
@@
kpress(XKeyEvent * e) {
}
break;
case XK_Next:
}
break;
case XK_Next:
- if(
next) {
-
sel = curr = next
;
-
calcoffsets()
;
- }
+ if(
!next)
+
return
;
+
sel = curr = next
;
+ calcoffsets();
break;
case XK_Prior:
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)
break;
case XK_Return:
if((e->state & ShiftMask) && text)