aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/9term/9term.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2004-03-30 05:03:29 +0000
committerrsc <devnull@localhost>2004-03-30 05:03:29 +0000
commit4f30f3b44464f9b89512224095474200390b03e9 (patch)
tree4d746a629308be850eec37e088fb361c0bc49f75 /src/cmd/9term/9term.c
parentc005568a7fe03010dcd1b2df311e3cd7f7459448 (diff)
downloadplan9port-4f30f3b44464f9b89512224095474200390b03e9.tar.gz
plan9port-4f30f3b44464f9b89512224095474200390b03e9.tar.bz2
plan9port-4f30f3b44464f9b89512224095474200390b03e9.zip
grey out 9term when it loses focus.
Diffstat (limited to 'src/cmd/9term/9term.c')
-rw-r--r--src/cmd/9term/9term.c24
1 files changed, 22 insertions, 2 deletions
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;