Adapted from contribute rxi/lite-plugins but changed to avoid restarting
the application when switching project.
Current problem:
- the reload of the treeview take some time without any feedback for the
user
The problem was that when the editor had no events the cursor was not
blinking because the event loop was blocking on wait_event.
Now we no longer calls wait_event without a timeout if the windows has
the focus. When the window has the focus the timeout is set to 1 / fps
so that the cursor can blinks.
In addition we react to the "focus lost" event to ensure the documents
are redrawn without the cursor.