/*
* Copyright (C) 2010-2011 Robert Ancell.
* Author: Robert Ancell <robert.ancell@canonical.com>
- *
+ *
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
#include "configuration.h"
struct XServerPrivate
-{
+{
/* Host running the server */
gchar *hostname;
- /* Display number */
- guint number;
-
/* Cached server address */
gchar *address;
return server->priv->hostname;
}
-void
-x_server_set_display_number (XServer *server, guint number)
-{
- g_return_if_fail (server != NULL);
- server->priv->number = number;
- g_free (server->priv->address);
- server->priv->address = NULL;
-}
-
guint
x_server_get_display_number (XServer *server)
{
g_return_val_if_fail (server != NULL, 0);
- return server->priv->number;
+ return X_SERVER_GET_CLASS (server)->get_display_number (server);
}
const gchar *
if (!server->priv->address)
{
if (server->priv->hostname)
- server->priv->address = g_strdup_printf("%s:%d", server->priv->hostname, server->priv->number);
+ server->priv->address = g_strdup_printf("%s:%d", server->priv->hostname, x_server_get_display_number (server));
else
- server->priv->address = g_strdup_printf(":%d", server->priv->number);
- }
+ server->priv->address = g_strdup_printf(":%d", x_server_get_display_number (server));
+ }
return server->priv->address;
}
{
g_return_if_fail (server != NULL);
- if (server->priv->authority)
- g_object_unref (server->priv->authority);
+ g_clear_object (&server->priv->authority);
if (authority)
server->priv->authority = g_object_ref (authority);
- else
- server->priv->authority = NULL;
}
XAuthority *
auth = &a;
}
- /* Open connection */
+ /* Open connection */
l_debug (server, "Connecting to XServer %s", x_server_get_address (server));
server->priv->connection = xcb_connect_to_display_with_auth_info (x_server_get_address (server), auth, NULL);
if (xcb_connection_has_error (server->priv->connection))
static void
x_server_finalize (GObject *object)
{
- XServer *self;
-
- self = X_SERVER (object);
+ XServer *self = X_SERVER (object);
g_free (self->priv->hostname);
g_free (self->priv->address);
- if (self->priv->authority)
- g_object_unref (self->priv->authority);
+ g_clear_object (&self->priv->authority);
if (self->priv->connection)
xcb_disconnect (self->priv->connection);
GObjectClass *object_class = G_OBJECT_CLASS (klass);
DisplayServerClass *display_server_class = DISPLAY_SERVER_CLASS (klass);
- display_server_class->get_session_type = x_server_get_session_type;
+ display_server_class->get_session_type = x_server_get_session_type;
display_server_class->get_can_share = x_server_get_can_share;
display_server_class->start = x_server_start;
display_server_class->connect_session = x_server_connect_session;