[EMAIL PROTECTED] wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> On Sat, Nov 11, 2006 at 11:51:20AM +0100, Attilio Fiandrotti wrote:
> 
>>Attilio Fiandrotti wrote:
>>
>>>Hi
>>>
>>>In an application i add many items to a ListStore and make it scroll on 
>>>the fly to the default option row,  like this
> 
> [...]
> 
>>I eventually managed this by scrolling the treeview from a callback that 
>>gets fired after the expose event is fired.
>>In order to have scrolling performed only the first time expose event is 
>>fired, i use a global flag which i reset from inside the callback the 
>>first time it's run.
>>I now would like to know if there is a way to run a signal handler only 
>>once and without using a second signal handler or global flags.
> 
> 
> You just might want to call g_signal_handler_disconnect from whithin the 
> signal
> handler. You'll have to stash the handler ID you get from
> g_signal_connect() somewhere accessible from the handler (for example in
> the user data struct).
> 
> OTOH, g_signal_add_emission_hook()  seems to be the function made for
> you :)
> 
> In an emission hook function you just return FALSE if you want the hook
> to be removed. You'll have to check whether your particular signal
> accepts emission hooks, though.

disconnecting the signal handler from within the callback function did 
the trick.

thanks

Attilio
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to