[mutter] test-runner: Add 'csd' keyword for window creation



commit 5716fc4b908c6467959bafd209144f657acdaf92
Author: Owen W. Taylor <otaylor fishsoup net>
Date:   Mon Sep 15 13:24:05 2014 -0400

    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 9270a16..b7d9444 100644
--- a/src/tests/README
+++ b/src/tests/README
@@ -48,9 +48,10 @@ quit_client <client-id>
  Destroys all windows for the client, waits for that to be processed,
  then instructs the client to exit.
 
-create <client-id>/<window-id> [override]
+create <client-id>/<window-id> [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 <client-id>/<window-id>
 hide <client-id>/<window-id>
diff --git a/src/tests/test-client.c b/src/tests/test-client.c
index 95b725c..1618331 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 <id> [override]");
+          g_print ("usage: create <id> [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 7b2dae1..9513992 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 <client-id>/<window-id > [override]", argv[0]);
+            (argc == 3 && strcmp (argv[2], "override") == 0) ||
+            (argc == 3 && strcmp (argv[2], "csd") == 0)))
+        BAD_COMMAND("usage: %s <client-id>/<window-id > [override|csd]", argv[0]);
 
       TestClient *client;
       const char *window_id;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]