History

wsys: remove draw files too

yiyus committed 15 years ago

Commit 63d497f1 parent c20ee974 files · +52 −21Browse files

Unified · Split

4 files
  1. wsys/fsys.h +1 −0
  2. wsys/ninepfsys.c +49 −0
  3. wsys/ninepserver.c +1 −20
  4. wsys/window.c +1 −1
wsys/fsys.h+1−0
@@ -51,6 +51,7 @@ extern char · 50 unmodified lines
5151
5252 void fsinit(Ninepserver*);
5353 Window* qwindow(Qid*);
54+void wsysrmfiles(Ninepserver*, Window*);
5455
5556 char *eve;
5657 Ninepops ops;
wsys/ninepfsys.c+49−0
@@ -87,6 +87,55 @@ wsysaddfiles(Ninepserver *s, Window *w) · 86 unmodified lines
8787 return p;
8888 }
8989
90+static
91+void
92+drawrmfiles(Ninepserver *s, DClient *c)
93+{
94+ int i;
95+ Path p;
96+
97+ i = drawpath(c);
98+ p = PATH(i, 0);
99+ nineprmfile(s, p|Qctl);
100+ nineprmfile(s, p|Qdata);
101+ nineprmfile(s, p|Qcolormap);
102+ nineprmfile(s, p|Qrefresh);
103+ nineprmfile(s, p|Qwindow);
104+ nineprmfile(s, p|Qdrawn);
105+}
106+
107+void
108+wsysrmfiles(Ninepserver *s, Window *w)
109+{
110+ int i;
111+ DClient *c;
112+ Path p;
113+
114+ if(w == nil)
115+ return;
116+ p = PATH(w->id, 0);
117+ nineprmfile(s, p|Qcons);
118+ nineprmfile(s, p|Qconsctl);
119+ nineprmfile(s, p|Qkeyboard);
120+ nineprmfile(s, p|Qcursor);
121+ nineprmfile(s, p|Qmouse);
122+ nineprmfile(s, p|Qpointer);
123+ nineprmfile(s, p|Qsnarf);
124+ nineprmfile(s, p|Qlabel);
125+ nineprmfile(s, p|Qwctl);
126+ nineprmfile(s, p|Qwinid);
127+ nineprmfile(s, p|Qwinname);
128+ nineprmfile(s, p|Qwsys);
129+ nineprmfile(s, p|Qnew);
130+ nineprmfile(s, p|Qdraw);
131+ for(i = 0; i < nclient; i++){
132+ c = client[i];
133+ if(drawwindow(c) == w)
134+ drawrmfiles(s, c);
135+ }
136+ nineprmfile(s, p);
137+}
138+
90139 /* Service Functions */
91140 char*
92141 wsysattach(Qid *qid, char *uname, char *aname)
wsys/ninepserver.c+1−20
@@ -44,26 +44,7 @@ updateref(void) · 43 unmodified lines
4444 void
4545 fsdelete(Window *w)
4646 {
47− Path p;
48−
49− if(w == nil)
50− return;
51− p = PATH(w->id, 0);
52− nineprmfile(server, p|Qcons);
53− nineprmfile(server, p|Qconsctl);
54− nineprmfile(server, p|Qkeyboard);
55− nineprmfile(server, p|Qcursor);
56− nineprmfile(server, p|Qmouse);
57− nineprmfile(server, p|Qpointer);
58− nineprmfile(server, p|Qsnarf);
59− nineprmfile(server, p|Qlabel);
60− nineprmfile(server, p|Qwctl);
61− nineprmfile(server, p|Qwinid);
62− nineprmfile(server, p|Qwinname);
63− nineprmfile(server, p|Qwsys);
64− nineprmfile(server, p|Qnew);
65− nineprmfile(server, p|Qdraw);
66− nineprmfile(server, p);
47+ wsysrmfiles(server, w);
6748 }
6849
6950 char*
wsys/window.c+1−1
@@ -52,6 +52,7 @@ deletewin(Window *w) · 51 unmodified lines
5252
5353 if(w->pid > 0 && killreply(w))
5454 return;
55+ fsdelete(w);
5556 drawdettach(w);
5657 xdeletewin(w);
5758 w->deleted++;
@@ -65,7 +66,6 @@ deletewin(Window *w) · 7 unmodified lines
6566 return;
6667 --nwindow;
6768 memmove(window+i, window+i+1, (nwindow-i)*sizeof(Window*));
68− fsdelete(w);
6969 }
7070
7171 void