From: Scott L. <sla...@th...> - 2002-08-31 06:47:32
|
On Mon, 26 Aug 2002, Mattia Barbon wrote: > This is maily for Marcus, but might interest others. > There are two ways to workaround the bug you reported > (I suddenly realized that I did not explain the workaround, sorry) > 1 - Call directly ->InsertItemPrev (if the 2nd argument is a > Wx::TreeItemId) or ->InsertItemBef (if the 2nd argument is an > integer) > 2 - do this, after the "use Wx;" > undef *Wx::TreeCtrl::InsertItem; > *Wx::TreeCtrl::InsertItem = sub { > my $this = shift; > > if( ref( $_[1] ) && $_[1]->isa( 'Wx::TreeItemId' ) ) > { return $this->InsertItemPrev( @_ ) } > return $this->InsertItemBef( @_ ); > } Hi, I don't remember seeing the oringal bug report, but I found a problem with InsertItem yesterday too and I think the problem you give above must be the same one. I had this patch, but perhaps it's irrelevant: --- TreeCtrl.pm.orig Thu May 2 16:28:28 2002 +++ TreeCtrl.pm Thu Aug 29 18:33:36 2002 @@ -29,7 +29,7 @@ sub InsertItem { my $this = shift; - if( isa( $_[1], 'Wx::TreeItemId' ) ) { return $this->InsertItemPrev( @_ ) } + if( UNIVERSAL::isa( $_[1], 'Wx::TreeItemId' ) ) { return $this->InsertItemPrev( @_ ) } return $this->InsertItemBef( @_ ); } It simply calls `isa' in the correct (UNIVERSAL) package. Also, I wished to not hack wxPerl (or allow that possibly someone already installed an earlier version), so I used this in my application: BEGIN { *Wx::TreeCtrl::isa = *UNIVERSAL::isa } It aliases the bogus `isa' in TreeCtrl package to be in the UNIVERSAL package instead. :) |