[gtk/wip/baedert/single-node-window: 8/9] inspector: Apply toplevel transform before snapshotting overlays



commit 36795c122a21e548c9d56c6cb2fe556522c9354b
Author: Timm Bäder <mail baedert org>
Date:   Wed May 13 20:25:22 2020 +0200

    inspector: Apply toplevel transform before snapshotting overlays

 gtk/gtkwidgetprivate.h | 6 ++++++
 gtk/inspector/window.c | 6 ++++++
 2 files changed, 12 insertions(+)
---
diff --git a/gtk/gtkwidgetprivate.h b/gtk/gtkwidgetprivate.h
index 6c0b1513fb..d06db43250 100644
--- a/gtk/gtkwidgetprivate.h
+++ b/gtk/gtkwidgetprivate.h
@@ -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__ */
diff --git a/gtk/inspector/window.c b/gtk/inspector/window.c
index c588554a52..3a0ea3aa94 100644
--- a/gtk/inspector/window.c
+++ b/gtk/inspector/window.c
@@ -62,6 +62,7 @@
 #include "gtklayoutmanager.h"
 #include "gtkcssprovider.h"
 #include "gtkstylecontext.h"
+#include "gtkwidgetprivate.h"
 
 
 enum {
@@ -597,11 +598,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);
     }


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