diff -Nru unity-settings-daemon-15.04.1+15.10.20151012/debian/changelog unity-settings-daemon-15.04.1+15.10.20151021/debian/changelog --- unity-settings-daemon-15.04.1+15.10.20151012/debian/changelog 2015-10-21 11:10:15.000000000 +0000 +++ unity-settings-daemon-15.04.1+15.10.20151021/debian/changelog 2015-10-21 11:10:15.000000000 +0000 @@ -1,3 +1,10 @@ +unity-settings-daemon (15.04.1+15.10.20151021-0ubuntu1) wily; urgency=medium + + [ Lars Uebernickel ] + * power: disconnect from device's "notify" signals (LP: #1436861) + + -- Sebastien Bacher Wed, 21 Oct 2015 11:05:04 +0000 + unity-settings-daemon (15.04.1+15.10.20151012-0ubuntu1) wily; urgency=medium [ "Jan Alexander Steffens (heftig)" ] diff -Nru unity-settings-daemon-15.04.1+15.10.20151012/plugins/power/gsd-power-manager.c unity-settings-daemon-15.04.1+15.10.20151021/plugins/power/gsd-power-manager.c --- unity-settings-daemon-15.04.1+15.10.20151012/plugins/power/gsd-power-manager.c 2015-10-12 14:39:26.000000000 +0000 +++ unity-settings-daemon-15.04.1+15.10.20151021/plugins/power/gsd-power-manager.c 2015-10-21 11:05:00.000000000 +0000 @@ -3430,6 +3430,9 @@ void gsd_power_manager_stop (GsdPowerManager *manager) { + GPtrArray *devices; + int i; + g_debug ("Stopping power manager"); if (manager->priv->inhibit_lid_switch_timer_id != 0) { @@ -3481,8 +3484,12 @@ g_clear_object (&manager->priv->logind_proxy); g_clear_object (&manager->priv->rr_screen); - g_ptr_array_unref (manager->priv->devices_array); + devices = manager->priv->devices_array; + for (i = 0; i < devices->len; i++) + g_signal_handlers_disconnect_by_data (g_ptr_array_index (devices, i), manager); + g_ptr_array_unref (devices); manager->priv->devices_array = NULL; + g_clear_object (&manager->priv->device_composite); g_clear_object (&manager->priv->previous_icon);