Hi Mark,

what about a workaround in Padre? We have a Win32 flag which is set in 
Windows-Environments, so we could issue an extra update when running on 
Windows. It may be limited to Wx versions > 2.8.10 (and < 2.8.13).

This is no good solution at all but should cause fewer problem than 
patching WxWidgets.

Just my 2 Ct...

Sebastian

On 31.05.2011 15:05, Mark Dootson wrote:
> First - sorry for cross posting - but it is of interest to both wxPerl
> and Padre lists.
>
> Around August 2009 ( so after wxWidgets 2.8.10 ) the following changeset
> was applied to wxWidgets 2.8 branch.
>
> http://trac.wxwidgets.org/changeset/62816/wxWidgets/branches/WX_2_8_BRANCH/src/aui/auibook.cpp
>
> It is a partial backport from trunk I think.
>
> The part currently causing problems is:
>
> if (m_tabs->IsFrozen() || m_tabs->GetParent()->IsFrozen())
>       return;
>
> Padre (as an example) uses Wx::WindowUpdateLocker on the top level frame
> to compress window updates and avoid some flicker.
>
> The issue is that on Windows, Wx::WindowUpdateLocker calls ->Freeze on
> the top level frame and all of its children. That is because on Windows,
> the system call used with Freeze does not prevent child windows updating.
>
> On GTK, the system call used with Freeze does prevent child windows
> updating - and so wxWidgets does not call ->Freeze on child windows.
>
> The net effect is that on MS Windows, wxAuiNotebook does not update as
> expected because the code exits as child windows have IsFrozen set at
> the wxWidgets level - but on GTK updates happen as expected -
> wxAuiNotebook instances do not have IsFrozen set at wxWidgets level.
>
> I think that this means wxAuiNotebook is broken in 2.8.11 / 2.8.12 so
> will propose a change on wxWidgets trac.
>
> Even if this change is accepted, wxWidgets 2.8.13 will be some way off.
>
> Should we incorporate a patch into Alien::wxWidgets ?
>
> I think as a general rule, patching wxWidgets other than to allow
> compilation is a bad idea.
>
> Patching to fix this particular issue on 2.8.12 also has problems -
> similar changes are in the 2.9/trunk branch so it is a change that needs
> to be worked with eventually - however, new Freeze and Thaw methods are
> implemented in the wxAUI objects in 2.9/trunk which I'd assume provide a
> way of working with this change.
>
> But - it seems wrong to have the Padre folks struggling for a workaround
> to a change in wxWidgets that I'm fairly sure needs removing in the 2.8
> branch.
>
> Everyone's thoughts - to patch or not to patch ? Final decision would be
> Mattia's of course as it is not a regular step to patch wxWidgets.
>
> Regards
>
> Mark
>
>
> _______________________________________________
> Padre-dev mailing list
> Padre-dev@perlide.org
> http://mail.perlide.org/mailman/listinfo/padre-dev
_______________________________________________
Padre-dev mailing list
Padre-dev@perlide.org
http://mail.perlide.org/mailman/listinfo/padre-dev

Reply via email to