summaryrefslogtreecommitdiff
path: root/applets
diff options
context:
space:
mode:
authorlukefromdc <[email protected]>2017-08-20 17:35:56 -0400
committerlukefromdc <[email protected]>2017-08-22 02:18:09 -0400
commit4fbe8e24933d367316441166ca448cdb03c6a35f (patch)
tree579da4f92038b5754754b1c275ccb665ad3c670d /applets
parent57d3c8f702887516504c54c398d40e7343e93138 (diff)
downloadmate-panel-4fbe8e24933d367316441166ca448cdb03c6a35f.tar.bz2
mate-panel-4fbe8e24933d367316441166ca448cdb03c6a35f.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 'applets')
-rw-r--r--applets/fish/fish.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/applets/fish/fish.c b/applets/fish/fish.c
index 95b22833..56def60c 100644
--- a/applets/fish/fish.c
+++ b/applets/fish/fish.c
@@ -995,9 +995,6 @@ static void display_fortune_dialog(FishApplet* fish)
static void name_changed_notify(GSettings* settings, gchar* key, FishApplet* fish)
{
- if (fish->source_id == 0)
- return;
-
char *value;
value = g_settings_get_string (settings, key);
@@ -1023,9 +1020,6 @@ static void name_changed_notify(GSettings* settings, gchar* key, FishApplet* fis
static void image_changed_notify(GSettings* settings, gchar* key, FishApplet* fish)
{
- if (fish->source_id == 0)
- return;
-
char *value;
value = g_settings_get_string (settings, key);
@@ -1778,6 +1772,10 @@ static void fish_applet_dispose (GObject *object)
{
FishApplet* fish = (FishApplet*) object;
+ if (fish->settings != NULL)
+ g_signal_handlers_disconnect_by_data (fish->settings,
+ fish);
+
if (fish->timeout)
{
g_source_remove (fish->timeout);