merge
This commit is contained in:
commit
3b835a1d23
3 changed files with 25 additions and 40 deletions
|
@ -60,7 +60,6 @@ enum /* control messages */
|
|||
{
|
||||
Wakeup,
|
||||
Reshaped,
|
||||
Moved,
|
||||
Topped,
|
||||
Repaint,
|
||||
Refresh,
|
||||
|
@ -210,9 +209,9 @@ void wmovemouse(Window*, Point);
|
|||
void wpaste(Window*);
|
||||
void wplumb(Window*);
|
||||
void wlook(Window*);
|
||||
void wrefresh(Window*, Rectangle);
|
||||
void wrefresh(Window*);
|
||||
void wrepaint(Window*);
|
||||
void wresize(Window*, Image*, int);
|
||||
void wresize(Window*, Image*);
|
||||
void wscrdraw(Window*);
|
||||
void wscroll(Window*, int);
|
||||
void wselect(Window*);
|
||||
|
|
|
@ -28,8 +28,7 @@ void unhide(int);
|
|||
void newtile(int);
|
||||
Image *sweep(void);
|
||||
Image *bandsize(Window*);
|
||||
Image* drag(Window*, Rectangle*);
|
||||
void refresh(Rectangle);
|
||||
Image* drag(Window*);
|
||||
void resized(void);
|
||||
Channel *exitchan; /* chan(int) */
|
||||
Channel *winclosechan; /* chan(Window*); */
|
||||
|
@ -457,7 +456,6 @@ mousethread(void*)
|
|||
int sending, inside, scrolling, moving, band;
|
||||
Window *w, *winput;
|
||||
Image *i;
|
||||
Rectangle r;
|
||||
Point xy;
|
||||
Mouse tmp;
|
||||
enum {
|
||||
|
@ -546,13 +544,10 @@ mousethread(void*)
|
|||
if(band)
|
||||
i = bandsize(winput);
|
||||
else
|
||||
i = drag(winput, &r);
|
||||
i = drag(winput);
|
||||
sweeping = 0;
|
||||
if(i != nil){
|
||||
if(band)
|
||||
wsendctlmesg(winput, Reshaped, i->r, i);
|
||||
else
|
||||
wsendctlmesg(winput, Moved, r, i);
|
||||
wsendctlmesg(winput, Reshaped, i->r, i);
|
||||
cornercursor(winput, mouse->xy, 1);
|
||||
}
|
||||
if(wclose(winput) == 0)
|
||||
|
@ -931,7 +926,7 @@ drawborder(Rectangle r, int show)
|
|||
}
|
||||
|
||||
Image*
|
||||
drag(Window *w, Rectangle *rp)
|
||||
drag(Window *w)
|
||||
{
|
||||
Point p, op, d, dm, om;
|
||||
Rectangle r;
|
||||
|
@ -964,7 +959,6 @@ drag(Window *w, Rectangle *rp)
|
|||
readmouse(mousectl);
|
||||
return nil;
|
||||
}
|
||||
*rp = r;
|
||||
return allocwindow(wscreen, r, Refbackup, DNofill);
|
||||
}
|
||||
|
||||
|
@ -1135,15 +1129,14 @@ move(void)
|
|||
{
|
||||
Window *w;
|
||||
Image *i;
|
||||
Rectangle r;
|
||||
|
||||
w = pointto(FALSE);
|
||||
if(w == nil)
|
||||
return;
|
||||
incref(w);
|
||||
i = drag(w, &r);
|
||||
i = drag(w);
|
||||
if(i)
|
||||
wsendctlmesg(w, Moved, r, i);
|
||||
wsendctlmesg(w, Reshaped, i->r, i);
|
||||
cornercursor(w, mouse->xy, 1);
|
||||
wclose(w);
|
||||
}
|
||||
|
|
|
@ -87,13 +87,10 @@ wsetname(Window *w)
|
|||
}
|
||||
|
||||
void
|
||||
wresize(Window *w, Image *i, int move)
|
||||
wresize(Window *w, Image *i)
|
||||
{
|
||||
Rectangle r, or;
|
||||
Rectangle r;
|
||||
|
||||
or = w->i->r;
|
||||
if(move || (Dx(or)==Dx(i->r) && Dy(or)==Dy(i->r)))
|
||||
draw(i, i->r, w->i, nil, w->i->r.min);
|
||||
freeimage(w->i);
|
||||
w->i = i;
|
||||
w->mc.image = i;
|
||||
|
@ -102,19 +99,15 @@ wresize(Window *w, Image *i, int move)
|
|||
w->scrollr.max.x = r.min.x+Scrollwid;
|
||||
w->lastsr = ZR;
|
||||
r.min.x += Scrollwid+Scrollgap;
|
||||
if(move)
|
||||
frsetrects(w, r, w->i);
|
||||
else{
|
||||
frclear(w, FALSE);
|
||||
frinit(w, r, w->font, w->i, cols);
|
||||
wsetcols(w, 1);
|
||||
w->maxtab = maxtab*stringwidth(w->font, "0");
|
||||
r = insetrect(w->i->r, Selborder);
|
||||
draw(w->i, r, cols[BACK], nil, w->entire.min);
|
||||
wfill(w);
|
||||
wsetselect(w, w->q0, w->q1);
|
||||
wscrdraw(w);
|
||||
}
|
||||
frclear(w, FALSE);
|
||||
frinit(w, r, w->font, w->i, cols);
|
||||
wsetcols(w, 1);
|
||||
w->maxtab = maxtab*stringwidth(w->font, "0");
|
||||
r = insetrect(w->i->r, Selborder);
|
||||
draw(w->i, r, cols[BACK], nil, w->entire.min);
|
||||
wfill(w);
|
||||
wsetselect(w, w->q0, w->q1);
|
||||
wscrdraw(w);
|
||||
wborder(w, Selborder);
|
||||
wsetname(w);
|
||||
w->topped = ++topped;
|
||||
|
@ -124,9 +117,10 @@ wresize(Window *w, Image *i, int move)
|
|||
}
|
||||
|
||||
void
|
||||
wrefresh(Window *w, Rectangle r)
|
||||
wrefresh(Window *w)
|
||||
{
|
||||
/* BUG: rectangle is ignored */
|
||||
Rectangle r;
|
||||
|
||||
if(w == input)
|
||||
wborder(w, Selborder);
|
||||
else
|
||||
|
@ -1127,7 +1121,6 @@ wctlmesg(Window *w, int m, Rectangle r, void *p)
|
|||
if(p!=nil)
|
||||
sendp((Channel*)p, w);
|
||||
break;
|
||||
case Moved:
|
||||
case Reshaped:
|
||||
if(w->deleted){
|
||||
freeimage(i);
|
||||
|
@ -1135,7 +1128,7 @@ wctlmesg(Window *w, int m, Rectangle r, void *p)
|
|||
}
|
||||
w->screenr = r;
|
||||
strcpy(buf, w->name);
|
||||
wresize(w, i, m==Moved);
|
||||
wresize(w, i);
|
||||
proccreate(deletetimeoutproc, estrdup(buf), 4096);
|
||||
flushimage(display, 1);
|
||||
if(Dx(r)<=0){ /* window got hidden, if we had the input, drop it */
|
||||
|
@ -1189,9 +1182,9 @@ wctlmesg(Window *w, int m, Rectangle r, void *p)
|
|||
flushimage(display, 1);
|
||||
break;
|
||||
case Refresh:
|
||||
if(w->i==nil || Dx(w->screenr)<=0 || !rectclip(&r, w->i->r) || w->mouseopen)
|
||||
if(w->i==nil || Dx(w->screenr)<=0 || w->mouseopen)
|
||||
break;
|
||||
wrefresh(w, r);
|
||||
wrefresh(w);
|
||||
flushimage(display, 1);
|
||||
break;
|
||||
case Movemouse:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue