[gdm] session: route GdmSession "self" object into some functions
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gdm] session: route GdmSession "self" object into some functions
- Date: Sat, 7 Nov 2015 03:21:38 +0000 (UTC)
commit eda44dee2cc321db93550b68724aa60d02f4ee78
Author: Ray Strode <rstrode redhat com>
Date: Wed Jun 17 11:01:53 2015 -0400
session: route GdmSession "self" object into some functions
We're going to need to look at session state in the future.
This commit preps the way forward, for that by, making sure
the state object is available.
https://bugzilla.gnome.org/show_bug.cgi?id=757715
daemon/gdm-session.c | 40 ++++++++++++++++++++++------------------
1 files changed, 22 insertions(+), 18 deletions(-)
---
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
index b3ff8ab..b2f15b2 100644
--- a/daemon/gdm-session.c
+++ b/daemon/gdm-session.c
@@ -329,7 +329,7 @@ on_establish_credentials_cb (GdmDBusWorker *proxy,
}
static const char **
-get_system_session_dirs (void)
+get_system_session_dirs (GdmSession *self)
{
static const char *search_dirs[] = {
"/etc/X11/sessions/",
@@ -358,7 +358,9 @@ is_prog_in_path (const char *prog)
}
static GKeyFile *
-load_key_file_for_file (const char *file, char **full_path)
+load_key_file_for_file (GdmSession *self,
+ const char *file,
+ char **full_path)
{
GKeyFile *key_file;
GError *error;
@@ -369,7 +371,7 @@ load_key_file_for_file (const char *file, char **full_path)
error = NULL;
res = g_key_file_load_from_dirs (key_file,
file,
- get_system_session_dirs (),
+ get_system_session_dirs (self),
full_path,
G_KEY_FILE_NONE,
&error);
@@ -384,8 +386,9 @@ load_key_file_for_file (const char *file, char **full_path)
}
static gboolean
-get_session_command_for_file (const char *file,
- char **command)
+get_session_command_for_file (GdmSession *self,
+ const char *file,
+ char **command)
{
GKeyFile *key_file;
GError *error;
@@ -400,7 +403,7 @@ get_session_command_for_file (const char *file,
}
g_debug ("GdmSession: getting session command for file '%s'", file);
- key_file = load_key_file_for_file (file, NULL);
+ key_file = load_key_file_for_file (self, file, NULL);
if (key_file == NULL) {
goto out;
}
@@ -456,14 +459,15 @@ out:
}
static gboolean
-get_session_command_for_name (const char *name,
- char **command)
+get_session_command_for_name (GdmSession *self,
+ const char *name,
+ char **command)
{
gboolean res;
char *filename;
filename = g_strdup_printf ("%s.desktop", name);
- res = get_session_command_for_file (filename, command);
+ res = get_session_command_for_file (self, filename, command);
g_free (filename);
return res;
@@ -499,13 +503,13 @@ get_fallback_session_name (GdmSession *self)
if (self->priv->fallback_session_name != NULL) {
/* verify that the cached version still exists */
- if (get_session_command_for_name (self->priv->fallback_session_name, NULL)) {
+ if (get_session_command_for_name (self, self->priv->fallback_session_name, NULL)) {
goto out;
}
}
name = g_strdup ("gnome");
- if (get_session_command_for_name (name, NULL)) {
+ if (get_session_command_for_name (self, name, NULL)) {
g_free (self->priv->fallback_session_name);
self->priv->fallback_session_name = name;
goto out;
@@ -514,7 +518,7 @@ get_fallback_session_name (GdmSession *self)
sessions = g_sequence_new (g_free);
- search_dirs = get_system_session_dirs ();
+ search_dirs = get_system_session_dirs (self);
for (i = 0; search_dirs[i] != NULL; i++) {
GDir *dir;
const char *base_name;
@@ -536,7 +540,7 @@ get_fallback_session_name (GdmSession *self)
continue;
}
- if (get_session_command_for_file (base_name, NULL)) {
+ if (get_session_command_for_file (self, base_name, NULL)) {
g_sequence_insert_sorted (sessions, g_strdup (base_name), (GCompareDataFunc)
g_strcmp0, NULL);
}
@@ -889,7 +893,7 @@ worker_on_saved_session_name_read (GdmDBusWorker *worker,
{
GdmSession *self = conversation->session;
- if (! get_session_command_for_name (session_name, NULL)) {
+ if (! get_session_command_for_name (self, session_name, NULL)) {
/* ignore sessions that don't exist */
g_debug ("GdmSession: not using invalid .dmrc session: %s", session_name);
g_free (self->priv->saved_session);
@@ -2360,7 +2364,7 @@ get_session_command (GdmSession *self)
session_name = get_session_name (self);
command = NULL;
- res = get_session_command_for_name (session_name, &command);
+ res = get_session_command_for_name (self, session_name, &command);
if (! res) {
g_critical ("Cannot find a command for specified session: %s", session_name);
exit (1);
@@ -2378,7 +2382,7 @@ get_session_desktop_names (GdmSession *self)
filename = g_strdup_printf ("%s.desktop", get_session_name (self));
g_debug ("GdmSession: getting desktop names for file '%s'", filename);
- keyfile = load_key_file_for_file (filename, NULL);
+ keyfile = load_key_file_for_file (self, filename, NULL);
if (keyfile != NULL) {
gchar **names;
@@ -2943,7 +2947,7 @@ gdm_session_is_wayland_session (GdmSession *self)
filename = get_session_filename (self);
- key_file = load_key_file_for_file (filename, &full_path);
+ key_file = load_key_file_for_file (self, filename, &full_path);
if (key_file == NULL) {
goto out;
@@ -2997,7 +3001,7 @@ gdm_session_bypasses_xsession (GdmSession *self)
filename = get_session_filename (self);
- key_file = load_key_file_for_file (filename, NULL);
+ key_file = load_key_file_for_file (self, filename, NULL);
error = NULL;
res = g_key_file_has_key (key_file, G_KEY_FILE_DESKTOP_GROUP, "X-GDM-BypassXsession", NULL);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]