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
saveset-extension-20020403.diff.gz
Description: Initial implementation attempt
