summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Ã…dahl <jadahl@gmail.com>2018-12-12 15:29:21 +0100
committerRay Strode <rstrode@redhat.com>2019-02-11 13:40:18 -0500
commitfcd55e6f59c398caac363b3a4b7ba1d362f0d354 (patch)
treed4f35f58cc566bccb12508cb1f8e21fd739ba147
parentc5f0fc1276b777283aa18ebe3336edb0a669d36c (diff)
downloadmutter-fcd55e6f59c398caac363b3a4b7ba1d362f0d354.tar.gz
screen-cast/monitor-stream-src: Copy content before cursor is drawn
To get a consistent behaviour no matter whether HW cursors are in use or not, make sure to copy the framebuffer content before the stage overlays (cursor sprite textures) are painted. https://gitlab.gnome.org/GNOME/mutter/merge_requests/357
-rw-r--r--src/backends/meta-screen-cast-monitor-stream-src.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/backends/meta-screen-cast-monitor-stream-src.c b/src/backends/meta-screen-cast-monitor-stream-src.c
index 382d7d4a2..b240744a8 100644
--- a/src/backends/meta-screen-cast-monitor-stream-src.c
+++ b/src/backends/meta-screen-cast-monitor-stream-src.c
@@ -35,7 +35,7 @@ struct _MetaScreenCastMonitorStreamSrc
{
MetaScreenCastStreamSrc parent;
- gulong stage_painted_handler_id;
+ gulong actors_painted_handler_id;
};
G_DEFINE_TYPE (MetaScreenCastMonitorStreamSrc,
@@ -110,8 +110,8 @@ meta_screen_cast_monitor_stream_src_enable (MetaScreenCastStreamSrc *src)
ClutterStage *stage;
stage = get_stage (monitor_src);
- monitor_src->stage_painted_handler_id =
- g_signal_connect_after (stage, "paint",
+ monitor_src->actors_painted_handler_id =
+ g_signal_connect_after (stage, "actors-painted",
G_CALLBACK (stage_painted),
monitor_src);
clutter_actor_queue_redraw (CLUTTER_ACTOR (stage));
@@ -125,8 +125,8 @@ meta_screen_cast_monitor_stream_src_disable (MetaScreenCastStreamSrc *src)
ClutterStage *stage;
stage = get_stage (monitor_src);
- g_signal_handler_disconnect (stage, monitor_src->stage_painted_handler_id);
- monitor_src->stage_painted_handler_id = 0;
+ g_signal_handler_disconnect (stage, monitor_src->actors_painted_handler_id);
+ monitor_src->actors_painted_handler_id = 0;
}
static void