This completely restructures the database of terminal types, putting
each terminal in its own file. We also compress the database files,
and use infocmp instead of trying to use the C level API.
The mkdatabase script will rebuild the entire database from the terminfo
files on the system. Individual entries can also be built by simply running
the mkinfo program with the terminal type.
fixes#164 KeyEscape does not work in Go 1.9 under Linux
This is a complete refactor of the input loop for UNIX systems.
We use a blocking reader on the TTY, and a separate select
loop for timers and other events. This means that our idle
use should be low now.
* Fix cScreen.Fini() race condition
Closesgdamore/tcell#158
* Tidy up Windows magic, and fix event ordering
* Move a couple of magic values into constants
* Add more explanatory comments
* Fix ordering WaitForMultipleObjects to give cancellation priority
* Also correct some indentation and minor formatting stuff.
* Use `chan struct{}` for `scandone` to not deadlock
We test 1.5 and newer only. Arguably we could probably stop testing
anything older than 1.7, but some folks will still be using older
versions of golang. Note that 1.3 is definitely busted.
- Widget might be using not just View but other mechanisms for rendering
aware of the view size (e.g. ViewPort).
- By updating the view reference out of Widget, Widget doesn't have a
chance to react on this layout algorithm
- That's an existing bug that happens when we try to use CellView inside
of an BoxLayout
- Widget might be using not just View but other mechanisms for rendering
aware of the view size (e.g. ViewPort).
- By updating the view reference out of Widget, Widget doesn't have a
chance to react on this layout algorithm
- That's an existing bug that happens when we try to use CellView inside
of an BoxLayout
* Make keyNames variable public
This map of variables might be useful to applications wanting to convert text to keys, e.g. for key bindings.
* Document KeyNames variable