ref: 239a257dac366476513d25fded85f358a564e030
parent: e695bee57b0165ca01c8877b6ae39bd589f6cc3e
author: glenda <glenda@p>
date: Tue Jan 1 16:07:41 EST 2019
hidden mostly works now, still need to fix a few minor bugs
--- a/fns.h
+++ b/fns.h
@@ -33,6 +33,7 @@
void redraw(int full, int resized);
void wtitledraw(Window *w);
void draw_tits(void);
+void delete_tit(Window *w);
#define runemalloc(n) malloc((n)*sizeof(Rune))
--- a/rio.c
+++ b/rio.c
@@ -1183,6 +1183,7 @@
--nhidden;
memmove(hidden+j, hidden+j+1, (nhidden-j)*sizeof(Window*));
wsendctlmesg(w, Reshaped, w->i->r, i);
+ draw_tits();
}
wclose(w);
return i!=0;
--- a/title.c
+++ b/title.c
@@ -18,6 +18,11 @@
int i;
Point p, c;
for(i = 0; i < nwindow; i++) {+ if(window[i]->i == nil)
+ break;
+ if(window[i]->titlei == nil)
+ continue;
+
draw(window[i]->titlei, window[i]->titlei->r, col[Colhigh], nil, ZP);
p.x = window[i]->titler.min.x + 5;
p.y = window[i]->titler.min.y + 12;
@@ -65,4 +70,17 @@
w->titler_button = Rect(w->titler.max.x - 46, w->titler.min.y + 13,
w->titler.max.x - 13, w->titler.max.y - 8);
draw(w->titlei, w->titler_button, col[Coltext], nil, ZP);
+}
+
+void
+delete_tit(Window *w)
+{+ Image *i_t = w->titlei;
+ if(i_t == nil)
+ return;
+
+ w->titlei = nil;
+ originwindow(i_t, (Point){0, 0}, view->r.max);+ replclipr(i_t, 0, ZR);
+ freeimage(i_t);
}
--- a/wind.c
+++ b/wind.c
@@ -357,6 +357,7 @@
wresize(Window *w, Image *i)
{Rectangle r;
+ int j;
w->i = i;
w->mc.image = i;
@@ -379,7 +380,12 @@
wfill(w);
wsetselect(w, w->q0, w->q1);
//wscrdraw(w);
- wtitledraw(w);
+ wtitledraw(w);
+ for(j=0; j<nhidden; j++){+ if(hidden[j] == w){+ delete_tit(w);
+ }
+ }
}
if(w == input)
wborder(w, Selborder);
@@ -1330,15 +1336,7 @@
originwindow(i, i->r.min, view->r.max);
replclipr(i, 0, ZR);
freeimage(i);
-
- Image *i_t = w->titlei;
- if(i_t == nil)
- return;
-
- w->titlei = nil;
- originwindow(i_t, i->r.min, view->r.max);
- replclipr(i_t, 0, ZR);
- freeimage(i_t);
+ delete_tit(w);
}
static void
--
⑨