[Xfce4-commits] <xfce4-settings:master> Remove the autostart desktop file altering.

Nick Schermer noreply at xfce.org
Mon Feb 28 17:16:07 CET 2011


Updating branch refs/heads/master
         to 5755ea4dd3b7ef66dc99af55fa81fd6a317026ed (commit)
       from 621851f2e09cd13f75b65fa065a29ea32b5cf23d (commit)

commit 5755ea4dd3b7ef66dc99af55fa81fd6a317026ed
Author: Nick Schermer <nick at xfce.org>
Date:   Wed Feb 23 19:53:38 2011 +0100

    Remove the autostart desktop file altering.
    
    This is not foolproof anyway and the daemon can handle 2
    spawns without any problems too, so drop this.
    
    Also set a better priority for the session and register the
    desktop file.
    
    Make the desktop file name key translatable too.

 po/POTFILES.in                                     |    1 +
 xfsettingsd/Makefile.am                            |    9 +++-
 xfsettingsd/main.c                                 |   51 +++-----------------
 ...sd-autostart.desktop => xfsettingsd.desktop.in} |    3 +-
 4 files changed, 17 insertions(+), 47 deletions(-)

diff --git a/po/POTFILES.in b/po/POTFILES.in
index 4076595..5b20f61 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -35,6 +35,7 @@ xfsettingsd/keyboard-shortcuts.c
 xfsettingsd/main.c
 xfsettingsd/workspaces.c
 xfsettingsd/xsettings.c
+xfsettingsd/xfsettingsd-autostart.desktop.in
 
 xfce4-settings-manager/main.c
 xfce4-settings-manager/xfce-settings-manager-dialog.c
diff --git a/xfsettingsd/Makefile.am b/xfsettingsd/Makefile.am
index 9e22d10..2d69bd6 100644
--- a/xfsettingsd/Makefile.am
+++ b/xfsettingsd/Makefile.am
@@ -5,9 +5,9 @@ INCLUDES = \
 	-DDATADIR=\"$(datadir)\" \
 	-DBINDIR=\"$(bindir)\" \
 	-DSRCDIR=\"$(top_srcdir)\" \
+	-DSYSCONFIGDIR=\"$(sysconfdir)\" \
 	-DLOCALEDIR=\"$(localedir)\" \
 	-DG_LOG_DOMAIN=\"xfsettingsd\" \
-	-DAUTOSTART_FILENAME=\"$(autostart_DATA)\" \
 	$(PLATFORM_CPPFLAGS)
 
 bin_PROGRAMS = \
@@ -90,10 +90,15 @@ settingsdir = $(sysconfdir)/xdg/xfce4/xfconf/xfce-perchannel-xml
 settings_DATA = xsettings.xml
 
 autostartdir = $(sysconfdir)/xdg/autostart
-autostart_DATA = xfsettingsd-autostart.desktop
+autostart_in_files = xfsettingsd.desktop.in
+autostart_DATA = $(autostart_in_files:.desktop.in=.desktop)
+ at INTLTOOL_DESKTOP_RULE@
 
 EXTRA_DIST = \
 	$(settings_DATA) \
+	$(autostart_in_files)
+
+DISTCLEANFILES = \
 	$(autostart_DATA)
 
 # vi:set ts=8 sw=8 noet ai nocindent syntax=automake:
diff --git a/xfsettingsd/main.c b/xfsettingsd/main.c
index be32fb5..fb5a2f3 100644
--- a/xfsettingsd/main.c
+++ b/xfsettingsd/main.c
@@ -63,7 +63,8 @@
 #include "displays.h"
 #endif
 
-#define HELPER_DBUS_NAME "org.xfce.SettingsDaemon"
+#define XFSETTINGS_DBUS_NAME    ("org.xfce.SettingsDaemon")
+#define XFSETTINGS_DESKTOP_FILE (SYSCONFIGDIR "/xdg/autostart/xfsettingsd.desktop")
 
 
 static XfceSMClient *sm_client = NULL;
@@ -91,47 +92,12 @@ signal_handler (gint signum,
 
 
 
-static gboolean
-xfce_settings_helper_set_autostart_enabled (gboolean enabled)
-{
-    gboolean ret = TRUE;
-    XfceRc *rcfile = xfce_rc_config_open (XFCE_RESOURCE_CONFIG,
-                                          "autostart/" AUTOSTART_FILENAME,
-                                          FALSE);
-
-    if (G_UNLIKELY (rcfile == NULL))
-    {
-        g_warning ("Failed to create per-user autostart directory");
-        return FALSE;
-    }
-
-    xfce_rc_set_group (rcfile, "Desktop Entry");
-    if (xfce_rc_read_bool_entry (rcfile, "Hidden", enabled) == enabled)
-    {
-        xfce_rc_write_bool_entry (rcfile, "Hidden", !enabled);
-        xfce_rc_flush (rcfile);
-    }
-
-    if (xfce_rc_is_dirty (rcfile))
-    {
-        g_warning ("Failed to write autostart file");
-        ret = FALSE;
-    }
-
-    xfce_rc_close (rcfile);
-
-    return ret;
-}
-
-
-
 gint
 main (gint argc, gchar **argv)
 {
     XfceClipboardManager *clipboard_daemon;
     GError               *error = NULL;
     GOptionContext       *context;
-    gboolean              in_session;
     GObject              *pointer_helper;
     GObject              *keyboards_helper;
     GObject              *accessibility_helper;
@@ -176,7 +142,7 @@ main (gint argc, gchar **argv)
     if (G_UNLIKELY (opt_version))
     {
         g_print ("%s %s (Xfce %s)\n\n", G_LOG_DOMAIN, PACKAGE_VERSION, xfce_version_string ());
-        g_print ("%s\n", "Copyright (c) 2008-2012");
+        g_print ("%s\n", "Copyright (c) 2008-2011");
         g_print ("\t%s\n\n", _("The Xfce development team. All rights reserved."));
         g_print (_("Please report bugs to <%s>."), PACKAGE_BUGREPORT);
         g_print ("\n");
@@ -187,7 +153,7 @@ main (gint argc, gchar **argv)
     dbus_connection = dbus_bus_get (DBUS_BUS_SESSION, NULL);
     if (G_LIKELY (dbus_connection != NULL))
     {
-        result = dbus_bus_request_name (dbus_connection, HELPER_DBUS_NAME, DBUS_NAME_FLAG_DO_NOT_QUEUE, NULL);
+        result = dbus_bus_request_name (dbus_connection, XFSETTINGS_DBUS_NAME, DBUS_NAME_FLAG_DO_NOT_QUEUE, NULL);
         if (result != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER)
           {
               g_printerr (G_LOG_DOMAIN ": %s\n", "Another instance is already running. Leaving...");
@@ -212,6 +178,8 @@ main (gint argc, gchar **argv)
      * session manager won't wait for us to time out. */
     sm_client = xfce_sm_client_get ();
     xfce_sm_client_set_restart_style (sm_client, XFCE_SM_CLIENT_RESTART_IMMEDIATELY);
+    xfce_sm_client_set_desktop_file (sm_client, XFSETTINGS_DESKTOP_FILE);
+    xfce_sm_client_set_priority (sm_client, XFCE_SM_CLIENT_PRIORITY_CORE);
     g_signal_connect (G_OBJECT (sm_client), "quit", G_CALLBACK (gtk_main_quit), NULL);
     if (!xfce_sm_client_connect (sm_client, &error) && error)
     {
@@ -219,11 +187,6 @@ main (gint argc, gchar **argv)
         g_clear_error (&error);
     }
 
-    /* if this instance is started from a saved session, disable autostart so
-     * the helper is not spawned twice */
-    in_session = xfce_sm_client_is_resumed (sm_client);
-    xfce_settings_helper_set_autostart_enabled (in_session);
-
     /* daemonize the process */
     if (!opt_no_daemon)
     {
@@ -276,7 +239,7 @@ main (gint argc, gchar **argv)
 
     /* release the dbus name */
     if (dbus_connection != NULL)
-        dbus_bus_release_name (dbus_connection, HELPER_DBUS_NAME, NULL);
+        dbus_bus_release_name (dbus_connection, XFSETTINGS_DBUS_NAME, NULL);
 
     /* release the sub daemons */
 #ifdef HAVE_XRANDR
diff --git a/xfsettingsd/xfsettingsd-autostart.desktop b/xfsettingsd/xfsettingsd.desktop.in
similarity index 68%
rename from xfsettingsd/xfsettingsd-autostart.desktop
rename to xfsettingsd/xfsettingsd.desktop.in
index f134865..d4be1d2 100644
--- a/xfsettingsd/xfsettingsd-autostart.desktop
+++ b/xfsettingsd/xfsettingsd.desktop.in
@@ -1,7 +1,8 @@
 [Desktop Entry]
 Version=1.0
-Name=Xfce Settings Daemon
+_Name=Xfce Settings Daemon
 Exec=xfsettingsd
+Icon=applications-system
 Terminal=false
 Type=Application
 StartupNotify=false



More information about the Xfce4-commits mailing list