Don't pass a non-window-level widget. Painting is handled explicitly via widgetRepaint, so passing a widget to setDirty was just plain wrong anyway ;).