mirror of
https://github.com/brl/mutter.git
synced 2024-11-25 01:20:42 -05:00
compositor: Use g_clear_signal_handler to disconnect signal handlers
This also exposed wrong types used for the signal handler ids. https://gitlab.gnome.org/GNOME/mutter/merge_requests/385
This commit is contained in:
parent
93c7d571af
commit
d20f6c7969
@ -15,7 +15,7 @@ libmutter_api_version = '@0@'.format(api_version)
|
|||||||
|
|
||||||
# generic version requirements
|
# generic version requirements
|
||||||
fribidi_req = '>= 1.0.0'
|
fribidi_req = '>= 1.0.0'
|
||||||
glib_req = '>= 2.56'
|
glib_req = '>= 2.61.1'
|
||||||
gi_req = '>= 0.9.5'
|
gi_req = '>= 0.9.5'
|
||||||
gtk3_req = '>= 3.19.8'
|
gtk3_req = '>= 3.19.8'
|
||||||
gdk_pixbuf_req = '>= 2.0'
|
gdk_pixbuf_req = '>= 2.0'
|
||||||
|
@ -20,8 +20,8 @@ struct _MetaCompositor
|
|||||||
guint pre_paint_func_id;
|
guint pre_paint_func_id;
|
||||||
guint post_paint_func_id;
|
guint post_paint_func_id;
|
||||||
|
|
||||||
guint stage_presented_id;
|
gulong stage_presented_id;
|
||||||
guint stage_after_paint_id;
|
gulong stage_after_paint_id;
|
||||||
|
|
||||||
gint64 server_time_query_time;
|
gint64 server_time_query_time;
|
||||||
gint64 server_time_offset;
|
gint64 server_time_offset;
|
||||||
|
@ -1097,12 +1097,8 @@ meta_compositor_sync_stack (MetaCompositor *compositor,
|
|||||||
if (compositor->top_window_actor == top_window_actor)
|
if (compositor->top_window_actor == top_window_actor)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (compositor->top_window_actor)
|
g_clear_signal_handler (&compositor->top_window_actor_destroy_id,
|
||||||
{
|
compositor->top_window_actor);
|
||||||
g_signal_handler_disconnect (compositor->top_window_actor,
|
|
||||||
compositor->top_window_actor_destroy_id);
|
|
||||||
compositor->top_window_actor_destroy_id = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
compositor->top_window_actor = top_window_actor;
|
compositor->top_window_actor = top_window_actor;
|
||||||
|
|
||||||
@ -1324,31 +1320,16 @@ meta_compositor_dispose (GObject *object)
|
|||||||
{
|
{
|
||||||
MetaCompositor *compositor = META_COMPOSITOR (object);
|
MetaCompositor *compositor = META_COMPOSITOR (object);
|
||||||
|
|
||||||
if (compositor->stage)
|
g_clear_signal_handler (&compositor->stage_after_paint_id, compositor->stage);
|
||||||
{
|
g_clear_signal_handler (&compositor->stage_presented_id, compositor->stage);
|
||||||
g_signal_handler_disconnect (compositor->stage,
|
|
||||||
compositor->stage_after_paint_id);
|
|
||||||
g_signal_handler_disconnect (compositor->stage,
|
|
||||||
compositor->stage_presented_id);
|
|
||||||
|
|
||||||
compositor->stage_after_paint_id = 0;
|
|
||||||
compositor->stage_presented_id = 0;
|
|
||||||
compositor->stage = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
g_clear_handle_id (&compositor->pre_paint_func_id,
|
g_clear_handle_id (&compositor->pre_paint_func_id,
|
||||||
clutter_threads_remove_repaint_func);
|
clutter_threads_remove_repaint_func);
|
||||||
g_clear_handle_id (&compositor->post_paint_func_id,
|
g_clear_handle_id (&compositor->post_paint_func_id,
|
||||||
clutter_threads_remove_repaint_func);
|
clutter_threads_remove_repaint_func);
|
||||||
|
|
||||||
if (compositor->top_window_actor)
|
g_clear_signal_handler (&compositor->top_window_actor_destroy_id,
|
||||||
{
|
compositor->top_window_actor);
|
||||||
g_signal_handlers_disconnect_by_func (compositor->top_window_actor,
|
|
||||||
on_top_window_actor_destroyed,
|
|
||||||
compositor);
|
|
||||||
compositor->top_window_actor = NULL;
|
|
||||||
compositor->top_window_actor_destroy_id = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
g_clear_pointer (&compositor->window_group, clutter_actor_destroy);
|
g_clear_pointer (&compositor->window_group, clutter_actor_destroy);
|
||||||
g_clear_pointer (&compositor->top_window_group, clutter_actor_destroy);
|
g_clear_pointer (&compositor->top_window_group, clutter_actor_destroy);
|
||||||
|
Loading…
Reference in New Issue
Block a user