From 293948ad80f2f9dddf4af282e2b83b99b2e56014 Mon Sep 17 00:00:00 2001 From: rbuj Date: Sun, 24 Oct 2021 21:41:34 +0200 Subject: Use GLib's new g_clear_signal_handler() function to simplify code --- mate-panel/panel-toplevel.c | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) (limited to 'mate-panel/panel-toplevel.c') diff --git a/mate-panel/panel-toplevel.c b/mate-panel/panel-toplevel.c index c6f19c0b..4930a3c3 100644 --- a/mate-panel/panel-toplevel.c +++ b/mate-panel/panel-toplevel.c @@ -2661,27 +2661,37 @@ panel_toplevel_reverse_arrows (PanelToplevel *toplevel) static void panel_toplevel_disconnect_attached (PanelToplevel *toplevel) { - int i; + guint i; +#if GLIB_CHECK_VERSION(2,62,0) for (i = 0; i < N_ATTACH_TOPLEVEL_SIGNALS; i++) { - if (!toplevel->priv->attach_toplevel_signals [i]) - continue; - - g_signal_handler_disconnect ( - toplevel->priv->attach_toplevel, - toplevel->priv->attach_toplevel_signals [i]); - toplevel->priv->attach_toplevel_signals [i] = 0; + g_clear_signal_handler (&toplevel->priv->attach_toplevel_signals [i], + toplevel->priv->attach_toplevel); } for (i = 0; i < N_ATTACH_WIDGET_SIGNALS; i++) { - if (!toplevel->priv->attach_widget_signals [i]) - continue; + g_clear_signal_handler (&toplevel->priv->attach_widget_signals [i], + toplevel->priv->attach_widget); + } +#else + for (i = 0; i < N_ATTACH_TOPLEVEL_SIGNALS; i++) { + if (toplevel->priv->attach_toplevel_signals [i] != 0) { + g_signal_handler_disconnect (toplevel->priv->attach_toplevel, + toplevel->priv->attach_toplevel_signals [i]); + toplevel->priv->attach_toplevel_signals [i] = 0; + } + } - g_signal_handler_disconnect ( - toplevel->priv->attach_widget, - toplevel->priv->attach_widget_signals [i]); - toplevel->priv->attach_widget_signals [i] = 0; + for (i = 0; i < N_ATTACH_WIDGET_SIGNALS; i++) { + g_clear_signal_handler (&toplevel->priv->attach_widget_signals [i], + toplevel->priv->attach_widget); + if (toplevel->priv->attach_widget_signals [i] != 0) { + g_signal_handler_disconnect (toplevel->priv->attach_widget, + toplevel->priv->attach_widget_signals [i]); + toplevel->priv->attach_widget_signals [i] = 0; + } } +#endif } static void -- cgit v1.2.1