Re: New drawing/scrolling model

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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]