widget: Redo drawing code
Previously, we had a special cae to draw subwindows of widgets. This is not necessary as conformant widgets should be able to properly render themselves when all windows need to be painted. From now on assume that is the case. We therefore paint nonnative GDK windows "inline" by just returning TRUE for gtk_cairo_should_draw_window() for those windows. This speeds up hilighting different rows in the listbox gtk-demo example tremendously (by a factor of 10 or more) as the previous code was O(<number of non-window subwidgets> * <number of subwindows>) which in the listbox example were ~15,000 and ~2,000 respectively.
Showing with 92 additions and 264 deletions