This version uses a property on the context instead of events. This gets rid of all of the problems and complexity of the previous implementation.
This currently only works on Linux, and it causes a random white bar to be added to the bottom of the GUI.