Re: ANNOUNCE: gtkmm 2.91.7
- From: Krzesimir Nowak <qdlacz gmail com>
- To: Murray Cumming <murrayc murrayc com>
- Cc: gtkmm-list <gtkmm-list gnome org>
- Subject: Re: ANNOUNCE: gtkmm 2.91.7
- Date: Fri, 24 Dec 2010 13:14:55 +0100
2010/12/22 Murray Cumming <murrayc murrayc com>:
> On Wed, 2010-12-22 at 12:31 +0100, Murray Cumming wrote:
>> WARNING: TreeViews seems to be mostly empty in this version, but I'm releasing
>> this unstable version anyway. Maybe someone can discover what the problem is.
>
> This is not a problem with plain GTK+, so maybe something in gtkmm is
> causing it. Maybe some vfunc, for instance.
>
> I'm not likely to have much time over the next few weeks, so I'd
> appreciate any help in debugging this.
>
I have some suspicions about newly introduced cell stuff.
Especially a piece of code in gtkcelllayout.c beginning from line 133:
if (iface->pack_start)
iface->pack_start (cell_layout, cell, expand);
else
{
area = iface->get_area (cell_layout);
if (area)
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (area), cell, expand);
}
The `if (iface->pack_start)' is true, because gtkmm puts there its own
function calling a C++ virtual method if possible. But none is called
when a type is not a derived one (here - Gtk::CellRendererText), so
it tries to call the original C vfunc. But this vfunc is NULL, so in the
end `iface->pack_start (cell_layout, cell, expand);' is a NOP. In that
case `else' part should be executed, but in C++ it isn't. This should
probably be fixed in C by giving GtkCellRendererText pack_start
vfunc a body in `else'. What do you think?
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]