rio: keep bottom'ed windows in order [rsc] --rw-rw-r-- M 357477 glenda sys 6169 Mar 10 13:32 sys/src/cmd/rio/data.c [rsc] --rw-rw-r-- M 357477 glenda sys 22807 Mar 10 13:32 sys/src/cmd/rio/rio.c /n/sourcesdump/2006/0310/plan9/sys/src/cmd/rio/rio.c:517,523 - /n/sourcesdump/2006/0311/plan9/sys/src/cmd/rio/rio.c:517,523 scrolling = mouse->buttons; else scrolling = mouse->buttons && ptinrect(xy, winput->scrollr); - /* topped will be zero if window has been bottomed */ + /* topped will be zero or less if window has been bottomed */ if(sending == FALSE && !scrolling && winborder(winput, mouse->xy) && winput->topped>0){ moving = TRUE; }else if(inside && (scrolling || winput->mouseopen || (mouse->buttons&1))) /n/sourcesdump/2006/0310/plan9/sys/src/cmd/rio/rio.c:566,572 - /n/sourcesdump/2006/0311/plan9/sys/src/cmd/rio/rio.c:566,572 cornercursor(w, mouse->xy, 0); /* we're not sending the event, but if button is down maybe we should */ if(mouse->buttons){ - /* w->topped will be zero if window has been bottomed */ + /* w->topped will be zero or less if window has been bottomed */ if(w==nil || (w==winput && w->topped>0)){ if(mouse->buttons & 1){ ; [rsc] --rw-rw-r-- M 357477 glenda sys 33362 Mar 10 13:32 sys/src/cmd/rio/wind.c /n/sourcesdump/2006/0310/plan9/sys/src/cmd/rio/wind.c:1268,1274 - /n/sourcesdump/2006/0311/plan9/sys/src/cmd/rio/wind.c:1268,1274 if(w!=nil && w->i!=nil && !w->deleted){ bottomwindow(w->i); flushimage(display, 1); - w->topped = 0; + w->topped = - ++topped; } }