File padevchooser-no-symlinks.patch of Package padevchooser
diff -upr padevchooser-0.9.4-orig//src/padevchooser.c padevchooser-0.9.4//src/padevchooser.c
--- padevchooser-0.9.4-orig//src/padevchooser.c 2007-09-25 03:20:38.000000000 +0200
+++ padevchooser-0.9.4//src/padevchooser.c 2008-04-18 16:57:08.000000000 +0200
@@ -702,31 +702,56 @@ static void set_x11_props(void) {
static void start_on_login_cb(GtkCheckButton *w) {
gchar *c;
+ GnomeDesktopItem *ditem;
+ GError *error = NULL;
- mkdir(g_get_user_config_dir(), 0777);
c = g_build_filename(g_get_user_config_dir(), "autostart", NULL);
- mkdir(c, 0777);
+ if (!g_file_test (c, G_FILE_TEST_IS_DIR)) {
+ g_mkdir_with_parents (c, 0777);
+ }
g_free(c);
- c = g_build_filename(g_get_user_config_dir(), "autostart", "padevchooser.desktop", NULL);
+
+ ditem = gnome_desktop_item_new_from_file (DESKTOP_FILE, GNOME_DESKTOP_ITEM_LOAD_NO_TRANSLATIONS, &error);
+ if (!ditem) {
+ g_warning ("gnome_desktop_item_new_from_file() failed: %s", error->message);
+ g_error_free (error);
+ return;
+ }
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) {
- if (symlink(DESKTOP_FILE, c) < 0 && errno != EEXIST)
- g_warning("symlink() failed: %s", strerror(errno));
+ gnome_desktop_item_set_boolean (ditem, "X-GNOME-Autostart-enabled", TRUE);
+ gnome_desktop_item_set_boolean (ditem, "Hidden", FALSE);
} else {
- if (unlink(c) < 0 && errno != ENOENT)
- g_warning("unlink() failed: %s", strerror(errno));
+ gnome_desktop_item_set_boolean (ditem, "X-GNOME-Autostart-enabled", FALSE);
+ gnome_desktop_item_set_boolean (ditem, "Hidden", TRUE);
+ }
+
+ error = NULL;
+ c = g_strdup_printf ("file://%s/autostart/padevchooser-autostart.desktop", g_get_user_config_dir ());
+ if (!gnome_desktop_item_save (ditem, c, TRUE, &error)) {
+ g_warning ("gnome_desktop_item_save() failed: %s", error->message);
+ g_error_free (error);
}
g_free(c);
+ gnome_desktop_item_unref (ditem);
}
static void init_start_on_login_check_button(GtkToggleButton *w) {
- struct stat st;
gchar *c;
+ GnomeDesktopItem *ditem;
c = g_build_filename(g_get_user_config_dir(), "autostart", "padevchooser.desktop", NULL);
- gtk_toggle_button_set_active(w, lstat(c, &st) >= 0);
+
+ ditem = gnome_desktop_item_new_from_file (c, 0, NULL);
+ if (!ditem) {
+ ditem = gnome_desktop_item_new_from_file (DESKTOP_FILE, 0, NULL);
+ }
+
+ gtk_toggle_button_set_active(w, gnome_desktop_item_get_boolean (ditem, "X-GNOME-Autostart-enabled"));
+
g_free(c);
+ gnome_desktop_item_unref (ditem);
}
static void check_button_cb(GtkCheckButton *w, const gchar *key) {
Only in padevchooser-0.9.4//src: padevchooser.c~