Предотвращение распространения GSignal на другие зарегистрированные GCallbacks

Как предотвратить вызов дополнительных обработчиков сигналов из первого обратного вызова обработчика сигналов в GSignal?

Например, я регистрирую три функции - func1, func2 и func3 для одного и того же сигнала "mysignal". Если func1 вызывается первой, как я могу предотвратить вызов func2 и func3 из func1?

Это не должно быть постоянным. Это должно быть время выполнения. т.е. func1 может решить, могут ли func2 и func3 получить обратный вызов на основе полученных входных параметров.


person Bharathwaaj    schedule 04.08.2010    source источник


Ответы (1)


g_signal_stop_emission_by_name() и g_signal_stop_emission() решают эту проблему.

Вызов g_signal_stop_emission_by_name() из func1 предотвращает дальнейшее распространение в func2 и func3.

person Bharathwaaj    schedule 04.08.2010