Re: Reparenting cleanup



Timo Korvola iki fi writes:
[from the patch]
> +		   It also means that if we die, the window stays
> +		   unmapped.  This is correct for withdrawn windows
> +		   while iconic windows should be mapped, which
> +		   happens if they are in their frames and in the save
> +		   set.  Iconic windows should therefore be kept
> +		   mapped: iconification should only unmap the
> +		   frame. -- thk */

Well, I looked at the ICCCM again...  The above is wrong: the wm must
unmap the actual client window on iconify.  The reason is that the
client may monitor UnmapNotify events on its window to detect
iconification.

Also, windows in the save set get mapped automatically if they were
unmapped by the wm and the wm then exits.  This is true even for
windows that are not currently reparented by the wm.  It follows that
iconified windows must be kept in the save set whereas withdrawn
windows must not.

> -	if (!w->mapped)
> -	    XRemoveFromSaveSet (dpy, w->id);
> +	/* Now that the window is a child of the root it does not need
> +	   to be in the save set anymore.  -- thk */
> +	XRemoveFromSaveSet (dpy, w->id);

So this change to remove_window_frame in src/windows.c was wrong and
needs to be reverted.  Other than that, my changes should not have
affected iconification.

-- 
	Timo Korvola		<URL:http://www.iki.fi/tkorvola>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]