diff --git a/src/phosh.c b/src/phosh.c index 75b4724975e80c4f74abd49b7e4a91d3a23d9416..39b2d480fb736aa9309e566f0988decbd63c6172 100644 --- a/src/phosh.c +++ b/src/phosh.c @@ -162,10 +162,13 @@ lockscreen_unlock_cb (PhoshShell *self, PhoshLockscreen *window) { PhoshShellPrivate *priv = phosh_shell_get_instance_private (self); - g_return_if_fail (window); + g_return_if_fail (PHOSH_IS_LOCKSCREEN (window)); + g_return_if_fail (window == PHOSH_LOCKSCREEN (priv->lockscreen->window)); g_signal_handler_disconnect (window, priv->unlock_handler_id); - gtk_widget_destroy (GTK_WIDGET (window)); + priv->unlock_handler_id = 0; + gtk_widget_destroy (GTK_WIDGET (priv->lockscreen->window)); + priv->lockscreen->window = NULL; zwlr_layer_surface_v1_destroy(priv->lockscreen->layer_surface); g_free (priv->lockscreen); priv->lockscreen = NULL;