Blob Blame History Raw
--- a/src/gs-window-x11.c
+++ b/src/gs-window-x11.c
@@ -631,6 +631,14 @@
 #endif
 }
 
+static gboolean
+on_screensaver_plug_removed (GtkSocket *socket, GSWindow *window)
+{
+    gtk_widget_hide (GTK_WIDGET (socket));
+    window->priv->screensaver = NULL;
+    return FALSE;
+}
+
 static void
 create_screensaver_socket (GSWindow *window,
                            guint32   id)
@@ -639,6 +647,10 @@
 
   gtk_stack_add_named (GTK_STACK (window->priv->stack), window->priv->screensaver, "screensaver");
   gtk_widget_show (window->priv->screensaver);
+
+  g_signal_connect (window->priv->screensaver, "plug-removed",
+                    G_CALLBACK (on_screensaver_plug_removed), window);
+
   gtk_socket_add_id (GTK_SOCKET (window->priv->screensaver), id);
   gs_window_show_screensaver (window);
 }
@@ -895,6 +907,8 @@
         g_return_if_fail (GS_IS_WINDOW (window));
 
         gs_window_cancel_unlock_request (window);
+
+        screensaver_command_finish (window);
 
         gtk_widget_destroy (GTK_WIDGET (window));
 }
@@ -2577,7 +2591,6 @@
 
         remove_command_watches (window);
 
-        screensaver_command_finish (window);
         gs_window_dialog_finish (window);
 
         if (window->priv->background_surface) {
--- a/src/gs-lock-plug.c
+++ b/src/gs-lock-plug.c
@@ -1561,8 +1561,7 @@
 
         hbox_user = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
         gtk_box_pack_start (GTK_BOX (plug->priv->vbox), hbox_user, FALSE, FALSE, 0);
-        gtk_misc_set_alignment (GTK_MISC (hbox_user), 0.5, 0.5);
-                       
+
         plug->priv->auth_face_image = gtk_image_new ();
         gtk_box_pack_start (GTK_BOX (hbox_user), plug->priv->auth_face_image, TRUE, TRUE, 0);
         gtk_misc_set_alignment (GTK_MISC (plug->priv->auth_face_image), 1, 0.5);