shithub: riscv

Download patch

ref: e2ed2a0b7efda6ac1a93071e77e93dea0fa6d983
parent: fe3de0865872ffc42bfbe7082344c444beaae030
author: cinap_lenrek <cinap_lenrek@centraldogma>
date: Tue Oct 18 06:02:06 EDT 2011

page: nested browsing

--- a/sys/src/cmd/page.c
+++ b/sys/src/cmd/page.c
@@ -721,13 +721,12 @@
 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 @@
 				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:
--