summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2020-08-31 10:22:35 -0300
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2020-09-01 13:05:29 -0300
commit9e011958d43e24997eb76d0e06f14f0d3a69c27f (patch)
tree56c868e12c89241219f3676bbe2c55ededeaea8e
parentb1648e75a8ca5b604135ee77d0a848747d73233b (diff)
downloadmutter-9e011958d43e24997eb76d0e06f14f0d3a69c27f.tar.gz
clutter/stage: Add new before_paint signal hook
It'll allow subclasses to get notified of the before-paint signal without having to connect to it. This will allow MetaStage to have proper watches being fired there without the cost of the signal handling machinery. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1421
-rw-r--r--clutter/clutter/clutter-stage.c2
-rw-r--r--clutter/clutter/clutter-stage.h3
2 files changed, 4 insertions, 1 deletions
diff --git a/clutter/clutter/clutter-stage.c b/clutter/clutter/clutter-stage.c
index 0900212b0..e4c129ead 100644
--- a/clutter/clutter/clutter-stage.c
+++ b/clutter/clutter/clutter-stage.c
@@ -1874,7 +1874,7 @@ clutter_stage_class_init (ClutterStageClass *klass)
g_signal_new (I_("before-paint"),
G_TYPE_FROM_CLASS (gobject_class),
G_SIGNAL_RUN_LAST,
- 0,
+ G_STRUCT_OFFSET (ClutterStageClass, before_paint),
NULL, NULL, NULL,
G_TYPE_NONE, 1,
CLUTTER_TYPE_STAGE_VIEW);
diff --git a/clutter/clutter/clutter-stage.h b/clutter/clutter/clutter-stage.h
index cceb8d836..7d94b68c3 100644
--- a/clutter/clutter/clutter-stage.h
+++ b/clutter/clutter/clutter-stage.h
@@ -80,6 +80,9 @@ struct _ClutterStageClass
void (* activate) (ClutterStage *stage);
void (* deactivate) (ClutterStage *stage);
+ void (* before_paint) (ClutterStage *stage,
+ ClutterStageView *view);
+
void (* paint_view) (ClutterStage *stage,
ClutterStageView *view,
const cairo_region_t *redraw_clip);