Ejemplo n.º 1
0
Archivo: windw.c Proyecto: 8l/inferno
void
tkunmap(Tk *tk)
{
	TkTop *t;
	TkCtxt *c;

	while(tk->master)
		tk = tk->master;

	if((tk->flag & Tkmapped) == 0)
		return;

	t = tk->env->top;
	c = t->ctxt;

	if(tkischild(tk, c->mgrab))
		tksetmgrab(t, nil);
	if(tkischild(tk, c->entered)){
		tkdeliver(c->entered, TkLeave, nil);
		c->entered = nil;
	}
	if(tk == t->root)
		tksetglobalfocus(t, 0);

	tk->flag &= ~(Tkmapped|Tksuspended);

	tkdestroywinimage(tk);
	tkdeliver(tk, TkUnmap, nil);
	tkenterleave(t);
	/* XXX should unmap menus too */
}
Ejemplo n.º 2
0
void
tkrunpack(TkTop *t)
{
	Tk *tk;
	int done;

	while(packorder != nil) {
		tk = packorder->t;
		if (tk->grid != nil)
			done = tkgridder(tk);
		else
			done = tkpacker(tk);
		if (done)
			tkpackqrm(tk);
	}
	tkenterleave(t);
	tkdirtyfocusorder(t);
}