From 5716fc4b908c6467959bafd209144f657acdaf92 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Mon, 15 Sep 2014 13:24:05 -0400 Subject: [PATCH] test-runner: Add 'csd' keyword for window creation Allow specifying 'csd' when creating a window to make the client create a client-side-decorated window. --- src/tests/README | 5 +++-- src/tests/test-client.c | 24 +++++++++++++++++++++--- src/tests/test-runner.c | 5 +++-- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/tests/README b/src/tests/README index 9270a16f1..b7d9444ac 100644 --- a/src/tests/README +++ b/src/tests/README @@ -48,9 +48,10 @@ quit_client Destroys all windows for the client, waits for that to be processed, then instructs the client to exit. -create / [override] +create / [override|csd] Creates a new window. For the X11 backend, the keyword 'override' - can be given to create an override-redirect + can be given to create an override-redirect and the keyword 'csd' + can be given to create a client-side decorated window. show / hide / diff --git a/src/tests/test-client.c b/src/tests/test-client.c index 95b725c94..1618331c2 100644 --- a/src/tests/test-client.c +++ b/src/tests/test-client.c @@ -67,7 +67,7 @@ process_line (const char *line) if (argc < 2) { - g_print ("usage: create [override]"); + g_print ("usage: create [override|csd]"); goto out; } @@ -78,13 +78,31 @@ process_line (const char *line) } gboolean override = FALSE; + gboolean csd = FALSE; for (i = 2; i < argc; i++) - if (strcmp (argv[i], "override") == 0) - override = TRUE; + { + if (strcmp (argv[i], "override") == 0) + override = TRUE; + if (strcmp (argv[i], "csd") == 0) + csd = TRUE; + } + + if (override && csd) + { + g_print ("override and csd keywords are exclusie"); + goto out; + } GtkWidget *window = gtk_window_new (override ? GTK_WINDOW_POPUP : GTK_WINDOW_TOPLEVEL); g_hash_table_insert (windows, g_strdup (argv[1]), window); + if (csd) + { + GtkWidget *headerbar = gtk_header_bar_new (); + gtk_window_set_titlebar (GTK_WINDOW (window), headerbar); + gtk_widget_show (headerbar); + } + gtk_window_set_default_size (GTK_WINDOW (window), 100, 100); gchar *title = g_strdup_printf ("test/%s/%s", client_id, argv[1]); diff --git a/src/tests/test-runner.c b/src/tests/test-runner.c index 7b2dae174..951399290 100644 --- a/src/tests/test-runner.c +++ b/src/tests/test-runner.c @@ -665,8 +665,9 @@ test_case_do (TestCase *test, else if (strcmp (argv[0], "create") == 0) { if (!(argc == 2 || - (argc == 3 && strcmp (argv[2], "override") == 0))) - BAD_COMMAND("usage: %s / [override]", argv[0]); + (argc == 3 && strcmp (argv[2], "override") == 0) || + (argc == 3 && strcmp (argv[2], "csd") == 0))) + BAD_COMMAND("usage: %s / [override|csd]", argv[0]); TestClient *client; const char *window_id;