Hi,

The Scintilla control (http://rocherl.club.fr/Win32GUI.html) has a few issues running under 5.8.7 with the latest versions of Win32-GUI. The major problem is that no events are returned.

I know what the problem is and have a 'hacked' a fix together for personal use, but am posting it here as the issue could effect other modules that use Win32-GUI subclassing at the XS level. Also, as Laurent has been quite of late, I'm wondering if a new version of Scintilla should be built and maintained on the Win32 main site?

Scintilla defines it's own tagPERLWIN32GUI_USERDATA structure which it uses internally (it uses Win32::GUI::Create to fill this structure). Many moons ago both structures would be the same, but today both structures are slightly different. In the current form this isn't a major problem (it would become one, if NEM was added to Scintilla for example).

The actual problem is that the Perl context is defined differently (basically, it's not being included in Scintilla, meaning the szWindowName offset is 4 bytes short, meaning the window name is always wrong, meaning no events fired!). The basic fix is to force the inclusion of the context [even just defining an unused long] in Scintilla's version of tagPERLWIN32GUI_USERDATA.

Clearly, the situation is a little more complicated as Scintilla needs to use the same version of tagPERLWIN32GUI_USERDATA as what is being used in the running version of Win32-GUI...

Hope this is of use to someone,

Cheers,

jez.



Reply via email to