summaryrefslogtreecommitdiff
path: root/gtk/gtkwindow.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2016-10-26 05:29:07 +0200
committerBenjamin Otte <otte@redhat.com>2016-10-27 05:07:23 +0200
commit48f5df53188382ced355bf8116bbe1b5e1fced08 (patch)
tree81820f47422cf95b2db85d2cabc07c964a8bc5ff /gtk/gtkwindow.c
parente1e64ac6fcda36c5875cba0514efca341808f25b (diff)
downloadgtk+-48f5df53188382ced355bf8116bbe1b5e1fced08.tar.gz
gtk: Add back infrastructure for GTK_DEBUG=updates
Includes the ability to turn on updates in the inspector. Animations are now run via a tick function which allows us to neatly overlay a semi-transparent red rectangle and fade it out over time. It also probably enables way more, but somebody with more UI neatness than me needs to figure out what it eanbles first...
Diffstat (limited to 'gtk/gtkwindow.c')
-rw-r--r--gtk/gtkwindow.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index bb4b48a361..81435f515b 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -41,6 +41,7 @@
#include "gtkcssiconthemevalueprivate.h"
#include "gtkcssrgbavalueprivate.h"
#include "gtkcssshadowsvalueprivate.h"
+#include "gtkdebugupdatesprivate.h"
#include "gtkkeyhash.h"
#include "gtkmain.h"
#include "gtkmnemonichash.h"
@@ -8211,6 +8212,8 @@ gtk_window_queue_draw_region (GtkWidget *widget,
return;
}
+ gtk_debug_updates_add (widget, region);
+
gdk_window_invalidate_region (_gtk_widget_get_window (widget), region, TRUE);
}
@@ -9412,7 +9415,7 @@ gtk_window_get_render_node (GtkWidget *widget,
{
GtkWindowPrivate *priv = GTK_WINDOW (widget)->priv;
GtkStyleContext *context;
- GskRenderNode *node;
+ GskRenderNode *node, *updates_node;
GtkAllocation allocation;
GtkBorder window_border;
gint title_height;
@@ -9506,6 +9509,13 @@ gtk_window_get_render_node (GtkWidget *widget,
gtk_container_propagate_render_node (GTK_CONTAINER (widget), renderer, node);
+ updates_node = gtk_debug_updates_get_render_node (widget, renderer);
+ if (updates_node)
+ {
+ gsk_render_node_append_child (node, updates_node);
+ gsk_render_node_unref (updates_node);
+ }
+
return node;
}