Subject: | Solaris-specific hack breaks expected behaviour (at least on Linux) |
I have a reasonably large application that uses Curses::UI and
Curses::UI::POE. When keyboard input is buffered because the app is
blocking, things get out of sync when the app returns - keys get "lost"
and the app is thereafter "one key behind".
The problem was eventually narrowed down to the following part of UI.pm:
# See if there are pending keys on input. If I do not
# feed them to the application in this way, the screen
# hangs in case I do a lot of input on my Solaris
# machine.
$key = $self->get_key(0);
$self->feedkey($key) unless $key eq '-1';
This is something of a hack. On my Linux machine, commenting out the
above causes correct behaviour, whereby keypresses are buffered and
dealt with when the app returns from its blocking behaviour. Are you
sure this isn't a workaround for a Solaris "feature"?
Antony