Il Wed, 2 Nov 2016 14:40:58 +0100 Pozz Pozz <pozzu...@gmail.com> scrisse:

> 2016-11-02 11:24 GMT+01:00 Nicola Fontana <n...@entidi.it>:
> > ...
> >
> > you don't necessarily need the handler id. In C (I don't use
> > python) you could write the following:
> >
> > void my_set_value(GtkSpinButton *spin_button, gdouble value)
> > {
> >     g_signal_handlers_block_matched(spin_button,
> >                                     G_SIGNAL_MATCH_FUNC,
> >                                     0, 0, NULL,
> >                                     callback_to_skip,
> >                                     NULL);
> >
> >     /* This will not trigger callback_to_skip */
> >     gtk_spin_button_set_value(spin_button, value)
> >
> >     g_signal_handlers_unblock_matched(spin_button,
> >                                       G_SIGNAL_MATCH_FUNC,
> >                                       0, 0, NULL,
> >                                       callback_to_skip,
> >                                       NULL);
> > }
> >  
> 
> I got the idea. I don't know if g_signal_handlers_block_matched() or
> similar functionality is available in Python. However, remaining in C, your
> code make the assumption there is a single callback function for all the
> spinbuttons. This is not true: I have a different handler for each
> spinbutton, because I have to make different things.

Sorry but I am a developer, not a mind reader.

You can match by data or try to lookup the callback by detail with
g_signal_handler_find or refactor your code to use a single
callback. The fact that you are using different callbacks has a
foul smell indeed.

Come on, a little bit of initiative. Here, today only, the link to
the official (C) documentation:

https://developer.gnome.org/gobject/stable/gobject-Signals.html

Ciao.
-- 
Nicola
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to