[mutter] tests/utils: Add helper to find a window given a title



commit b7f23c1bafb68af0a9b378e0ad2d362faeaca533
Author: Jonas Ã…dahl <jadahl gmail com>
Date:   Thu Jan 27 18:58:56 2022 +0100

    tests/utils: Add helper to find a window given a title
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2262>

 src/tests/meta-test-utils.c | 49 +++++++++++++++++++++++----------------------
 src/tests/meta-test-utils.h |  4 ++++
 2 files changed, 29 insertions(+), 24 deletions(-)
---
diff --git a/src/tests/meta-test-utils.c b/src/tests/meta-test-utils.c
index 281dbc25b5..6be07af04b 100644
--- a/src/tests/meta-test-utils.c
+++ b/src/tests/meta-test-utils.c
@@ -336,46 +336,47 @@ meta_test_client_wait (MetaTestClient  *client,
 }
 
 MetaWindow *
-meta_test_client_find_window (MetaTestClient  *client,
-                              const char      *window_id,
-                              GError         **error)
+meta_find_window_from_title (MetaContext *context,
+                             const char  *title)
 {
-  MetaDisplay *display = meta_get_display ();
-  GSList *windows;
-  GSList *l;
-  MetaWindow *result;
-  char *expected_title;
-
-  windows =
-    meta_display_list_windows (display,
-                               META_LIST_INCLUDE_OVERRIDE_REDIRECT);
+  g_autoptr (GList) windows = NULL;
+  GList *l;
 
-  expected_title = g_strdup_printf ("test/%s/%s", client->id, window_id);
-
-  result = NULL;
+  windows = meta_display_list_all_windows (meta_context_get_display (context));
   for (l = windows; l; l = l->next)
     {
       MetaWindow *window = l->data;
 
-      if (g_strcmp0 (window->title, expected_title) == 0)
-        {
-          result = window;
-          break;
-        }
+      if (g_strcmp0 (window->title, title) == 0)
+        return window;
     }
 
-  g_slist_free (windows);
-  g_free (expected_title);
+  return NULL;
+}
+
+MetaWindow *
+meta_test_client_find_window (MetaTestClient  *client,
+                              const char      *window_id,
+                              GError         **error)
+{
+  MetaDisplay *display = meta_get_display ();
+  g_autofree char *expected_title = NULL;
+  MetaWindow *window;
+
+  expected_title = g_strdup_printf ("test/%s/%s", client->id, window_id);
+  window = meta_find_window_from_title (meta_display_get_context (display),
+                                        expected_title);
 
-  if (result == NULL)
+  if (!window)
     {
       g_set_error (error,
                    META_TEST_CLIENT_ERROR,
                    META_TEST_CLIENT_ERROR_RUNTIME_ERROR,
                    "window %s/%s isn't known to Mutter", client->id, window_id);
+      return NULL;
     }
 
-  return result;
+  return window;
 }
 
 typedef struct _WaitForShownData
diff --git a/src/tests/meta-test-utils.h b/src/tests/meta-test-utils.h
index 2273b78119..2a42fa641c 100644
--- a/src/tests/meta-test-utils.h
+++ b/src/tests/meta-test-utils.h
@@ -84,6 +84,10 @@ gboolean meta_test_client_do (MetaTestClient  *client,
                               GError         **error,
                               ...) G_GNUC_NULL_TERMINATED;
 
+META_EXPORT
+MetaWindow * meta_find_window_from_title (MetaContext *context,
+                                          const char  *title);
+
 META_EXPORT
 MetaWindow * meta_test_client_find_window (MetaTestClient  *client,
                                            const char      *window_id,


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