- g_signal_connect (selection, "changed", G_CALLBACK (on_source_select),
- selector);
+ selector->row_activate_id =
+ g_signal_connect (source, "row-activated", G_CALLBACK (on_row_activate), selector);
+
+ if ( selector->source_select_id )
+ g_signal_handler_disconnect (selection, selector->source_select_id);
+
+ selector->source_select_id =
+ g_signal_connect (selection, "changed", G_CALLBACK (on_source_select), selector);