diff --git a/src/tests/test-client.c b/src/tests/test-client.c index f1d004cd6..ffe0e6741 100644 --- a/src/tests/test-client.c +++ b/src/tests/test-client.c @@ -196,6 +196,24 @@ process_line (const char *line) NULL)) g_print ("Fail to export handle for window id %s", argv[2]); } + 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 aa95b3bc8..38450947d 100644 --- a/src/tests/test-runner.c +++ b/src/tests/test-runner.c @@ -401,6 +401,25 @@ test_case_do (TestCase *test, 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], "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],