Re: Scrolling a Tree View before it's realized



tomas tuxteam de 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



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]