Changeset 10570

Show
Ignore:
Timestamp:
02/07/10 03:28:33 (7 months ago)
Author:
tsee
Message:

init events later

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/Padre/lib/Padre/Task.pm

    r10566 r10570  
    119119require Padre; 
    120120require Padre::Wx; 
     121require Wx; 
    121122 
    122123BEGIN { 
     
    132133}; 
    133134 
    134 # set up the stdout/stderr printing events 
     135# set up the stdout/stderr printing events => initialized during run time 
    135136our $STDOUT_EVENT : shared; 
    136 BEGIN { $STDOUT_EVENT = Wx::NewEventType(); } 
    137137our $STDERR_EVENT : shared; 
    138 BEGIN { $STDERR_EVENT = Wx::NewEventType(); } 
    139138 
    140139=pod 
     
    156155=cut 
    157156 
    158 SCOPE: { 
    159         my $events_initialized = 0; 
    160  
    161         sub schedule { 
    162                 my $self = shift; 
    163                 if ( !$events_initialized ) { 
    164                         my $main = Padre->ide->wx->main; 
    165                         Wx::Event::EVT_COMMAND( 
    166                                 $main, 
    167                                 -1, 
    168                                 $STDOUT_EVENT, 
    169                                 \&_on_stdout, 
    170                         ); 
    171                         Wx::Event::EVT_COMMAND( 
    172                                 $main, 
    173                                 -1, 
    174                                 $STDERR_EVENT, 
    175                                 \&_on_stderr, 
    176                         ); 
    177                         $events_initialized = 1; 
    178                 } 
    179                 Padre->ide->task_manager->schedule($self); 
    180         } 
     157sub schedule { 
     158        my $self = shift; 
     159        if ( not defined $STDOUT_EVENT ) { 
     160                $STDOUT_EVENT = Wx::NewEventType(); 
     161                $STDERR_EVENT = Wx::NewEventType(); 
     162                my $main = Padre->ide->wx->main; 
     163                Wx::Event::EVT_COMMAND( 
     164                        $main, 
     165                        -1, 
     166                        $STDOUT_EVENT, 
     167                        \&_on_stdout, 
     168                ); 
     169                Wx::Event::EVT_COMMAND( 
     170                        $main, 
     171                        -1, 
     172                        $STDERR_EVENT, 
     173                        \&_on_stderr, 
     174                ); 
     175        } 
     176        Padre->ide->task_manager->schedule($self); 
    181177} 
    182178