add get_active and ensure that set_active consistently fires the activate signal