[gtk/inspector-display: 13/14] inspector: Make logs respect inspected display



commit af7f802e959d364b8fe1f7ed66e5273c4b6e2737
Author: Matthias Clasen <mclasen redhat com>
Date:   Sat Dec 7 12:31:10 2019 -0500

    inspector: Make logs respect inspected display

 gtk/inspector/logs.c    | 37 +++++++++++++++++++++----------------
 gtk/inspector/logs.h    |  3 +++
 gtk/inspector/window.c  |  3 +++
 gtk/inspector/window.h  |  1 +
 gtk/inspector/window.ui |  2 +-
 5 files changed, 29 insertions(+), 17 deletions(-)
---
diff --git a/gtk/inspector/logs.c b/gtk/inspector/logs.c
index 767772eb77..a83d32b671 100644
--- a/gtk/inspector/logs.c
+++ b/gtk/inspector/logs.c
@@ -24,6 +24,7 @@
 #include <glib/gi18n-lib.h>
 
 #include "logs.h"
+#include "window.h"
 
 #include "gtktextview.h"
 #include "gtkmessagedialog.h"
@@ -33,6 +34,7 @@
 #include "gtktooltip.h"
 #include "gtktextiter.h"
 #include "gtkprivate.h"
+#include "gtkroot.h"
 #include "gtkdebug.h"
 #include "gdkinternals.h"
 #include "gtknative.h"
@@ -72,6 +74,8 @@ struct _GtkInspectorLogsPrivate
   GtkWidget *printing;
   GtkWidget *tree;
   GtkWidget *text;
+
+  GdkDisplay *display;
 };
 
 G_DEFINE_TYPE_WITH_PRIVATE (GtkInspectorLogs, gtk_inspector_logs, GTK_TYPE_BOX)
@@ -107,12 +111,9 @@ flag_toggled (GtkWidget        *button,
               GtkInspectorLogs *logs)
 {
   guint flags;
-  GdkDisplay *display;
   GList *toplevels, *l;
 
-  display = gdk_display_get_default ();
-
-  flags = gdk_display_get_debug_flags (display);
+  flags = gdk_display_get_debug_flags (logs->priv->display);
   update_flag (logs->priv->events, &flags, GDK_DEBUG_EVENTS);
   update_flag (logs->priv->misc, &flags, GDK_DEBUG_MISC);
   update_flag (logs->priv->dnd, &flags, GDK_DEBUG_DND);
@@ -124,7 +125,7 @@ flag_toggled (GtkWidget        *button,
   update_flag (logs->priv->vulkan, &flags, GDK_DEBUG_VULKAN);
   update_flag (logs->priv->selection, &flags, GDK_DEBUG_SELECTION);
   update_flag (logs->priv->clipboard, &flags, GDK_DEBUG_CLIPBOARD);
-  gdk_display_set_debug_flags (display, flags);
+  gdk_display_set_debug_flags (logs->priv->display, flags);
 
   flags = gsk_get_debug_flags ();
   update_flag (logs->priv->renderer, &flags, GSK_DEBUG_RENDERER);
@@ -141,20 +142,17 @@ flag_toggled (GtkWidget        *button,
   for (l = toplevels; l; l = l->next)
     {
       GtkWidget *toplevel = l->data;
-      GskRenderer *renderer;
-
-      if ((GtkRoot *)toplevel == gtk_widget_get_root (button)) /* skip the inspector */
-        continue;
 
-      renderer = gtk_native_get_renderer (GTK_NATIVE (toplevel));
-      if (!renderer)
-        continue;
-
-      gsk_renderer_set_debug_flags (renderer, flags);
+      if (gtk_root_get_display (GTK_ROOT (toplevel)) == logs->priv->display)
+        {
+          GskRenderer *renderer = gtk_native_get_renderer (GTK_NATIVE (toplevel));
+          if (renderer)
+            gsk_renderer_set_debug_flags (renderer, flags);
+        }
     }
   g_list_free (toplevels);
 
-  flags = gtk_get_display_debug_flags (display);
+  flags = gtk_get_display_debug_flags (logs->priv->display);
   update_flag (logs->priv->actions, &flags, GTK_DEBUG_ACTIONS);
   update_flag (logs->priv->builder, &flags, GTK_DEBUG_BUILDER);
   update_flag (logs->priv->sizes, &flags, GTK_DEBUG_SIZE_REQUEST);
@@ -164,7 +162,7 @@ flag_toggled (GtkWidget        *button,
   update_flag (logs->priv->printing, &flags, GTK_DEBUG_PRINTING);
   update_flag (logs->priv->tree, &flags, GTK_DEBUG_TREE);
   update_flag (logs->priv->text, &flags, GTK_DEBUG_TEXT);
-  gtk_set_display_debug_flags (display, flags);
+  gtk_set_display_debug_flags (logs->priv->display, flags);
 }
 
 static void
@@ -208,4 +206,11 @@ gtk_inspector_logs_class_init (GtkInspectorLogsClass *klass)
   gtk_widget_class_bind_template_callback (widget_class, flag_toggled);
 }
 
+void
+gtk_inspector_logs_set_display (GtkInspectorLogs *logs,
+                                GdkDisplay *display)
+{
+  logs->priv->display = display;
+}
+
 // vim: set et sw=2 ts=2:
diff --git a/gtk/inspector/logs.h b/gtk/inspector/logs.h
index 2ead4740fe..c88fe85a42 100644
--- a/gtk/inspector/logs.h
+++ b/gtk/inspector/logs.h
@@ -49,6 +49,9 @@ typedef struct _GtkInspectorLogsClass
 G_BEGIN_DECLS
 
 GType      gtk_inspector_logs_get_type   (void);
+void       gtk_inspector_logs_set_display (GtkInspectorLogs *logs,
+                                           GdkDisplay       *display);
+
 
 G_END_DECLS
 
diff --git a/gtk/inspector/window.c b/gtk/inspector/window.c
index 3b173f73c5..2a80507977 100644
--- a/gtk/inspector/window.c
+++ b/gtk/inspector/window.c
@@ -43,6 +43,7 @@
 #include "recorder.h"
 #include "visual.h"
 #include "general.h"
+#include "logs.h"
 
 #include "gdk-private.h"
 #include "gskrendererprivate.h"
@@ -272,6 +273,7 @@ gtk_inspector_window_constructed (GObject *object)
   gtk_inspector_css_editor_set_display (GTK_INSPECTOR_CSS_EDITOR (iw->css_editor), iw->inspected_display);
   gtk_inspector_visual_set_display (GTK_INSPECTOR_VISUAL (iw->visual), iw->inspected_display);
   gtk_inspector_general_set_display (GTK_INSPECTOR_GENERAL (iw->general), iw->inspected_display);
+  gtk_inspector_logs_set_display (GTK_INSPECTOR_LOGS (iw->logs), iw->inspected_display);
 }
 
 static void
@@ -424,6 +426,7 @@ gtk_inspector_window_class_init (GtkInspectorWindowClass *klass)
   gtk_widget_class_bind_template_child (widget_class, GtkInspectorWindow, css_editor);
   gtk_widget_class_bind_template_child (widget_class, GtkInspectorWindow, visual);
   gtk_widget_class_bind_template_child (widget_class, GtkInspectorWindow, general);
+  gtk_widget_class_bind_template_child (widget_class, GtkInspectorWindow, logs);
 
   gtk_widget_class_bind_template_callback (widget_class, gtk_inspector_on_inspect);
   gtk_widget_class_bind_template_callback (widget_class, on_object_activated);
diff --git a/gtk/inspector/window.h b/gtk/inspector/window.h
index 90e455fb4d..3f29706141 100644
--- a/gtk/inspector/window.h
+++ b/gtk/inspector/window.h
@@ -74,6 +74,7 @@ typedef struct
   GtkWidget *css_editor;
   GtkWidget *visual;
   GtkWidget *general;
+  GtkWidget *logs;
 
   GtkWidget *selected_widget;
 
diff --git a/gtk/inspector/window.ui b/gtk/inspector/window.ui
index 32ef89dccc..dbf005fc62 100644
--- a/gtk/inspector/window.ui
+++ b/gtk/inspector/window.ui
@@ -504,7 +504,7 @@
                         <property name="name">logs</property>
                         <property name="title" translatable="yes">Logging</property>
                         <property name="child">
-                          <object class="GtkInspectorLogs"/>
+                          <object class="GtkInspectorLogs" id="logs"/>
                         </property>
                       </object>
                     </child>


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