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 e1f839f48f)
This commit is contained in:
Marco Trevisan (Treviño) 2018-11-13 03:43:57 +01:00
parent b95700dabc
commit 81807fc310
2 changed files with 37 additions and 0 deletions

View File

@ -194,6 +194,24 @@ process_line (const char *line)
NULL)) NULL))
g_print ("Fail to export handle for window id %s", argv[2]); 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 <window-id> [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) else if (strcmp (argv[0], "show") == 0)
{ {
if (argc != 2) if (argc != 2)

View File

@ -435,6 +435,25 @@ test_case_do (TestCase *test,
if (!test_case_parse_window_id (test, argv[1], &client, &window_id, error)) if (!test_case_parse_window_id (test, argv[1], &client, &window_id, error))
return FALSE; 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 <client-id>/<window-id> [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, if (!test_client_do (client, error,
argv[0], window_id, argv[0], window_id,
argv[2], argv[2],