From 0b0e6bc987da4fd88a7854ebb12bde705e92c428 Mon Sep 17 00:00:00 2001 From: Perberos Date: Thu, 1 Dec 2011 21:51:44 -0300 Subject: moving from https://github.com/perberos/mate-desktop-environment --- capplets/common/activate-settings-daemon.c | 60 ++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 capplets/common/activate-settings-daemon.c (limited to 'capplets/common/activate-settings-daemon.c') diff --git a/capplets/common/activate-settings-daemon.c b/capplets/common/activate-settings-daemon.c new file mode 100644 index 00000000..794f1098 --- /dev/null +++ b/capplets/common/activate-settings-daemon.c @@ -0,0 +1,60 @@ +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include + +#include "activate-settings-daemon.h" + +static void popup_error_message (void) +{ + GtkWidget *dialog; + + dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, + GTK_BUTTONS_OK, _("Unable to start the settings manager 'mate-settings-daemon'.\n" + "Without the MATE settings manager running, some preferences may not take effect. This could " + "indicate a problem with DBus, or a non-MATE (e.g. KDE) settings manager may already " + "be active and conflicting with the MATE settings manager.")); + + gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); +} + +/* Returns FALSE if activation failed, else TRUE */ +gboolean +activate_settings_daemon (void) +{ + DBusGConnection *connection = NULL; + DBusGProxy *proxy = NULL; + GError *error = NULL; + + connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error); + if (connection == NULL) + { + popup_error_message (); + g_error_free (error); + return FALSE; + } + + proxy = dbus_g_proxy_new_for_name (connection, + "org.mate.SettingsDaemon", + "/org/mate/SettingsDaemon", + "org.mate.SettingsDaemon"); + + if (proxy == NULL) + { + popup_error_message (); + return FALSE; + } + + if (!org_mate_SettingsDaemon_awake(proxy, &error)) + { + popup_error_message (); + g_error_free (error); + return FALSE; + } + + return TRUE; +} -- cgit v1.2.1