summaryrefslogtreecommitdiff
path: root/sys/src/cmd/page.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@centraldogma>2011-10-18 10:02:06 +0200
committercinap_lenrek <cinap_lenrek@centraldogma>2011-10-18 10:02:06 +0200
commite2ed2a0b7efda6ac1a93071e77e93dea0fa6d983 (patch)
tree62c3633ba1c40fed44301cff5e40a866e4875922 /sys/src/cmd/page.c
parentfe3de0865872ffc42bfbe7082344c444beaae030 (diff)
page: nested browsing
Diffstat (limited to 'sys/src/cmd/page.c')
-rw-r--r--sys/src/cmd/page.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/sys/src/cmd/page.c b/sys/src/cmd/page.c
index 79777a7b5..ffd813957 100644
--- a/sys/src/cmd/page.c
+++ b/sys/src/cmd/page.c
@@ -721,13 +721,12 @@ popenfile(Page *p)
Page*
nextpage(Page *p)
{
- if(p){
- if(p->down)
- return p->down;
+ if(p && p->down)
+ return p->down;
+ while(p){
if(p->next)
return p->next;
- if(p->up)
- return p->up->next;
+ p = p->up;
}
return nil;
}
@@ -1336,13 +1335,16 @@ main(int argc, char *argv[])
continue;
}
if(m.buttons & 4){
+ Page *x;
+
if(root->down == nil)
goto Unlock;
+ qlock(&pagelock);
pagemenu.lasthit = pageindex(current);
- i = emenuhit(3, &m, &pagemenu);
+ x = pageat(emenuhit(3, &m, &pagemenu));
+ qunlock(&pagelock);
unlockdisplay(display);
- if(i != -1)
- showpage(pageat(i));
+ showpage(x);
continue;
}
Unlock: