tbe more faithful to plan 9 environment -- allocate window on top of screen. - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 670dd11a8a0c97345919b28502c950d3a3ef776c
 (DIR) parent 168518a993a67436d00c40f4f9cea68a296a2034
 (HTM) Author: rsc <devnull@localhost>
       Date:   Fri, 18 Mar 2005 18:55:47 +0000
       
       be more faithful to plan 9 environment --
       allocate window on top of screen.
       
       Diffstat:
         M src/libdraw/devdraw.c               |       1 +
         M src/libdraw/init.c                  |      10 ++++++++--
         M src/libdraw/x11-init.c              |      12 +++++++++---
       
       3 files changed, 18 insertions(+), 5 deletions(-)
       ---
 (DIR) diff --git a/src/libdraw/devdraw.c b/src/libdraw/devdraw.c
       t@@ -149,6 +149,7 @@ _initdisplaymemimage(Display *d, Memimage *m)
                client0->op = SoverD;
                sdraw.client[0] = client0;
                sdraw.nclient = 1;
       +        sdraw.softscreen = 1;
        }
        
        void
 (DIR) diff --git a/src/libdraw/init.c b/src/libdraw/init.c
       t@@ -35,8 +35,7 @@ initdraw(void (*error)(Display*, char*), char *fontname, char *label)
                        return -1;
        
                lockdisplay(display);
       -        display->image = display->screenimage;
       -        screen = display->screenimage;
       +        display->screenimage = display->image;
        
                /*
                 * Set up default font
       t@@ -83,6 +82,13 @@ initdraw(void (*error)(Display*, char*), char *fontname, char *label)
                }
                display->opaque = display->white;
                display->transparent = display->black;
       +
       +        _screen = allocscreen(display->image, display->white, 0);
       +        screen = _allocwindow(nil, _screen, display->image->r, Refnone, DWhite);
       +        display->screenimage = screen;
       +        draw(screen, screen->r, display->black, nil, ZP);
       +        flushimage(display, 1);
       +
                atexit(drawshutdown);
                return 1;
        }
 (DIR) diff --git a/src/libdraw/x11-init.c b/src/libdraw/x11-init.c
       t@@ -70,7 +70,8 @@ _initdisplay(void (*error)(Display*, char*), char *label)
        
                d->error = error;
                _initdisplaymemimage(d, m);
       -        d->screenimage = getimage0(d, 0);
       +        d->image = getimage0(d, 0);
       +        
                return d;
        }
        
       t@@ -146,10 +147,15 @@ getwindow(Display *d, int ref)
                 * so we have to reuse the image structure
                 * memory we already have.
                 */
       -        oi = d->screenimage;
       +        oi = d->image;
                i = getimage0(d, oi);
       -        screen = d->screenimage = d->image = i;
       +        d->image = i;
                // fprint(2, "getwindow %p -> %p\n", oi, i);
       +
       +        _screen = allocscreen(i, d->white, 0);
       +        _freeimage1(screen);
       +        screen = _allocwindow(screen, _screen, i->r, ref, DWhite);
       +        d->screenimage = screen;
                return 0;
        }