aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/rio
diff options
context:
space:
mode:
authorMathieu Lonjaret <mathieu.lonjaret@gmail.com>2010-02-18 22:34:37 -0800
committerRuss Cox <rsc@swtch.com>2010-02-18 22:34:37 -0800
commitc4da64274d01d25fe699f888ce7ad6311bf4ef8b (patch)
tree03d22865627d579dec68c70dfd4d97443a665f4e /src/cmd/rio
parent93ee60c3691d2b4699e970d63363500cade26264 (diff)
downloadplan9port-c4da64274d01d25fe699f888ce7ad6311bf4ef8b.tar.gz
plan9port-c4da64274d01d25fe699f888ce7ad6311bf4ef8b.tar.bz2
plan9port-c4da64274d01d25fe699f888ce7ad6311bf4ef8b.zip
rio: add alt-tab for cycling windows
R=rsc CC=codebot http://codereview.appspot.com/207093
Diffstat (limited to 'src/cmd/rio')
-rw-r--r--src/cmd/rio/client.c12
-rw-r--r--src/cmd/rio/key.c7
2 files changed, 10 insertions, 9 deletions
diff --git a/src/cmd/rio/client.c b/src/cmd/rio/client.c
index 58b0697f..c3b36df1 100644
--- a/src/cmd/rio/client.c
+++ b/src/cmd/rio/client.c
@@ -257,15 +257,15 @@ shuffle(int up)
if(clients == 0 || clients->next == 0)
return;
- if(up){
+ if(!up){
+ c = 0;
/*for(c=clients; c->next; c=c->next) */
/* ; */
for(l=&clients; (*l)->next; l=&(*l)->next)
- ;
- c = *l;
- *l = 0;
- c->next = clients;
- clients = c;
+ if ((*l)->state == 1)
+ c = *l;
+ if (c == 0)
+ return;
XMapRaised(dpy, c->parent);
top(c);
active(c);
diff --git a/src/cmd/rio/key.c b/src/cmd/rio/key.c
index 95333ec5..12cc53ea 100644
--- a/src/cmd/rio/key.c
+++ b/src/cmd/rio/key.c
@@ -17,7 +17,7 @@ enum
GrabAltAny
};
-static int tabcode = 0x17;
+/*static int tabcode = 0x17; */
/*static int altcode = 0x40; */
/*static int pgupcode = 0x63; */
/*static int pgdowncode = 0x69; */
@@ -28,6 +28,7 @@ void
keysetup(void)
{
int i;
+ int tabcode = XKeysymToKeycode(dpy, XK_Tab);
for(i=0; i<num_screens; i++){
XGrabKey(dpy, tabcode, Mod1Mask, screens[i].root, 0, GrabModeSync, GrabModeAsync);
@@ -44,8 +45,8 @@ keypress(XKeyEvent *e)
/*
* process key press here
*/
- if(0)
- if(e->keycode == tabcode)
+ int tabcode = XKeysymToKeycode(dpy, XK_Tab);
+ if(e->keycode == tabcode && (e->state&Mod1Mask) == (1<<3))
alttab(e->state&ShiftMask);
XAllowEvents(dpy, SyncKeyboard, e->time);
}