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