GTK+ actually hasn't processed GDK_EXPOSE events for child windows for a considerable amount of time now, and GDK force-sends them for any native window. Setting GDK_EXPOSURE_MASK forces GDK to send a bunch of events that GTK+ won't ever parse, and causes GDK to do some extra work. Don't set the event mask on these widgets anymore.