summaryrefslogtreecommitdiff
path: root/daemon/gdm-display.c
diff options
context:
space:
mode:
Diffstat (limited to 'daemon/gdm-display.c')
-rw-r--r--daemon/gdm-display.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/daemon/gdm-display.c b/daemon/gdm-display.c
index ff0f2a70..24be2455 100644
--- a/daemon/gdm-display.c
+++ b/daemon/gdm-display.c
@@ -70,6 +70,7 @@ struct GdmDisplayPrivate
gboolean is_local;
gboolean is_dynamic;
gboolean use_auth;
+ gboolean block_console_session_requests;
guint finish_idle_id;
GdmSlaveProxy *slave_proxy;
@@ -93,6 +94,7 @@ enum {
PROP_IS_DYNAMIC,
PROP_USE_AUTH,
PROP_SLAVE_COMMAND,
+ PROP_BLOCK_CONSOLE_SESSION_REQUESTS,
};
static void gdm_display_class_init (GdmDisplayClass *klass);
@@ -939,6 +941,13 @@ _gdm_display_set_slave_command (GdmDisplay *display,
}
static void
+_gdm_display_set_block_console_session_requests (GdmDisplay *display,
+ gboolean block_console_session_requests)
+{
+ display->priv->block_console_session_requests = block_console_session_requests;
+}
+
+static void
gdm_display_set_property (GObject *object,
guint prop_id,
const GValue *value,
@@ -988,6 +997,9 @@ gdm_display_set_property (GObject *object,
case PROP_SLAVE_COMMAND:
_gdm_display_set_slave_command (self, g_value_get_string (value));
break;
+ case PROP_BLOCK_CONSOLE_SESSION_REQUESTS:
+ _gdm_display_set_block_console_session_requests (self, g_value_get_boolean (value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1048,6 +1060,9 @@ gdm_display_get_property (GObject *object,
case PROP_SLAVE_COMMAND:
g_value_set_string (value, self->priv->slave_command);
break;
+ case PROP_BLOCK_CONSOLE_SESSION_REQUESTS:
+ g_value_set_boolean (value, self->priv->block_console_session_requests);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1250,6 +1265,13 @@ gdm_display_class_init (GdmDisplayClass *klass)
DEFAULT_SLAVE_COMMAND,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
g_object_class_install_property (object_class,
+ PROP_BLOCK_CONSOLE_SESSION_REQUESTS,
+ g_param_spec_boolean ("block-console-session-requests",
+ "Block Console Session Requests",
+ "Block session requests from ConsoleKit",
+ FALSE,
+ G_PARAM_READWRITE));
+ g_object_class_install_property (object_class,
PROP_STATUS,
g_param_spec_int ("status",
"status",
@@ -1310,3 +1332,25 @@ gdm_display_finalize (GObject *object)
G_OBJECT_CLASS (gdm_display_parent_class)->finalize (object);
}
+
+gboolean
+gdm_display_block_console_session_requests (GdmDisplay *display,
+ GError **error)
+{
+ if (!display->priv->block_console_session_requests) {
+ _gdm_display_set_block_console_session_requests (display, TRUE);
+ g_object_notify (G_OBJECT (display), "block-console-session-requests");
+ }
+ return TRUE;
+}
+
+gboolean
+gdm_display_unblock_console_session_requests (GdmDisplay *display,
+ GError **error)
+{
+ if (display->priv->block_console_session_requests) {
+ _gdm_display_set_block_console_session_requests (display, FALSE);
+ g_object_notify (G_OBJECT (display), "block-console-session-requests");
+ }
+ return TRUE;
+}