From 93f268a4a83a8032f3f3dc4923fc725b9cb82c12 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 (cherry picked from commit e1f839f48f8e49c826ba558fbc9d6842a156b28b) --- 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 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 ||