On 5 July 2017 at 12:49, Murray Cumming <murr...@murrayc.com> wrote:

> On Tue, 2017-07-04 at 09:44 +0100, Daniel Boles wrote:
> > How/can I receive an event when some object of my choice is
> > destroyed, so that I can take appropriate action?
> >
> > Here's an example I came up against lately. I should probably
> > refactor the code so I don't need to do things this way... but it
> > illustrates the question quite well. I have a ComboBox where, via
> > some boring exposition, I want to put a signal_changed() handler on
> > its StyleContext. However, that handler holds a reference to a row in
> > the ComboBox's model. Therefore, I need to receive notification when
> > that model dies (i.e. when all holders of RefPtrs release them), so
> > that I can disconnect that signal_changed() handler and therefore
> > stop it from trying to access a dead row.
> [snip]
>
> This shouldn't generally happen. The sigc::trackable base class should
> take care of this. Maybe it would be best to try to reduce this to a
> simple test case.
>

>From my limited understanding of trackable, the issue is probably that my
handler was a lambda, not a sigc::mem_fun. I would prefer not to have to
set the handler on an object, and be required to derive that object from
sigc::trackable, but it sounds like there's not another way.

Anyway, I rewrote the whole thing so that it works differently, and now I
don't really need this handler... I was just curious how it might be done.
Still interested if you have any suggestions!
_______________________________________________
gtkmm-list mailing list
gtkmm-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to