in reply to Problem with keyboard after entry validation

After fixing the code a bit (I would assume that to have been typos), the following code works just fine for me:
use Tk; $myForm = new MainWindow; $angleEntry = $myForm->Entry( -width => 12, -validate => 'focusout', -validatecommand => \&angleCallback, -invalidcommand => \&AngleError, -textvariable => \$angle )->pack; $other = $myForm->Entry(-width => 12)->pack; sub angleCallback { my ($str, $newchar, $curstr, $index, $type) = @_; if (length($str) == 0 or $str !~ /^\d*.?\d*$/ or $str > 360) { $angleEntry->focus; $angleEntry->selection('range', 0, 'end'); return 0; } return 1; } sub AngleError { $myForm->messageBox( -title => 'Error', -message => 'Angle must be a number between 0.0 and 360.0', -type => 'OK' ); } MainLoop;
Could you maybe provide a small script that reproduces your error?
CombatSquirrel.
Entropy is the tendency of everything going to hell.

Replies are listed 'Best First'.
Re: Re: Problem with keyboard after entry validation
by sfinster (Acolyte) on Oct 09, 2003 at 17:28 UTC
    I have narrowed the problem down slightly. It only seems to happen (today, anyway) if I use Enter to leave the message box. Clicking the Ok button works fine.

    A large part of my frustration is that this works fine on some machines, not on others. The larger program is so huge it would take me a while to pare it down, but I may have to resort to that.

    (sorry 'bout those typos!)