gnome-session r4733 - in trunk: . gnome-session
- From: lucasr svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-session r4733 - in trunk: . gnome-session
- Date: Thu, 12 Jun 2008 23:51:47 +0000 (UTC)
Author: lucasr
Date: Thu Jun 12 23:51:46 2008
New Revision: 4733
URL: http://svn.gnome.org/viewvc/gnome-session?rev=4733&view=rev
Log:
2008-06-13 Lucas Rocha <lucasr gnome org>
Avoid spamming the console with error messages when GDM is not
available. Check availability of GDM to know if we can add "Switch
User" button to logout dialog. #526199, Andrew Nelless. Patch by
Andrew Nelless.
* gnome-session/gdm.[ch] (gdm_is_available,
gdm_init_protocol_connection): check existence of socket file before
trying to connect in order to avoid spamming console with error
messages when GDM is not available.
* gnome-session/logout-dialog.c (gsm_get_logout_dialog): check is GDM
is available before adding "Switch User" button to logout dialog.
Modified:
trunk/ChangeLog
trunk/gnome-session/gdm.c
trunk/gnome-session/gdm.h
trunk/gnome-session/logout-dialog.c
Modified: trunk/gnome-session/gdm.c
==============================================================================
--- trunk/gnome-session/gdm.c (original)
+++ trunk/gnome-session/gdm.c Thu Jun 12 23:51:46 2008
@@ -250,6 +250,13 @@
g_assert (data->fd <= 0);
+ if (g_file_test (GDM_PROTOCOL_SOCKET_PATH, G_FILE_TEST_EXISTS))
+ strcpy (addr.sun_path, GDM_PROTOCOL_SOCKET_PATH);
+ else if (g_file_test ("/tmp/.gdm_socket", G_FILE_TEST_EXISTS))
+ strcpy (addr.sun_path, "/tmp/.gdm_socket");
+ else
+ return FALSE;
+
data->fd = socket (AF_UNIX, SOCK_STREAM, 0);
if (data->fd < 0)
@@ -262,11 +269,6 @@
return FALSE;
}
- if (g_file_test (GDM_PROTOCOL_SOCKET_PATH, G_FILE_TEST_EXISTS))
- strcpy (addr.sun_path, GDM_PROTOCOL_SOCKET_PATH);
- else
- strcpy (addr.sun_path, "/tmp/.gdm_socket");
-
addr.sun_family = AF_UNIX;
if (connect (data->fd, (struct sockaddr *) &addr, sizeof (addr)) < 0)
@@ -380,6 +382,17 @@
}
gboolean
+gdm_is_available (void)
+{
+ if (!gdm_init_protocol_connection (&gdm_protocol_data))
+ return FALSE;
+
+ gdm_shutdown_protocol_connection (&gdm_protocol_data);
+
+ return TRUE;
+}
+
+gboolean
gdm_supports_logout_action (GdmLogoutAction action)
{
gdm_update_logout_actions (&gdm_protocol_data);
Modified: trunk/gnome-session/gdm.h
==============================================================================
--- trunk/gnome-session/gdm.h (original)
+++ trunk/gnome-session/gdm.h Thu Jun 12 23:51:46 2008
@@ -39,6 +39,8 @@
GDM_LOGOUT_ACTION_SUSPEND = 1 << 2
} GdmLogoutAction;
+gboolean gdm_is_available (void);
+
void gdm_new_login (void);
void gdm_set_logout_action (GdmLogoutAction action);
Modified: trunk/gnome-session/logout-dialog.c
==============================================================================
--- trunk/gnome-session/logout-dialog.c (original)
+++ trunk/gnome-session/logout-dialog.c Thu Jun 12 23:51:46 2008
@@ -357,11 +357,11 @@
primary_text = N_("Log out of this system now?");
logout_dialog->priv->default_response = GSM_LOGOUT_RESPONSE_LOGOUT;
-
- //FIXME is gdm running?
- gtk_dialog_add_button (GTK_DIALOG (logout_dialog),
- _("_Switch User"),
- GSM_LOGOUT_RESPONSE_SWITCH_USER);
+
+ if (gdm_is_available ())
+ gtk_dialog_add_button (GTK_DIALOG (logout_dialog),
+ _("_Switch User"),
+ GSM_LOGOUT_RESPONSE_SWITCH_USER);
gtk_dialog_add_button (GTK_DIALOG (logout_dialog),
GTK_STOCK_CANCEL,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]