Questions about GTK3



So,

I've been busy the last few days making all expose events use Cairo
contexts exclusively and while doing that had to wander into the
cobwebbed regions of Gtk code and other exciting places. While doing
that a few questions about general cleanup occured to me:

1) How to handle old-school widgets
We have widgets that are in real need of a makeover. They look like
they haven't been touched this century. So far, I stumbled across
GtkRuler - see https://bugzilla.gnome.org/show_bug.cgi?id=613942#c2 -
should I expect they get a clean redone API for 3.0 or should I expect
they stay as they are?

2) "no needless API churn"
Matthias mentioned this as a general rule on IRC yesterday. Do we have
any agreed-on idea what we mean by that? Of course everybody thinks
his changes are the most important and certainly not needless, so
agreeing on what is and is not needless might often be somewhat hard.
Some examples:
- GTK3 will likely not have GdkDrawable anymore (useless class after
pixmap removal), but it has a lot of useful functions that would need
to be moved to GdkWindow, like gdk_drawable_get_size() =>
gdk_window_get_size(). Do we just keep the old name? Add a new version
and deprecate the old one? Only provide the new one?
- Same for GtkHFoo/GkVFoo classes. They're absolutely useless now that
we got GtkOrientable, but removing them breaks API. Do we just remove
them? Do we only keep the functions from it that are actually used? Do
we deprecate but keep the functions? Or do we even keep the classes?

3) Cleanup of useless classes
With the removal of the deprecated widgets, we now have objects in the
widget hierarchy that make no real sense anymore (i.e. GtkItem or
GtkEditable). Should they be removed? Should they be kept? Is anyone
working on that or intending to?

4) How to treat workarounds?
Example: http://git.gnome.org/browse/gtk+/tree/gtk/gtkentry.c?id=e6da33a302a51783777e8da41c680cdf4dc783eb#n3292
There's sections of code that say 'work around problem foo in barapp"
and then do something very weird. We could just remove these and end
up with clean code, but would make barapp harder to port to GTK3. Or
we could keep weird behavior. Do we have any preferences here?

5) How proactive are we?
In the rendeirng-cleanup work we've talked about switching widgets to
a no-window drawing model. Unfortunately, some APIs are not very
helpful for that approach (i.e. GtkEntry leaking windows via
gtk_entry_get_icon_window ()). Should we look at cleaning this up
before 3.0? Or do we wait until we actually want to remove windows?
I'm sure there's similar problems for other efforts. How are things
handled there?

Benjamin


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