I've done a bunch of work on the baseline stuff and rebased it into a nice branch called wip/baseline3. Its got the core working with a bunch of widgets converted.
The only interesting widget that lacks baseline support (imho) is GtkComboBox. But that one is hard due to it using GtkCellArea & co. I'd rather not add baseline support to cell renderers... There is a new GTK_DEBUG flag called baselines, so if you want to try this out, do: GTK_DEBUG=baselines tests/testbaseline There are however some open issues: * I added a new vfunc called get_preferred_height_and_baseline_for_width which is the basic baseline supporting size request. The core code will call this all the time now, but there is a default implementation that calls the old methods, which should keep old widgets working. However, when I add baseline support to some existing classes i override the default implementation. This means that widgets deriving from these classes (say e.g. GtkButton) that override the old size request vfuncs (say get_preferred_height), will break. We will keep calling the baseline supporting version of the baseclass. I'm not sure how to fix this. I could add some per-type flag for baseline support such that we only use get_preferred_height_and_baseline_for_width if this flag is set. That would mean such old widgets keep working. However, it also means that you *must* always set this flag for all derived classes, even for things where baseline support was implemented from the start, which seems kinda bad. Not sure what the best approach here is... * GtkGrid has a new per-row property, gtk_grid_set/get_row_baseline_position. This is neither a normal property or a child property, which means its not really nicely bindable or usable as construct properties in e.g. GtkBuilder. Is there a good way to handle this? Other than this I think this branch is in a pretty good state. _______________________________________________ gtk-devel-list mailing list gtk-devel-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-devel-list