mirror of
https://github.com/brl/mutter.git
synced 2024-11-28 11:00:54 -05:00
stage: Only invoke paint phase callbacks when painting views
These phase callbacks are not intended to be inovked when something secondary is painting the stage, such as a screen cast stream, or similar. Thus, only invoke the callbacks when there is a view associated with the paint context, which will not be the case for offscreen painting. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1207
This commit is contained in:
parent
b7bf42e778
commit
90c4b6492f
@ -198,17 +198,22 @@ meta_stage_paint (ClutterActor *actor,
|
|||||||
CLUTTER_ACTOR_CLASS (meta_stage_parent_class)->paint (actor, paint_context);
|
CLUTTER_ACTOR_CLASS (meta_stage_parent_class)->paint (actor, paint_context);
|
||||||
|
|
||||||
view = clutter_paint_context_get_stage_view (paint_context);
|
view = clutter_paint_context_get_stage_view (paint_context);
|
||||||
|
if (view)
|
||||||
notify_watchers_for_mode (stage, view, paint_context,
|
{
|
||||||
META_STAGE_WATCH_AFTER_ACTOR_PAINT);
|
notify_watchers_for_mode (stage, view, paint_context,
|
||||||
|
META_STAGE_WATCH_AFTER_ACTOR_PAINT);
|
||||||
|
}
|
||||||
|
|
||||||
g_signal_emit (stage, signals[ACTORS_PAINTED], 0);
|
g_signal_emit (stage, signals[ACTORS_PAINTED], 0);
|
||||||
|
|
||||||
for (l = stage->overlays; l; l = l->next)
|
for (l = stage->overlays; l; l = l->next)
|
||||||
meta_overlay_paint (l->data, paint_context);
|
meta_overlay_paint (l->data, paint_context);
|
||||||
|
|
||||||
notify_watchers_for_mode (stage, view, paint_context,
|
if (view)
|
||||||
META_STAGE_WATCH_AFTER_OVERLAY_PAINT);
|
{
|
||||||
|
notify_watchers_for_mode (stage, view, paint_context,
|
||||||
|
META_STAGE_WATCH_AFTER_OVERLAY_PAINT);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Loading…
Reference in New Issue
Block a user