Re: Modify theme api to use cairo - any chance to get that in?



Hi Emmanuele,

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
using it.
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
anyway..
Solving that stuff in the theme api seems a far better way as far as I can tell.

http://bugs.sun.com/view_bug.do?bug_id=6286734


> 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
GdkDrawable.
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
task.


- Clemens


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