You should not use stop_emission, which only stop current signal loop.
You should use g_signal_handlers_block_by_func() before change your
value, after change value unblock it.
I have tried g_signal_handlers_block_by_func(G_OBJECT(spin),callback,NULL);but that didn't work either. There's not alot of docs or examples on these functions. Did you get this function to work?
Thanks,
Walt