diff --git a/src/tests/test-client.c b/src/tests/test-client.c index 583608300..1870fd249 100644 --- a/src/tests/test-client.c +++ b/src/tests/test-client.c @@ -161,6 +161,24 @@ process_line (const char *line) gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (parent_window)); } + else if (strcmp (argv[0], "accept_focus") == 0) + { + if (argc != 3) + { + g_print ("usage: %s [true|false]", argv[0]); + goto out; + } + + GtkWidget *window = lookup_window (argv[1]); + if (!window) + { + g_print ("unknown window %s", argv[1]); + goto out; + } + + gboolean enabled = g_ascii_strcasecmp (argv[2], "true") == 0; + gtk_window_set_accept_focus (GTK_WINDOW (window), enabled); + } else if (strcmp (argv[0], "show") == 0) { if (argc != 2) diff --git a/src/tests/test-runner.c b/src/tests/test-runner.c index 8867945c1..613c0bbfb 100644 --- a/src/tests/test-runner.c +++ b/src/tests/test-runner.c @@ -406,6 +406,25 @@ test_case_do (TestCase *test, NULL)) return FALSE; } + else if (strcmp (argv[0], "accept_focus") == 0) + { + if (argc != 3 || + (g_ascii_strcasecmp (argv[2], "true") != 0 && + g_ascii_strcasecmp (argv[2], "false") != 0)) + BAD_COMMAND("usage: %s / [true|false]", + argv[0]); + + TestClient *client; + const char *window_id; + if (!test_case_parse_window_id (test, argv[1], &client, &window_id, error)) + return FALSE; + + if (!test_client_do (client, error, + argv[0], window_id, + argv[2], + NULL)) + return FALSE; + } else if (strcmp (argv[0], "show") == 0 || strcmp (argv[0], "hide") == 0 || strcmp (argv[0], "activate") == 0 ||