Originally Posted by Mackx
Yes, a full refresh. Although I am not sure why it works (worked?). Maybe it has to do with the total area that needs an update. If you draw something at the top and then update a GtkLabel at the bottom, it leads to a full-refresh.
(see also sysd/src/display.c)
From the "Ion Development Environment" doc., pages 23-24:
A simple hook is added to GTK's main loop event handler which triggers a screen update
on certain expose events. We only perform an update if the expose event was emitted by a top level window, and if the expose is not the result of some intermediate process (such is the case with X configure events). This results in the minimum number of display updates, but it ignores updates to GtkEntry fields because they are implemented as GdkWindows (which are ignored, if they're not top-level).
My guess is that as Gtk.Label widgets do not have their own gdk / X window, the parent container with a proper window gets the refresh, thus this the Gtk.Window often.