From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from wopr.sciops.net ([216.126.196.60]) by ewsd; Sun Apr 26 04:53:33 EDT 2020 Received: (qmail 55287 invoked from network); 26 Apr 2020 01:53:18 -0700 Received: from 100.43.142.88.rev.sfr.net (HELO u16.nope) (qwx@88.142.43.100) by wopr.sciops.net with SMTP; 26 Apr 2020 01:53:18 -0700 Message-ID: <8189176B7A64339308FBB8A0AAA49AD7@wopr.sciops.net> From: qwx Date: Sun, 26 Apr 2020 10:53:14 +0200 To: 9front@9front.org Subject: mothra fixes MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit List-ID: <9front.9front.org> List-Help: X-Glyph: ➈ X-Bullshit: polling CMS session-aware just-in-time backend Hello, A few bugs seem to have slipped in with the last mothra patch. The inlined patch below fixes them. Does this look ok to merge? Thanks, qwx - 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 diff -r b012b1555646 sys/src/cmd/mothra/libpanel/draw.c --- a/sys/src/cmd/mothra/libpanel/draw.c Sat Apr 25 20:46:45 2020 -0700 +++ b/sys/src/cmd/mothra/libpanel/draw.c Sun Apr 26 10:46:21 2020 +0200 @@ -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 @@ 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) return 0; return 1; } void pl_relief(Image *b, Image *ul, Image *lr, Rectangle r, int wid){ diff -r b012b1555646 sys/src/cmd/mothra/libpanel/event.c --- a/sys/src/cmd/mothra/libpanel/event.c Sat Apr 25 20:46:45 2020 -0700 +++ b/sys/src/cmd/mothra/libpanel/event.c Sun Apr 26 10:46:21 2020 +0200 @@ -9,10 +9,8 @@ plkbfocus=g; } void plkeyboard(Rune c){ - if(plkbfocus){ + if(plkbfocus) plkbfocus->type(plkbfocus, c); - flushimage(display, 1); - } } /* @@ -47,5 +45,4 @@ g->flags&=~REMOUSE; g->lastmouse=hit; } - flushimage(display, 1); } diff -r b012b1555646 sys/src/cmd/mothra/libpanel/panel.h --- a/sys/src/cmd/mothra/libpanel/panel.h Sat Apr 25 20:46:45 2020 -0700 +++ b/sys/src/cmd/mothra/libpanel/panel.h Sun Apr 26 10:46:21 2020 +0200 @@ -109,6 +109,8 @@ 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 */ diff -r b012b1555646 sys/src/cmd/mothra/libpanel/popup.c --- a/sys/src/cmd/mothra/libpanel/popup.c Sat Apr 25 20:46:45 2020 -0700 +++ b/sys/src/cmd/mothra/libpanel/popup.c Sun Apr 26 10:46:21 2020 +0200 @@ -65,7 +65,6 @@ 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; } diff -r b012b1555646 sys/src/cmd/mothra/libpanel/rtext.c --- a/sys/src/cmd/mothra/libpanel/rtext.c Sat Apr 25 20:46:45 2020 -0700 +++ b/sys/src/cmd/mothra/libpanel/rtext.c Sun Apr 26 10:46:21 2020 +0200 @@ -175,9 +175,7 @@ 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); diff -r b012b1555646 sys/src/cmd/mothra/libpanel/textwin.c --- a/sys/src/cmd/mothra/libpanel/textwin.c Sat Apr 25 20:46:45 2020 -0700 +++ b/sys/src/cmd/mothra/libpanel/textwin.c Sun Apr 26 10:46:21 2020 +0200 @@ -136,7 +136,7 @@ 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; }