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'); }
In reply to Problem with keyboard after entry validation by sfinster
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |