On Mon, Aug 9, 2010 at 6:46 PM, Havoc Pennington <h...@pobox.com> wrote: > How would we handle widgets that currently have multiple windows and > draw different things to each one (i.e. the expose handler is looking > at the window in the expose event). > For example GtkTextView > I'm not entirely sure yet. I want to guarantee two semantics: 1) The stuff looks correct on screen. This one is a no-brainer. It should also be fast. 2) Calling gtk_widget_draw() draws all child widgets, even if they have custom windows. This is necessary, because nobody will like just getting a grey box when the contained widgets all have custom windows. And I don't like the whole just-paint-all-windows-one-after-another code in gtk_widget_snapshot() at all.
My current idea on how to implement it is to give the widgets a hint as to wether they are repainting a window or wether they are painting to something else. Something like gdk_cairo_get_current_window() which would return the currently invalidating GdkWindow or NULL. That would basically replace event->window and then all you need to do is check that the order of the draw calls is the window's stacking order and you're all set. Though I guess the exact implementation would depend on our changes to GDK and the way we treat csw in GTK 3. Benjamin _______________________________________________ gtk-devel-list mailing list gtk-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-devel-list