Results 90 issues of Adrian

The action `:unknown` was being passed to `key-event` rather than `:release`. ``` # java -version openjdk version "11.0.11" 2021-04-20 OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04) OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04,...

We should update the skia backend to use vsync and just repaint when the view changes. The provides good performance, low latency, and low cpu usage when the ui isn't...

Use https://mabe02.github.io/lanterna/apidocs/3.1/com/googlecode/lanterna/screen/Screen.html#getTerminalSize-- to check the terminal size. - Fire a `:terminal-resized` event before first draw and whenever it changes - update docs

Many of the event handlers don't say or document what event info is provided. eg. key-event

``` (basic/scrollview {:scroll-bounds [500 1000] :body [(ui/rectangle 100 100)]}) ```

Based on a suggestion from @holyjak, https://clojurians-log.clojureverse.org/membrane/2021-03-01 `defeffect` registers names of effects based off keywords. Registering keywords is also used by libraries like spec and re-frame. IDEs are starting to...

The contextual properties aren't populated with the correct $prop paths in top level ui.

Currently, `membrane.component` wraps each event type individually. There should be a way to wrap all events with `wrap-on` like functionality.

Many views are provided children like Translate, WithColor, etc. Some views take `drawable` and some take `drawables`. It would probably be better to pick one and stick with it.