Hi Dave,
On May 13, 2016, at 7:31 PM, David T. Lewis lewis@mail.msen.com wrote:
On Fri, May 13, 2016 at 05:22:59PM -0700, Eliot Miranda wrote: On Fri, May 13, 2016 at 4:48 PM, Yoshiki Ohshima Yoshiki.Ohshima@acm.org wrote:
Iit appears that most bits and pieces are there. For example, sqUnixX11.c does have two functions setCompositionFocus() and setCompositionWIndowPosition(), which used to be in a separated loadable VM plugin but now sitting in there without any caller (if I'm not mistaken). And the NuSqueak image has calls to Hand>>compositionWindowManager, and miraculously, returns an instance of ImmX11.
In ImmX11, setCompositionWindowPositionX:y: has a primitive call into ImmX11Plugin; but it appears that all I have to do is to change it to call the above-mentioned function in sqUnixX11.c.
To make it right, I'd propose to add two more functions to the display module interface. I see the implementation of those for X11 is there, and I remember writing something for Windows; but it can be an empty function.
So, if there is no opposition to add these to the display interface, I'd write a patch for it. But one thing I don't know much about is the HostWindowPlugin. If people think it makes sense to have them there for some reason, we can make that work, too.
This is in struct SqDisplay in platforms/unix/vm/SqDisplay.h? Go for it :-)
That sounds right to me also.
Yoshiki,
I have some changes to HostWindowPlugin that makes it work for the latest Squeak trunk. I do not think that this will conflict with any of your changes, and I will post the updates as soon as I can (but maybe not for a couple of days).
I do not know if primSetCompositionWindowPosition should better be in ImmX11Plugin or in HostWindowPlugin, but I see no reason to worry about it now. If someone finds a reason to change it, they can do that later.
Eliot,
The SqDisplayVersionMinor in oscog is 5, and in trunk it is 2. Adding the Qwaq enhancements needed for HostWindowPlugin would make trunk go from 2 -> 3, and the actual implementations in oscog seem to imply we should be at 3 there also. Maybe there were other Qwaq enhancements (that are not relevant here?) that moved the version number to 5.
I made at least two changes after Qwaq. I can check, but they fixed deficiencies, perhaps with sound, perhaps with dnd. I'll figure it out and post. But 5 is meaningful, not arbitrary :-).
Yoshiki's interface enhancement should probably bump the minor version up by one, making it either 3 -> 4 or 5 -> 6.
I'm inclined to think that we should just declare the current minor version to be 5 (as in oscog now) and chalk up the difference to missing Qwaq features, and then let Yoshiki's enhancement be SqDisplayVersionMinor be 6.
Does that sound right?
Yes, spot on.
Dave
Cheers, both!