summaryrefslogtreecommitdiff
path: root/mate-panel/panel-toplevel.c
diff options
context:
space:
mode:
authorrbuj <[email protected]>2021-10-24 21:41:34 +0200
committerLuke from DC <[email protected]>2021-12-19 11:15:02 +0000
commit293948ad80f2f9dddf4af282e2b83b99b2e56014 (patch)
tree5a1dbf47834505e8681ac8c85e8255c1d48b10df /mate-panel/panel-toplevel.c
parent6fbabd51619c92bcd8584e1bb2f12f2b52904ea6 (diff)
downloadmate-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.c38
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