summaryrefslogtreecommitdiff
path: root/src/backends/meta-screen-cast-window-stream.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends/meta-screen-cast-window-stream.c')
-rw-r--r--src/backends/meta-screen-cast-window-stream.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/backends/meta-screen-cast-window-stream.c b/src/backends/meta-screen-cast-window-stream.c
index 7b1b23350..6ba9465b2 100644
--- a/src/backends/meta-screen-cast-window-stream.c
+++ b/src/backends/meta-screen-cast-window-stream.c
@@ -198,6 +198,16 @@ meta_screen_cast_window_stream_finalize (GObject *object)
{
MetaScreenCastWindowStream *window_stream =
META_SCREEN_CAST_WINDOW_STREAM (object);
+ MetaWindowActor *window_actor;
+
+ window_actor = meta_window_actor_from_window (window_stream->window);
+ if (window_actor)
+ {
+ MetaScreenCastWindow *screen_cast_window;
+
+ screen_cast_window = META_SCREEN_CAST_WINDOW (window_actor);
+ meta_screen_cast_window_dec_usage (screen_cast_window);
+ }
g_clear_signal_handler (&window_stream->window_unmanaged_handler_id,
window_stream->window);
@@ -218,6 +228,8 @@ meta_screen_cast_window_stream_initable_init (GInitable *initable,
meta_screen_cast_session_get_screen_cast (session);
MetaBackend *backend = meta_screen_cast_get_backend (screen_cast);
MetaWindow *window = window_stream->window;
+ MetaScreenCastWindow *screen_cast_window =
+ META_SCREEN_CAST_WINDOW (meta_window_actor_from_window (window));
MetaLogicalMonitor *logical_monitor;
int scale;
@@ -248,6 +260,8 @@ meta_screen_cast_window_stream_initable_init (GInitable *initable,
window_stream->stream_width = logical_monitor->rect.width * scale;
window_stream->stream_height = logical_monitor->rect.height * scale;
+ meta_screen_cast_window_inc_usage (screen_cast_window);
+
return initable_parent_iface->init (initable, cancellable, error);
}