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

Reply via email to