On Fri, Jul 8, 2022 at 9:26 AM Baldvin Kovacs <baldvin.kov...@gmail.com>
wrote:

> Andrew Potter <agpot...@gmail.com> ezt írta (időpont: 2022. júl. 8., P,
> 17:30):
>
>>
>>
>> On Fri, Jul 8, 2022, 4:01 AM Baldvin Kovacs via gtkmm-list <
>> gtkmm-list@gnome.org> wrote:
>>
>>>
>>> 2. Expose the destroy signal handler, and document that one needs to
>>> unparent children both from that, and in the destructor.
>>>
>>
>> Is this a new warning? My initial thought is this should be a feature of
>> Gtk::manage rather than making everybody hook destroy to unparent.
>>
>
> Not really new:
>
> 08d644c4a53 (Timm Bäder                 2016-12-07 14:05:34 +0100  7558)
>     g_warning ("Finalizing %s %p, but it still has children left:",
> 08d644c4a53 (Timm Bäder                 2016-12-07 14:05:34 +0100  7559)
>                gtk_widget_get_name (widget), widget);
>
> My hypothesis about why this didn't bother people so far: up until
> recently the normal style even in the core Gtk was to inherit from Box (see
> for example GtkColorChooserWidget). Recently there was a lot of cleanup and
> widgets nowadays directly inherit from GtkWidget. That is the pattern I was
> attempting to follow in my own application as well (it is cleaner: it
> doesn't expose internal implementations through public inheritance, namely,
> that the internal structure of the widget is a box).
>
> Out of the two custom widget examples
> in gtkmm-documentation/examples/book/custom one is a custom widget which
> does painting (and has no child widgets), and the other is using C++
> destructor based destruction mechanism. I assume that not many people were
> trying to do custom widgets _and_ using them in a managed manner.
>

Can you share an example? Is your custom widget implemented in C owned by
something wrapped in gtkmm? Are you focused on gtk3 or gtk4?  I know I've
made some custom widgets and not seen this warning, though I'm not certain
they derived from Widget; I recall there is quite a bit of care put into
handling containers. Gtk4 also got rid of Gtk::Container so the details of
exactly how you're eliciting this will be helpful.
_______________________________________________
gtkmm-list mailing list
gtkmm-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to