From 4f30f3b44464f9b89512224095474200390b03e9 Mon Sep 17 00:00:00 2001 From: rsc Date: Tue, 30 Mar 2004 05:03:29 +0000 Subject: grey out 9term when it loses focus. --- src/cmd/9term/9term.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'src/cmd/9term/9term.c') diff --git a/src/cmd/9term/9term.c b/src/cmd/9term/9term.c index f8eaf432..2923deea 100644 --- a/src/cmd/9term/9term.c +++ b/src/cmd/9term/9term.c @@ -152,6 +152,9 @@ char *menu2str[] = { Image* cols[NCOL]; Image* hcols[NCOL]; +Image* palegrey; +Image* paleblue; +Image* blue; Image *plumbcolor; Image *execcolor; @@ -187,6 +190,7 @@ threadmain(int argc, char *argv[]) char *p; rfork(RFNOTEG); + _wantfocuschanges = 1; mainpid = getpid(); ARGBEGIN{ default: @@ -236,16 +240,22 @@ threadmain(int argc, char *argv[]) } cols[TEXT] = display->black; cols[HTEXT] = display->black; + palegrey = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, 0x666666FF); hcols[BACK] = cols[BACK]; hcols[HIGH] = cols[HIGH]; - hcols[BORD] = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, DMedblue); + blue = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, DMedblue); + paleblue = allocimage(display, Rect(0, 0, 1, 1), screen->chan, 1, DGreyblue); + + hcols[BORD] = blue; hcols[TEXT] = hcols[BORD]; hcols[HTEXT] = hcols[TEXT]; plumbcolor = allocimage(display, Rect(0,0,1,1), screen->chan, 1, 0x006600FF); execcolor = allocimage(display, Rect(0,0,1,1), screen->chan, 1, 0xAA0000FF); + if(!blue || !palegrey || !paleblue || !plumbcolor || !execcolor) + sysfatal("alloc colors: %r"); draw(screen, screen->r, cols[BACK], nil, ZP); geom(); loop(); @@ -365,6 +375,16 @@ geom(void) Point p; Rectangle r; + if(!acmecolors){ + if(_windowhasfocus){ + cols[TEXT] = cols[HTEXT] = display->black; + hcols[TEXT] = hcols[HTEXT] = blue; + }else{ + cols[TEXT] = cols[HTEXT] = palegrey; + hcols[TEXT] = hcols[HTEXT] = paleblue; + } + } + r = screen->r; r.min.y++; r.max.y--; @@ -1535,7 +1555,7 @@ scrdraw(void) { Rectangle r, r1, r2; static Image *scrx; - + r = scrollr; r.min.x += 1; /* border between margin and bar */ r1 = r; -- cgit v1.2.3