static void gsd_smartcard_manager_finalize (GObject *object) { GsdSmartcardManager *self; GsdSmartcardManagerPrivate *priv; g_return_if_fail (object != NULL); g_return_if_fail (GSD_IS_SMARTCARD_MANAGER (object)); self = GSD_SMARTCARD_MANAGER (object); priv = self->priv; g_return_if_fail (self->priv != NULL); if (priv->start_idle_id != 0) g_source_remove (priv->start_idle_id); gsd_smartcard_manager_stop (self); G_OBJECT_CLASS (gsd_smartcard_manager_parent_class)->finalize (object); }
static void impl_deactivate (GnomeSettingsPlugin *plugin) { GsdSmartcardPlugin *smartcard_plugin = GSD_SMARTCARD_PLUGIN (plugin); if (!smartcard_plugin->priv->is_active) { g_debug ("GsdSmartcardPlugin Not deactivating smartcard plugin, " "because it's already inactive"); return; } g_debug ("GsdSmartcardPlugin Deactivating smartcard plugin"); gsd_smartcard_manager_stop (smartcard_plugin->priv->manager); g_signal_handlers_disconnect_by_func (smartcard_plugin->priv->manager, smartcard_removed_cb, smartcard_plugin); g_signal_handlers_disconnect_by_func (smartcard_plugin->priv->manager, smartcard_inserted_cb, smartcard_plugin); smartcard_plugin->priv->bus_connection = NULL; smartcard_plugin->priv->is_active = FALSE; }