sfinster has asked for the wisdom of the Perl Monks concerning the following question:
The problem is, after I dismiss the messagebox used to display the error, I am unable to type anything in. I have to click elsewhere to make the entry lose focus again, get the error message again, and then I'm able to use the keyboard again.
Clearly this isn't acceptable. Can anyone give me a hint as to what's going on and how to fix it? Thanks.
I'm using Perl 5.6.1 on Solaris 2.6.
Here are some code snippets:
$angleEntry = $myForm->Entry(-width => 12, -validate => 'focusout' -validatecommand => \&angleCallback, -invalidcommand => \&angleError, -textvariable => \$angle)->pack; sub angleCallback { my ($str, $newchar, $curstr, $index, $type) = @_; if ((length($str) == 0 || !($str =~ /^\d*.?\d*/) || (str > 360)) { $angleEntry->focus; $angleEntry->selection('range', 0, 'end'); return 0; } return 1; } sub AngleError { $mainWin->messageBox(-title => 'Error', -message => 'Angle must be a number between 0.0 and 360.0', -type => 'OK'); }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Problem with keyboard after entry validation
by CombatSquirrel (Hermit) on Oct 09, 2003 at 15:04 UTC | |
by sfinster (Acolyte) on Oct 09, 2003 at 17:28 UTC |