[mutter] compositor: Use g_clear_signal_handler to disconnect signal handlers
- From: Jonas Ådahl <jadahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] compositor: Use g_clear_signal_handler to disconnect signal handlers
- Date: Wed, 14 Aug 2019 16:33:57 +0000 (UTC)
commit d20f6c79692807482bd1207f1eba86b56a257bd9
Author: Jonas Ådahl <jadahl gmail com>
Date: Wed Aug 14 10:39:53 2019 +0200
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
meson.build | 2 +-
src/compositor/compositor-private.h | 4 ++--
src/compositor/compositor.c | 31 ++++++-------------------------
3 files changed, 9 insertions(+), 28 deletions(-)
---
diff --git a/meson.build b/meson.build
index 03d61737b..3443d4d34 100644
--- a/meson.build
+++ b/meson.build
@@ -15,7 +15,7 @@ libmutter_api_version = '@0@'.format(api_version)
# generic version requirements
fribidi_req = '>= 1.0.0'
-glib_req = '>= 2.56'
+glib_req = '>= 2.61.1'
gi_req = '>= 0.9.5'
gtk3_req = '>= 3.19.8'
gdk_pixbuf_req = '>= 2.0'
diff --git a/src/compositor/compositor-private.h b/src/compositor/compositor-private.h
index dc384d36f..572249807 100644
--- a/src/compositor/compositor-private.h
+++ b/src/compositor/compositor-private.h
@@ -20,8 +20,8 @@ struct _MetaCompositor
guint pre_paint_func_id;
guint post_paint_func_id;
- guint stage_presented_id;
- guint stage_after_paint_id;
+ gulong stage_presented_id;
+ gulong stage_after_paint_id;
gint64 server_time_query_time;
gint64 server_time_offset;
diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c
index 0a762452f..14e97c4e8 100644
--- a/src/compositor/compositor.c
+++ b/src/compositor/compositor.c
@@ -1097,12 +1097,8 @@ meta_compositor_sync_stack (MetaCompositor *compositor,
if (compositor->top_window_actor == top_window_actor)
return;
- if (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;
- }
+ g_clear_signal_handler (&compositor->top_window_actor_destroy_id,
+ compositor->top_window_actor);
compositor->top_window_actor = top_window_actor;
@@ -1324,31 +1320,16 @@ meta_compositor_dispose (GObject *object)
{
MetaCompositor *compositor = META_COMPOSITOR (object);
- if (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_signal_handler (&compositor->stage_after_paint_id, compositor->stage);
+ g_clear_signal_handler (&compositor->stage_presented_id, compositor->stage);
g_clear_handle_id (&compositor->pre_paint_func_id,
clutter_threads_remove_repaint_func);
g_clear_handle_id (&compositor->post_paint_func_id,
clutter_threads_remove_repaint_func);
- if (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_signal_handler (&compositor->top_window_actor_destroy_id,
+ compositor->top_window_actor);
g_clear_pointer (&compositor->window_group, clutter_actor_destroy);
g_clear_pointer (&compositor->top_window_group, clutter_actor_destroy);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]