On Wed, Mar 29, 2006 at 08:53:37PM +0200, Georg Baum wrote: > Am Mittwoch, 29. März 2006 03:11 schrieb Enrico Forestieri: > > > The client works with the cygwin/X11 version of LyX. > > Sorry, I meant windows without cygwin. > > > It doesn't work > > with the cygwin/native-graphics version, but I suspect that this is > > because the Qt sources are crippled when using the cygwin-g++-win32 > > target (as opposed to cygwin-g++, which uses X11). I am confident that > > I can solve this problem. > > Qt should not have anything to do with the client. It should just work if > socket support is available in the OS. AFAIK this is the case on cygwin, > but not on plain win32.
Indeed, when configuring for X11 everything works, because in this case all *_unix.cpp files are pulled in. But, when configuring for cygwin without X11, a mix of *_win.cpp and *_unix.cpp files are compiled. I think the reason is that using the cygwin-g++-win32 target, qeventloop_win.cpp is compiled instead of qeventloop_unix.cpp. The socket code here apparently doesn't work with cygwin. My idea is to substitute the socket code in qeventloop_win.cpp with the one in qeventloop_unix.cpp (when/if I'll have the time...). Notice that qsocketdevice_unix.cpp is always compiled instead of its *_win.cpp counterpart. If it is not so, I can't explain why it works when linking with libqt for X11 and it does not work when linking with libqt without X11. I had not a closer look at the LyX sources, but it seems to me that some sort of callback function gets registered with Qt. -- Enrico