+ /* test that activations and state changes propagate the other way */
+
+ g_assert_cmpint (activation_count ("copy"), ==, 0);
+ g_action_group_activate_action (G_ACTION_GROUP (proxy), "copy", NULL);
+
+ g_timeout_add (100, stop_loop, loop);
+ g_main_loop_run (loop);
+
+ g_assert_cmpint (activation_count ("copy"), ==, 1);
+ g_assert (compare_action_groups (G_ACTION_GROUP (group), G_ACTION_GROUP (proxy)));
+
+ g_assert_cmpint (activation_count ("bold"), ==, 0);
+ g_action_group_activate_action (G_ACTION_GROUP (proxy), "bold", NULL);
+
+ g_timeout_add (100, stop_loop, loop);
+ g_main_loop_run (loop);
+
+ g_assert_cmpint (activation_count ("bold"), ==, 1);
+ g_assert (compare_action_groups (G_ACTION_GROUP (group), G_ACTION_GROUP (proxy)));
+ v = g_action_group_get_action_state (G_ACTION_GROUP (group), "bold");
+ g_assert (g_variant_get_boolean (v));
+ g_variant_unref (v);
+
+ g_action_group_change_action_state (G_ACTION_GROUP (proxy), "bold", g_variant_new_boolean (FALSE));
+
+ g_timeout_add (100, stop_loop, loop);
+ g_main_loop_run (loop);
+
+ g_assert_cmpint (activation_count ("bold"), ==, 1);
+ g_assert (compare_action_groups (G_ACTION_GROUP (group), G_ACTION_GROUP (proxy)));
+ v = g_action_group_get_action_state (G_ACTION_GROUP (group), "bold");
+ g_assert (!g_variant_get_boolean (v));
+ g_variant_unref (v);
+