inspector: Apply toplevel transform before snapshotting overlays
authorTimm Bäder <mail@baedert.org>
Wed, 13 May 2020 18:25:22 +0000 (20:25 +0200)
committerTimm Bäder <mail@baedert.org>
Sun, 17 May 2020 13:30:44 +0000 (15:30 +0200)
gtk/gtkwidgetprivate.h
gtk/inspector/window.c

index 6c0b1513fb027b45771ab93c210780f727f54168..d06db43250b6c1704aec5871a83cbda51b859f21 100644 (file)
@@ -476,6 +476,12 @@ _gtk_widget_is_sensitive (GtkWidget *widget)
   return !(widget->priv->state_flags & GTK_STATE_FLAG_INSENSITIVE);
 }
 
+static inline GskTransform *
+gtk_widget_get_transform (GtkWidget *widget)
+{
+  return widget->priv->transform;
+}
+
 G_END_DECLS
 
 #endif /* __GTK_WIDGET_PRIVATE_H__ */
index 7742ecb8d9f366368b15c597406f6eeefd7cc60d..a06454407f485cab54baa013d88027ce10f6b58f 100644 (file)
@@ -62,6 +62,7 @@
 #include "gtklayoutmanager.h"
 #include "gtkcssprovider.h"
 #include "gtkstylecontext.h"
+#include "gtkwidgetprivate.h"
 
 
 enum {
@@ -608,11 +609,16 @@ gtk_inspector_prepare_render (GtkWidget            *widget,
       snapshot = gtk_snapshot_new ();
       gtk_snapshot_append_node (snapshot, node);
 
+      gtk_snapshot_save (snapshot);
+      gtk_snapshot_transform (snapshot, gtk_widget_get_transform (widget));
+
       for (l = iw->overlays; l; l = l->next)
         {
           gtk_inspector_overlay_snapshot (l->data, snapshot, node, widget);
         }
 
+      gtk_snapshot_restore (snapshot);
+
       gsk_render_node_unref (node);
       node = gtk_snapshot_free_to_node (snapshot);
     }