summaryrefslogtreecommitdiff
path: root/mate-panel
diff options
context:
space:
mode:
authorlukefromdc <[email protected]>2017-08-20 17:35:56 -0400
committerraveit65 <[email protected]>2017-11-07 21:33:53 +0100
commit418679a91ff711170754ce4d6ed9105e3ae6449b (patch)
tree91ae81ad532efdcc553678e3674c3001bddf9f15 /mate-panel
parentb6b89c1e796801d2cbb694a0e4963e4248ac79df (diff)
downloadmate-panel-418679a91ff711170754ce4d6ed9105e3ae6449b.tar.bz2
mate-panel-418679a91ff711170754ce4d6ed9105e3ae6449b.tar.xz
Fix crashes on moving/removing applets with glib 2.53.4 or later
*On destroying applet disconnect signals for functions that otherwise segfaults with glib 2.53.4 or later. *Fish: it's not always enough for a function to return immediately if applet destroyed anymore *panel-action-button: suppress a warning
Diffstat (limited to 'mate-panel')
-rw-r--r--mate-panel/applet.c2
-rw-r--r--mate-panel/panel-action-button.c3
2 files changed, 5 insertions, 0 deletions
diff --git a/mate-panel/applet.c b/mate-panel/applet.c
index 9ed853fd..a76ed9c9 100644
--- a/mate-panel/applet.c
+++ b/mate-panel/applet.c
@@ -791,6 +791,8 @@ mate_panel_applet_destroy (GtkWidget *widget,
{
g_return_if_fail (info != NULL);
+ g_signal_handlers_disconnect_by_data(info->settings,widget);
+
info->widget = NULL;
if (info->settings) {
diff --git a/mate-panel/panel-action-button.c b/mate-panel/panel-action-button.c
index dc911980..abfe8c22 100644
--- a/mate-panel/panel-action-button.c
+++ b/mate-panel/panel-action-button.c
@@ -647,6 +647,9 @@ void
panel_action_button_set_type (PanelActionButton *button,
PanelActionButtonType type)
{
+ if (!type)
+ return;
+
g_return_if_fail (type > PANEL_ACTION_NONE && type < PANEL_ACTION_LAST);
if (type == button->priv->type)