From e1f839f48f8e49c826ba558fbc9d6842a156b28b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Tue, 13 Nov 2018 03:43:57 +0100 Subject: [PATCH] tests: Add 'accept_focus' command to runner and client Under the hood, calls gtk_window_set_accept_focus in the client https://gitlab.gnome.org/GNOME/mutter/merge_requests/307 --- src/tests/test-client.c | 18 ++++++++++++++++++ src/tests/test-runner.c | 19 +++++++++++++++++++ 2 files changed, 37 insertions(+) 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],