Re: Modify theme api to use cairo - any chance to get that in?
- From: Clemens Eisserer <linuxhippy gmail com>
- To: Emmanuele Bassi <ebassi gmail com>, gtk-devel-list gnome org
- Subject: Re: Modify theme api to use cairo - any chance to get that in?
- Date: Wed, 3 Feb 2010 11:59:14 -0500
Thanks for taking the time to respond.
> if you switch from a Drawable to a cairo_t* engines will have to be
> rewritten - but they will also still have the issues they have right
> now. the real plan is to actually address the issues, not paper over
> them by having gtk+ call gdk_cairo_create() for the theme engines.
>> Is there any way to get only a slightly modified theme api into GTK2?
>> What are arguments against it?
> that it's pointless? a useless papering over real issues?
Well, a big issue is that non-gtk applications trying to use GTK
themes can only do this in a brain-dead way.
This already hurts Mozilla and Java based apps a lot. That would be
solved by such a patch.
Nothing more, nothing less.
> gtk+ 3.x is the occasion to bump API *and* ABI, so time and effort
> should be spent into looking at ways to solve issues of the 2.x API.
The reason I am pushing this hard is, I was told *exactly* the same
two years ago, and for now it looks like I have to wait another 2
years until GTK3 is released and again 1-2 years until apps start
I am waiting now for 3 years for this issue to be dealt with. non-gtk
consumers even think about re-implementing a complete GdkDrawable
client-side, however of course nobody did it till now, would be crazy
Solving that stuff in the theme api seems a far better way as far as I can tell.
> you seem to be under the impression that changing the API of the theme
> engines is not going to require an ABI bump - which is still problematic
> to handle from a loadable module perspective, and the gtk+ maintainers
> are not really looking forward to the mess it causes (especially with
> poorly maintained third party themes).
No ABI bump required of course.
If a theme register itself as a GtkStyle, well you have to handle it a
If a theme registers as GtkCairoStyle, its enough to pass a cairo_t to it.
For GTK+ this doesn't change anything, it would pass a GdkDrawble as
usual, only if a GdkCairoStyle is used a cairo-context would be
created. (I already ran benchmarks two years ago).
So if you've a modified theme, as non-gtk app you get the benefits, if
not fall back to the code used till now.
For cairo-based themes this means changing function-parameters and
removing cairo-context creation from every method, mostly an automated
] [Thread Prev