I agree with pretty much everything you've said.

I wasn't aware that non-MSW ports didn't freeze their children, I'll
have to look at something more granular later.

WRT WindowUpdateLocker, I used to have my own but I'm trying to use
native Wx objects wherever possible for the improved speed, reduced
Perl code and memory size, and so they'll generally play nicer
together.

The auimanager->Update calls are there because I've never quite
understood the relationship between AUI and regular window
freezing/thawing. So I've been slapping them around like bandwaids,
when all the rest of the update calls to everything else have long
since been deleted.

Adam K

On 30 May 2011 23:03, Mark Dootson <mark.doot...@znix.com> wrote:
> Just to qualify a little,
>
> The $childwin->Layout 'fix' is just a workaround that happens to work
> with wxWidgets 2.8.12 on windows. Maybe it works elsewhere too although
> as the code is handling updates and layout by defeating the normal
> operation of Wx::AUI - an update and layout manager,  there are no
> guarantees.
>
> If you're using Wx::AUI, using WindowUpdateLocker seems problematic (or
> any other additional update and layout scheme) and you might like to
> look at other ways of ameliorating your 'update storms' in the future.
>
> There does seem to be a great many $auimanager->Update calls in the code
> whereas if you are implementing some universal 'top level' code around
> updates, I might have expected to find 1 and only 1.
>
> Just an opinion so don't beat me :-)
>
> Mark
>
>
>
>
>
> On 30/05/2011 11:36, Mark Dootson wrote:
>
>> Indeed.
>>
>> However, the following also seems to remove the symptom if that's what
>> you want. (don't forget to reinstate WindowUpdateLocker creation).
>>
>>
>> sub update_decrement {
>>       my $self = shift;
>>       unless ( --$self->{update_depth} ) {
>>           return if $self->{shutdown};
>>
>>           # Unlocked for the final time
>>           $self->{update_locker} = undef;
>>
>>           for my $childwin ( $self->{owner}->GetChildren ) {
>>               $childwin->Layout if $childwin->isa('Wx::AuiNotebook');
>>           }
>>       }
>>       return;
>> }
>>
>>
>>
>> _______________________________________________
>> 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
>
_______________________________________________
Padre-dev mailing list
Padre-dev@perlide.org
http://mail.perlide.org/mailman/listinfo/padre-dev

Reply via email to