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

Reply via email to