Re: SpinButton: how to avoid calling signal handler when set_value()
- From: Nicola Fontana <ntd entidi it>
- To: Pozz Pozz <pozzugno gmail com>
- Cc: gtk-app-devel-list gnome org
- Subject: Re: SpinButton: how to avoid calling signal handler when set_value()
- Date: Wed, 2 Nov 2016 11:24:45 +0100
Il Wed, 2 Nov 2016 10:23:44 +0100 Pozz Pozz <pozzugno gmail com> scrisse:
...
How do you implement the generic function _my_set_value()? It should have
two parameters: spinbutton and value. signal_handler_block() function needs
the handler_id associated that I don't have.
Maybe during initialization, when I connected the handlers, I could create
a data structure (a list) with spinbuttons and associated handler_id. In
this way, _my_set_value() could accept the item of the list and could
recover the handler_id to block.
However there is another problem with this approach. I'm using Glade and I
connect *all* the handlers with a single instruction:
builder.connect_signals(). So I don't have the handler IDs.
...
Hi,
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);
}
Not tested, but should give you the idea.
Ciao.
--
Nicola
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]