Según referencia GObject¿Qué hace g_signal_connect_swapped()?
g_signal_connect_swapped (instancia, detailed_signal, c_handler, datos); conecta una función GCallback a una señal para un objeto particular. La instancia en la que se emite la señal y los datos se intercambiarán al llamar al controlador.
No entiendo muy bien lo que esto significa. ¿Significa esto que el data
apuntará al objeto apuntado por instance
y instance
apuntará al objeto señalado por data
o estoy cometiendo un error aquí?
Si es el caso anterior, ¿cuál es la lógica detrás de esto?
También es bueno para hacer generalmente eventos de niños invocar manejadores con 'self' como primer argumento, por ejemplo:' g_signal_connect_swapped (self-> some_internal_child, "button-press-event", (GCallback) my_mouse_handler, self) '. Hacer eso sin 'intercambio 'significaría tener una fea firma en el lado receptor con un primer argumento que probablemente no sea interesante en la mayoría de los casos, y que a menudo puede obtener de' self-> 'de todos modos. O al menos así es como he usado esto hasta ahora ... –