summaryrefslogtreecommitdiff
path: root/mate-panel/panel-toplevel.c
diff options
context:
space:
mode:
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