Em Thu, 2013-05-02 às 14:40 -0400, Alexander Larsson escreveu: > I've tried a bunch of apps and most things seem to work. Currently I > know of two problems: > > The control-center background panel calls gdk_cairo_create() inside > the draw() handler, which draws directly to the window rather than the > passed in cairo_t. This "works" in a sense, but the rendering is then > unaffected by the cairo_push()/pop() that the stack uses for > crossfading, so the crossfade effect breaks. This could possibly > happen in other cases, but it seems like it is pretty uncommon (I > didn't find any other problematic use in all of Gnome). > > The control-center display panel does this weird thing where it > "draws" areas using cairo, and then reads it back to use as input > regions. This code assumes that the coordinates on the cairo_t when > converted via cairo_user_to_device() is in the coordinate space of the > widgets windows, whereas it is now in the coordinate space of the > toplevel. This makes the input regions offset by the position of > the widget making it hard to click/drag them. This is a pretty > weird thing to do, and i don't expect we'll run into other apps > doing the same thing.
Both of those are just plain bugs/misuse of cairo. The display panel at least is ported from old GNOME2 code, and hasn't been eyeballed properly (at least, I stopped when mine started bleeding). It's also due a rewrite/redesign. Cheers _______________________________________________ gtk-devel-list mailing list gtk-devel-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-devel-list