How does gtk run multiple signal handlers?
In gtk applications, any signal or event can have multiple handlers. gtk documentation suggests that you can implicitly switch off the later handlers by having an earlier handler return TRUE. This may work with events, but I have not been able to get it to work with gtk signals.
If it did work, it would be necessary for handlers to be processed serially, so that each could return before the next one ran.
Now I have a button handler that, among other things, toggles the label on its button, and another handler for the same button that executes differently depending on the label it reads. And I find that the second handler reads the label as it is at the time the "clicked" signal is emitted (which is actually what I want), not the value that the first handler has set. So it does look as if the handlers are processed simultaneously by separate threads, and not in sequence. Which would make it impossible for the return value of one handler to influence another.
Can anyone explain this?