Re: ANNOUNCE: gtkmm 2.91.7



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]