diff options
author | cinap_lenrek <cinap_lenrek@centraldogma> | 2011-10-18 10:02:06 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@centraldogma> | 2011-10-18 10:02:06 +0200 |
commit | e2ed2a0b7efda6ac1a93071e77e93dea0fa6d983 (patch) | |
tree | 62c3633ba1c40fed44301cff5e40a866e4875922 /sys/src/cmd/page.c | |
parent | fe3de0865872ffc42bfbe7082344c444beaae030 (diff) |
page: nested browsing
Diffstat (limited to 'sys/src/cmd/page.c')
-rw-r--r-- | sys/src/cmd/page.c | 18 |
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: |