Re: [perl-win32-gui-users] Scintilla Issues under Perl 5.8.7 - a
fix

Hi,
I haven't time anymore to work on my Win32::GUI module
(Grid/AxWindows/Scintilla). And, i switch my personal computer to Linux
as main OS :o)
You can include and maintain those packages in Win32::GUI Main Site. I
have no problem with this.
Cheers,
Laurent
>
> 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.

Thread view

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.

Hi,
I haven't time anymore to work on my Win32::GUI module
(Grid/AxWindows/Scintilla). And, i switch my personal computer to Linux
as main OS :o)
You can include and maintain those packages in Win32::GUI Main Site. I
have no problem with this.
Cheers,
Laurent
>
> 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.