I just did some debugging and it seems that FB is receiving ESC [ Z from my XFCE terminal when I press Shift+Tab, but FB does not recognize this sequence and ignores it. After some digging through termcap/terminfo stuff I found that it is the back tab
key, termcap code bt
. That code is not among those handled by FB, see also src/rtlib/unix/io_inkey.c(30)
. Sure enough, after adding it there it was recognized. I wonder, what scancode
should FB use to represent it?
And furthermore, can/should it be supported in other contexts (X11 graphics window, Win32, DOS, etc.)? When testing inside the Linux console (outside X11/XFCE desktop) I noticed that FB just receives &h9 when I press Shift+Tab, same as when just pressing Tab.
Overall there seem to be tons of escape codes that FB doesn't handle. I suppose it only handles some that were specifically chosen to implement certain common keypresses. Maybe FB could pass escape sequences on to the program instead of ignoring them? But this could only be done by returning ESC from Inkey/Getkey, and then the rest of the sequence in further calls, one char at a time, which would break the assumption that each Inkey/Getkey = 1 keypress...