diff options
Diffstat (limited to 'src/backends/meta-screen-cast-window-stream.c')
-rw-r--r-- | src/backends/meta-screen-cast-window-stream.c | 14 |
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); } |