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.