Evitar la propagación de GSignal a nuevas GCallbacks registrados
Pregunta
Cómo prevenir futuros gestores de señales para ser llamado desde el primer controlador de señal de devolución de llamada en GSignal?
Por ejemplo, registro tres funciones - func1, FUNC2 y FUNC3 para la misma señal "mysignal". Si func1 se llama en primer lugar, ¿cómo puedo evitar func2 y func3 a ser llamado desde func1?
Esto no debe ser permanente. Debe ser el tiempo de ejecución. es decir func1 puede decidir si func2 y func3 pueden obtener la devolución de llamada basado en los parámetros de entrada que se obtiene.
Solución
g_signal_stop_emission_by_name () y g_signal_stop_emission () resuelve este problema.
Llamando g_signal_stop_emission_by_name () desde func1 previene la propagación adicional a func2 y FUNC3.