Owen Taylor <[EMAIL PROTECTED]> writes:

> Here's a proposal for a tiny protocol extension (one request other than
> QueryVersion) that would help a lot in making inter-client embedding
> robust.
> 
> I'm willing to do the work in implementing this for XFree86, though
> I might need help in checking the protocol for sanity and figuring
> out how to implement it. (A separate library for one request seems
> like overkill, but I'm not sure that adding it to XLib would be
> legitimate.)
> 
> Does this proposal make sense?

I went ahead and tried implementing my proposed extension; went quite
easily as I expected. (This is with 'reparent to root' instead of 
'reparent to WINDOW'.)

In the functional part of the diff, where I have:

========
-               if(!pWin->realized && pWin->mapped)
+               if(!pWin->realized && pWin->mapped && pTmp->mapAction != SaveSetUnmap)
                    pWin->mapped = FALSE;
            }
-           MapWindow(pWin, client);
+           if (pTmp->mapAction == SaveSetMap)
+               MapWindow(pWin, client);
+           else                /* SaveSetUnmap */
+               UnmapWindow(pWin, FALSE);
========

I'm not sure I quite understand the original pWin->mapped = FALSE,
so I'm not so confident in the change, though it seems to work
in the limited testing I've done.

The comparison of the size of the diff (~1000 lines) with the amount
of it (~350 lines) which is not just adding a new extension and a new
library certainly supports Keith's opposition to lots of little
extensions.

Regards,
                                        Owen

Attachment: saveset-extension-20020403.diff.gz
Description: Initial implementation attempt

Reply via email to