[gdm/wip/wayland-for-merge: 21/21] session: Reset immediately on cancel
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gdm/wip/wayland-for-merge: 21/21] session: Reset immediately on cancel
- Date: Fri, 14 Mar 2014 15:31:17 +0000 (UTC)
commit 70485a97650c6be7f3a093aae8f20021057328b7
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Fri Mar 7 15:41:17 2014 -0500
session: Reset immediately on cancel
For some reason, before now, we round-tripped through the
GdmManager object when resetting the session instead of doing it
directly. The only time we can cancel is when the client calls
Cancel();, so just handle that directly.
daemon/gdm-manager.c | 59 --------------------------------------------------
daemon/gdm-session.c | 22 +-----------------
daemon/gdm-session.h | 3 +-
3 files changed, 2 insertions(+), 82 deletions(-)
---
diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
index 07dc6ed..2f3a768 100644
--- a/daemon/gdm-manager.c
+++ b/daemon/gdm-manager.c
@@ -1232,61 +1232,6 @@ on_session_client_disconnected (GdmSession *session,
}
}
-typedef struct
-{
- GdmManager *manager;
- GdmSession *session;
- guint idle_id;
-} ResetSessionOperation;
-
-static void
-destroy_reset_session_operation (ResetSessionOperation *operation)
-{
- g_object_set_data (G_OBJECT (operation->session),
- "reset-session-operation",
- NULL);
- g_object_unref (operation->session);
- g_slice_free (ResetSessionOperation, operation);
-}
-
-static gboolean
-on_reset_session (ResetSessionOperation *operation)
-{
- gdm_session_reset (operation->session);
-
- destroy_reset_session_operation (operation);
-
- return G_SOURCE_REMOVE;
-}
-
-static void
-queue_session_reset (GdmManager *manager,
- GdmSession *session)
-{
- ResetSessionOperation *operation;
-
- operation = g_object_get_data (G_OBJECT (session), "reset-session-operation");
-
- if (operation != NULL) {
- return;
- }
-
- operation = g_slice_new0 (ResetSessionOperation);
- operation->manager = manager;
- operation->session = g_object_ref (session);
- operation->idle_id = g_idle_add ((GSourceFunc) on_reset_session, operation);
-
- g_object_set_data (G_OBJECT (session), "reset-session-operation", operation);
-}
-
-static void
-on_session_cancelled (GdmSession *session,
- GdmManager *manager)
-{
- g_debug ("GdmManager: Session was cancelled");
- queue_session_reset (manager, session);
-}
-
static void
on_session_conversation_started (GdmSession *session,
const char *service_name,
@@ -1457,10 +1402,6 @@ create_seed_session_for_display (GdmManager *manager,
G_CALLBACK (on_session_client_disconnected),
manager);
g_signal_connect (session,
- "cancelled",
- G_CALLBACK (on_session_cancelled),
- manager);
- g_signal_connect (session,
"conversation-started",
G_CALLBACK (on_session_conversation_started),
manager);
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
index b7e712d..8f62056 100644
--- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c
@@ -141,7 +141,6 @@ enum {
CONVERSATION_STARTED = 0,
CONVERSATION_STOPPED,
SETUP_COMPLETE,
- CANCELLED,
HOSTNAME_SELECTED,
CLIENT_CONNECTED,
CLIENT_DISCONNECTED,
@@ -1234,7 +1233,7 @@ gdm_session_handle_client_cancel (GdmDBusUserVerifier *user_verifier_interfac
{
gdm_dbus_user_verifier_complete_cancel (user_verifier_interface,
invocation);
- gdm_session_cancel (self);
+ gdm_session_reset (self);
return TRUE;
}
@@ -2539,14 +2538,6 @@ gdm_session_answer_query (GdmSession *self,
}
void
-gdm_session_cancel (GdmSession *self)
-{
- g_return_if_fail (GDM_IS_SESSION (self));
-
- g_signal_emit (G_OBJECT (self), signals [CANCELLED], 0);
-}
-
-void
gdm_session_reset (GdmSession *self)
{
if (self->priv->user_verifier_interface != NULL) {
@@ -3193,17 +3184,6 @@ gdm_session_class_init (GdmSessionClass *session_class)
G_TYPE_NONE,
1,
G_TYPE_STRING);
- signals [CANCELLED] =
- g_signal_new ("cancelled",
- GDM_TYPE_SESSION,
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GdmSessionClass, cancelled),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
-
signals [CLIENT_CONNECTED] =
g_signal_new ("client-connected",
GDM_TYPE_SESSION,
diff --git a/daemon/gdm-session.h b/daemon/gdm-session.h
index 1d264f4..9bc4e7c 100644
--- a/daemon/gdm-session.h
+++ b/daemon/gdm-session.h
@@ -57,7 +57,6 @@ typedef struct
const char *service_name,
gboolean client_is_ready);
- void (* cancelled) (GdmSession *session);
void (* client_connected) (GdmSession *session);
void (* client_disconnected) (GdmSession *session);
void (* disconnected) (GdmSession *session);
@@ -132,7 +131,6 @@ void gdm_session_set_environment_variable (GdmSession *session,
void gdm_session_send_environment (GdmSession *self,
const char *service_name);
void gdm_session_reset (GdmSession *session);
-void gdm_session_cancel (GdmSession *session);
void gdm_session_authenticate (GdmSession *session,
const char *service_name);
void gdm_session_authorize (GdmSession *session,
@@ -156,6 +154,7 @@ void gdm_session_select_session (GdmSession *session,
const char *session_name);
void gdm_session_select_user (GdmSession *session,
const char *username);
+void gdm_session_reset (GdmSession *session);
void gdm_session_request_timed_login (GdmSession *session,
const char *username,
int delay);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]