[mutter] core: Trace various window management actions



commit 908203c73586552993636bbd9c5c78931c81b9ce
Author: Jonas Ã…dahl <jadahl gmail com>
Date:   Thu Aug 29 20:34:18 2019 +0300

    core: Trace various window management actions
    
    https://gitlab.gnome.org/GNOME/mutter/merge_requests/765

 src/core/display.c   |  3 +++
 src/core/stack.c     |  7 +++++++
 src/core/window.c    | 15 ++++++++++++++-
 src/core/workspace.c |  7 +++++++
 4 files changed, 31 insertions(+), 1 deletion(-)
---
diff --git a/src/core/display.c b/src/core/display.c
index 6727f3d17..e803f5557 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -52,6 +52,7 @@
 #include "clutter/x11/clutter-x11.h"
 #include "compositor/compositor-private.h"
 #include "compositor/meta-compositor-x11.h"
+#include "cogl/cogl-trace.h"
 #include "core/bell.h"
 #include "core/boxes-private.h"
 #include "core/display-private.h"
@@ -1481,6 +1482,8 @@ void
 meta_display_notify_window_created (MetaDisplay  *display,
                                     MetaWindow   *window)
 {
+  COGL_TRACE_BEGIN_SCOPED (MetaDisplayNotifyWindowCreated,
+                           "Display (notify window created)");
   g_signal_emit (display, display_signals[WINDOW_CREATED], 0, window);
 }
 
diff --git a/src/core/stack.c b/src/core/stack.c
index ff706119d..7d144ee7d 100644
--- a/src/core/stack.c
+++ b/src/core/stack.c
@@ -30,6 +30,7 @@
 #include "core/stack.h"
 
 #include "backends/meta-logical-monitor.h"
+#include "cogl/cogl-trace.h"
 #include "core/frame.h"
 #include "core/meta-workspace-manager-private.h"
 #include "core/window-private.h"
@@ -275,6 +276,9 @@ meta_stack_add (MetaStack  *stack,
 {
   MetaWorkspaceManager *workspace_manager = window->display->workspace_manager;
 
+  COGL_TRACE_BEGIN_SCOPED (MetaStackAdd,
+                           "Stack (add window)");
+
   g_return_if_fail (meta_window_is_stackable (window));
 
   meta_topic (META_DEBUG_STACK, "Adding window %s to the stack\n", window->desc);
@@ -305,6 +309,9 @@ meta_stack_remove (MetaStack  *stack,
 {
   MetaWorkspaceManager *workspace_manager = window->display->workspace_manager;
 
+  COGL_TRACE_BEGIN_SCOPED (MetaStackRemove,
+                           "Stack (remove window)");
+
   meta_topic (META_DEBUG_STACK, "Removing window %s from the stack\n", window->desc);
 
   /* Set window to top position, so removing it will not leave gaps
diff --git a/src/core/window.c b/src/core/window.c
index 34eae494d..e276b1e59 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -67,6 +67,7 @@
 
 #include "backends/meta-backend-private.h"
 #include "backends/meta-logical-monitor.h"
+#include "cogl/cogl-trace.h"
 #include "core/boxes-private.h"
 #include "core/constraints.h"
 #include "core/core.h"
@@ -947,6 +948,15 @@ meta_window_calculate_main_logical_monitor (MetaWindow *window)
                                                              &window_rect);
 }
 
+static void
+meta_window_manage (MetaWindow *window)
+{
+  COGL_TRACE_BEGIN_SCOPED (MetaWindowManage,
+                           "Window (manage)");
+
+  META_WINDOW_GET_CLASS (window)->manage (window);
+}
+
 MetaWindow *
 _meta_window_shared_new (MetaDisplay         *display,
                          MetaWindowClientType client_type,
@@ -959,6 +969,9 @@ _meta_window_shared_new (MetaDisplay         *display,
   MetaWorkspaceManager *workspace_manager = display->workspace_manager;
   MetaWindow *window;
 
+  COGL_TRACE_BEGIN_SCOPED (MetaWindowSharedNew,
+                           "Window (new)");
+
   g_assert (attrs != NULL);
 
   meta_verbose ("attrs->map_state = %d (%s)\n",
@@ -1171,7 +1184,7 @@ _meta_window_shared_new (MetaDisplay         *display,
 
   window->id = meta_display_generate_window_id (display);
 
-  META_WINDOW_GET_CLASS (window)->manage (window);
+  meta_window_manage (window);
 
   if (!window->override_redirect)
     meta_window_update_icon_now (window, TRUE);
diff --git a/src/core/workspace.c b/src/core/workspace.c
index be70ba5a1..59a502df1 100644
--- a/src/core/workspace.c
+++ b/src/core/workspace.c
@@ -40,6 +40,7 @@
 
 #include "backends/meta-backend-private.h"
 #include "backends/meta-logical-monitor.h"
+#include "cogl/cogl-trace.h"
 #include "core/boxes-private.h"
 #include "core/meta-workspace-manager-private.h"
 #include "core/workspace-private.h"
@@ -359,6 +360,9 @@ void
 meta_workspace_add_window (MetaWorkspace *workspace,
                            MetaWindow    *window)
 {
+  COGL_TRACE_BEGIN_SCOPED (MetaWorkspaceAddWindow,
+                           "Workspace (add window)");
+
   g_assert (g_list_find (workspace->mru_list, window) == NULL);
   workspace->mru_list = g_list_prepend (workspace->mru_list, window);
 
@@ -380,6 +384,9 @@ void
 meta_workspace_remove_window (MetaWorkspace *workspace,
                               MetaWindow    *window)
 {
+  COGL_TRACE_BEGIN_SCOPED (MetaWorkspaceRemoveWindow,
+                           "Workspace (remove window)");
+
   workspace->windows = g_list_remove (workspace->windows, window);
 
   workspace->mru_list = g_list_remove (workspace->mru_list, window);


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