diff options
author | rbuj <[email protected]> | 2021-10-24 21:41:34 +0200 |
---|---|---|
committer | Luke from DC <[email protected]> | 2021-12-19 11:15:02 +0000 |
commit | 293948ad80f2f9dddf4af282e2b83b99b2e56014 (patch) | |
tree | 5a1dbf47834505e8681ac8c85e8255c1d48b10df /mate-panel/panel-toplevel.c | |
parent | 6fbabd51619c92bcd8584e1bb2f12f2b52904ea6 (diff) | |
download | mate-panel-293948ad80f2f9dddf4af282e2b83b99b2e56014.tar.bz2 mate-panel-293948ad80f2f9dddf4af282e2b83b99b2e56014.tar.xz |
Use GLib's new g_clear_signal_handler() function to simplify code
Diffstat (limited to 'mate-panel/panel-toplevel.c')
-rw-r--r-- | mate-panel/panel-toplevel.c | 38 |
1 files changed, 24 insertions, 14 deletions
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 |