summaryrefslogtreecommitdiffstats
path: root/src/ck-session.c
diff options
context:
space:
mode:
authorWilliam Jon McCann <mccann@jhu.edu>2007-03-05 12:12:59 -0500
committerWilliam Jon McCann <mccann@jhu.edu>2007-03-05 12:12:59 -0500
commit4b245b3113480d495440e1b7d32eb4dc6d564c8c (patch)
tree7758e3659e5cfa2da5679555358f619f33ce8e2b /src/ck-session.c
parent67fa39aacf65117a85533035a71ee09b184003dc (diff)
add x11-display-device attribute
In certain cases it is necessary to distinguish the display-device (tty of session leader) from the x11-display-device (tty of xorg process).
Diffstat (limited to 'src/ck-session.c')
-rw-r--r--src/ck-session.c60
1 files changed, 51 insertions, 9 deletions
diff --git a/src/ck-session.c b/src/ck-session.c
index 44eaa2f..9d53072 100644
--- a/src/ck-session.c
+++ b/src/ck-session.c
@@ -51,7 +51,8 @@ struct CkSessionPrivate
char *session_type;
char *display_device;
- char *xdisplay;
+ char *x11_display_device;
+ char *x11_display;
char *host_name;
guint uid;
@@ -82,6 +83,7 @@ enum {
PROP_COOKIE,
PROP_USER,
PROP_X11_DISPLAY,
+ PROP_X11_DISPLAY_DEVICE,
PROP_DISPLAY_DEVICE,
PROP_SESSION_TYPE,
PROP_HOST_NAME,
@@ -449,13 +451,13 @@ ck_session_get_user (CkSession *session,
gboolean
ck_session_get_x11_display (CkSession *session,
- char **xdisplay,
+ char **x11_display,
GError **error)
{
g_return_val_if_fail (CK_IS_SESSION (session), FALSE);
- if (xdisplay != NULL) {
- *xdisplay = g_strdup (session->priv->xdisplay);
+ if (x11_display != NULL) {
+ *x11_display = g_strdup (session->priv->x11_display);
}
return TRUE;
@@ -476,6 +478,20 @@ ck_session_get_display_device (CkSession *session,
}
gboolean
+ck_session_get_x11_display_device (CkSession *session,
+ char **x11_display_device,
+ GError **error)
+{
+ g_return_val_if_fail (CK_IS_SESSION (session), FALSE);
+
+ if (x11_display_device != NULL) {
+ *x11_display_device = g_strdup (session->priv->x11_display_device);
+ }
+
+ return TRUE;
+}
+
+gboolean
ck_session_get_host_name (CkSession *session,
char **host_name,
GError **error)
@@ -598,13 +614,13 @@ ck_session_set_user (CkSession *session,
gboolean
ck_session_set_x11_display (CkSession *session,
- const char *xdisplay,
+ const char *x11_display,
GError **error)
{
g_return_val_if_fail (CK_IS_SESSION (session), FALSE);
- g_free (session->priv->xdisplay);
- session->priv->xdisplay = g_strdup (xdisplay);
+ g_free (session->priv->x11_display);
+ session->priv->x11_display = g_strdup (x11_display);
return TRUE;
}
@@ -623,6 +639,19 @@ ck_session_set_display_device (CkSession *session,
}
gboolean
+ck_session_set_x11_display_device (CkSession *session,
+ const char *x11_display_device,
+ GError **error)
+{
+ g_return_val_if_fail (CK_IS_SESSION (session), FALSE);
+
+ g_free (session->priv->x11_display_device);
+ session->priv->x11_display_device = g_strdup (x11_display_device);
+
+ return TRUE;
+}
+
+gboolean
ck_session_set_host_name (CkSession *session,
const char *host_name,
GError **error)
@@ -677,6 +706,9 @@ ck_session_set_property (GObject *object,
case PROP_X11_DISPLAY:
ck_session_set_x11_display (self, g_value_get_string (value), NULL);
break;
+ case PROP_X11_DISPLAY_DEVICE:
+ ck_session_set_x11_display_device (self, g_value_get_string (value), NULL);
+ break;
case PROP_DISPLAY_DEVICE:
ck_session_set_display_device (self, g_value_get_string (value), NULL);
break;
@@ -722,7 +754,10 @@ ck_session_get_property (GObject *object,
g_value_set_string (value, self->priv->session_type);
break;
case PROP_X11_DISPLAY:
- g_value_set_string (value, self->priv->xdisplay);
+ g_value_set_string (value, self->priv->x11_display);
+ break;
+ case PROP_X11_DISPLAY_DEVICE:
+ g_value_set_string (value, self->priv->x11_display_device);
break;
case PROP_DISPLAY_DEVICE:
g_value_set_string (value, self->priv->display_device);
@@ -846,6 +881,13 @@ ck_session_class_init (CkSessionClass *klass)
NULL,
G_PARAM_READWRITE));
g_object_class_install_property (object_class,
+ PROP_X11_DISPLAY_DEVICE,
+ g_param_spec_string ("x11-display-device",
+ "x11-display-device",
+ "X11 Display device",
+ NULL,
+ G_PARAM_READWRITE));
+ g_object_class_install_property (object_class,
PROP_DISPLAY_DEVICE,
g_param_spec_string ("display-device",
"display-device",
@@ -907,7 +949,7 @@ ck_session_finalize (GObject *object)
g_free (session->priv->cookie);
g_free (session->priv->seat_id);
g_free (session->priv->session_type);
- g_free (session->priv->xdisplay);
+ g_free (session->priv->x11_display);
g_free (session->priv->host_name);
G_OBJECT_CLASS (ck_session_parent_class)->finalize (object);