mothra: fix a few errors in previous patch
- nil check pl_blue allocation, and don't do it every time pl_rtdraw is called - fix re-adding previously removed flushimage calls - correct format for pointer - sysfatal in pl_drawinit on error
This commit is contained in:
parent
c6f7989176
commit
0fc1abc73d
|
@ -15,6 +15,7 @@
|
|||
#define CKBORDER 2 /* space around X inside frame */
|
||||
static int plldepth;
|
||||
static Image *pl_white, *pl_light, *pl_dark, *pl_black, *pl_hilit;
|
||||
Image *pl_blue;
|
||||
int pl_drawinit(int ldepth){
|
||||
plldepth=ldepth;
|
||||
/* mono */
|
||||
|
@ -23,7 +24,8 @@ int pl_drawinit(int ldepth){
|
|||
pl_dark=allocimage(display, Rect(0,0,1,1), screen->chan, 1, 0x555555FF);
|
||||
pl_black=allocimage(display, Rect(0,0,1,1), screen->chan, 1, 0x000000FF);
|
||||
pl_hilit=allocimage(display, Rect(0,0,1,1), CHAN1(CAlpha,8), 1, 0x80);
|
||||
if(pl_white==0 || pl_light==0 || pl_black==0 || pl_dark==0) return 0;
|
||||
pl_blue=allocimage(display, Rect(0,0,1,1), RGB24, 1, 0x0000FFFF);
|
||||
if(pl_white==0 || pl_light==0 || pl_black==0 || pl_dark==0 || pl_blue==0) sysfatal("allocimage: %r");
|
||||
return 1;
|
||||
}
|
||||
void pl_relief(Image *b, Image *ul, Image *lr, Rectangle r, int wid){
|
||||
|
|
|
@ -9,10 +9,8 @@ void plgrabkb(Panel *g){
|
|||
plkbfocus=g;
|
||||
}
|
||||
void plkeyboard(Rune c){
|
||||
if(plkbfocus){
|
||||
if(plkbfocus)
|
||||
plkbfocus->type(plkbfocus, c);
|
||||
flushimage(display, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -47,5 +45,4 @@ void plmouse(Panel *g, Mouse *m){
|
|||
g->flags&=~REMOUSE;
|
||||
g->lastmouse=hit;
|
||||
}
|
||||
flushimage(display, 1);
|
||||
}
|
||||
|
|
|
@ -109,6 +109,8 @@ struct Panel{
|
|||
|
||||
Panel *plkbfocus; /* the panel in keyboard focus */
|
||||
|
||||
extern Image *pl_blue;
|
||||
|
||||
int plinit(int); /* initialization */
|
||||
void plpack(Panel *, Rectangle); /* figure out where to put the Panel & children */
|
||||
void plmove(Panel *, Point); /* move an already-packed panel to a new location */
|
||||
|
|
|
@ -65,7 +65,6 @@ int pl_hitpopup(Panel *g, Mouse *m){
|
|||
if(g->state!=DOWN){
|
||||
if(pp->save!=0){
|
||||
draw(g->b, p->r, pp->save, 0, p->r.min);
|
||||
flushimage(display, 1);
|
||||
freeimage(pp->save);
|
||||
pp->save=0;
|
||||
}
|
||||
|
|
|
@ -175,9 +175,7 @@ void pl_rtdraw(Image *b, Rectangle r, Rtext *t, Point offs){
|
|||
Point lp, sp;
|
||||
Rectangle dr;
|
||||
Image *bb;
|
||||
Image *pl_blue;
|
||||
|
||||
pl_blue=allocimage(display, Rect(0,0,1,1), RGB24, 1, 0x0000FFFF);
|
||||
bb = b;
|
||||
if(backup==0 || backup->chan!=b->chan || rectinrect(r, backup->r)==0){
|
||||
freeimage(backup);
|
||||
|
|
|
@ -136,7 +136,7 @@ void tw_draw(Textwin *t, int first, int last){
|
|||
er=t->text+last;
|
||||
for(r=t->text+first,lp=t->loc+(first-t->top);r!=er;r++,lp++){
|
||||
if(lp->y+t->hgt>t->r.max.y){
|
||||
fprint(2, "chr %C, index %lld of %d, loc %d %d, off bottom\n",
|
||||
fprint(2, "chr %C, index %zd of %d, loc %d %d, off bottom\n",
|
||||
*r, lp-t->loc, t->bot-t->top, lp->x, lp->y);
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue