Blob Blame History Raw
diff --git a/src/nemo-actions.h b/src/nemo-actions.h
index 5fcd853..02956b9 100644
--- a/src/nemo-actions.h
+++ b/src/nemo-actions.h
@@ -122,7 +122,7 @@
 #define NEMO_ACTION_SCRIPTS "Scripts"
 #define NEMO_ACTION_ACTIONS "Actions"
 #define NEMO_ACTION_NEW_LAUNCHER "New Launcher"
-#define NEMO_ACTION_NEW_LAUNCHER_DESKTOP "New Launcher"
+#define NEMO_ACTION_NEW_LAUNCHER_DESKTOP "New Launcher Desktop"
 #define NEMO_ACTION_NEW_DOCUMENTS "New Documents"
 #define NEMO_ACTION_NEW_EMPTY_DOCUMENT "New Empty Document"
 #define NEMO_ACTION_EMPTY_TRASH_CONDITIONAL "Empty Trash Conditional"
@@ -146,6 +146,7 @@
 #define NEMO_ACTION_STATUSBAR_TREEVIEW "Statusbar Treeview"
 #define NEMO_ACTION_STATUSBAR_SIDEBAR_TOGGLE "Statusbar Sidebar Toggle"
 
+#define NEMO_ACTION_CHANGE_BACKGROUND_DESKTOP "Change Background"
 #define NEMO_ACTION_ADD_DESKLETS_DESKTOP "Add Desklets"
 
 #define NEMO_ACTION_FOLLOW_SYMLINK "FollowSymbolicLink"
diff --git a/src/nemo-desktop-icon-view.c b/src/nemo-desktop-icon-view.c
index b903c5b..9d22193 100644
--- a/src/nemo-desktop-icon-view.c
+++ b/src/nemo-desktop-icon-view.c
@@ -89,6 +89,7 @@ static void     font_changed_callback                             (gpointer
 G_DEFINE_TYPE (NemoDesktopIconView, nemo_desktop_icon_view, NEMO_TYPE_ICON_VIEW)
 
 gboolean have_cinnamon_settings;
+gboolean have_launcher_creator;
 static char *desktop_directory;
 static time_t desktop_dir_modify_time;
 
@@ -653,6 +654,7 @@ nemo_desktop_icon_view_init (NemoDesktopIconView *desktop_icon_view)
 				  desktop_icon_view);
 
     have_cinnamon_settings = g_find_program_in_path ("cinnamon-settings") != NULL;
+    have_launcher_creator = g_find_program_in_path ("cinnamon-launcher-creator") != NULL;
 }
 
 static void
@@ -698,9 +700,9 @@ action_new_launcher_callback (GtkAction *action, gpointer data)
 	desktop_directory = nemo_get_desktop_directory ();
 
 	nemo_launch_application_from_command (gtk_widget_get_screen (GTK_WIDGET (data)),
-						  "gnome-desktop-item-edit", 
+						  "cinnamon-launcher-creator", 
 						  FALSE,
-						  "--create-new", desktop_directory, NULL);
+						  desktop_directory, NULL);
 	g_free (desktop_directory);
 
 }
@@ -748,12 +750,11 @@ real_update_menus (NemoView *view)
 
 	desktop_view = NEMO_DESKTOP_ICON_VIEW (view);
 
-
 	/* New Launcher */
 	action = gtk_action_group_get_action (desktop_view->details->desktop_action_group,
 					      NEMO_ACTION_NEW_LAUNCHER_DESKTOP);
 	if (action) {
-		gtk_action_set_visible (action, TRUE);
+		gtk_action_set_visible (action, have_launcher_creator);
 	}
 
 	/* Empty Trash */
@@ -773,18 +774,22 @@ real_update_menus (NemoView *view)
     action = gtk_action_group_get_action (desktop_view->details->desktop_action_group,
                                           NEMO_ACTION_ADD_DESKLETS_DESKTOP);
     gtk_action_set_visible (action, have_cinnamon_settings);
+    action = gtk_action_group_get_action (desktop_view->details->desktop_action_group,
+                                          NEMO_ACTION_CHANGE_BACKGROUND_DESKTOP);
+    gtk_action_set_visible (action, have_cinnamon_settings);
+
 }
 
 static const GtkActionEntry desktop_view_entries[] = {
 	/* name, stock id */
-	{ "New Launcher Desktop", NULL,
+	{ NEMO_ACTION_NEW_LAUNCHER_DESKTOP, NULL,
 	  /* label, accelerator */
 	  N_("Create L_auncher..."), NULL,
 	  /* tooltip */
 	  N_("Create a new launcher"),
 	  G_CALLBACK (action_new_launcher_callback) },
 	/* name, stock id */
-	{ "Change Background", NULL,
+	{ NEMO_ACTION_CHANGE_BACKGROUND_DESKTOP, NULL,
 	  /* label, accelerator */
 	  N_("Change Desktop _Background"), NULL,
 	  /* tooltip */
diff --git a/src/nemo-view.c b/src/nemo-view.c
index ab03b44..f331ec2 100644
--- a/src/nemo-view.c
+++ b/src/nemo-view.c
@@ -281,6 +281,7 @@ struct NemoViewDetails
 
     gboolean has_thunderbird;
     gboolean has_other_mail;
+    gboolean have_launcher_creator;
 };
 
 typedef struct {
@@ -2103,7 +2104,7 @@ static void
 action_new_launcher_callback (GtkAction *action,
 			      gpointer callback_data)
 {
-	char *parent_uri;
+	char *parent_uri, *parent_path;
 	NemoView *view;
 	GtkWindow *window;
 
@@ -2112,14 +2113,16 @@ action_new_launcher_callback (GtkAction *action,
 	view = NEMO_VIEW (callback_data);
 
 	parent_uri = nemo_view_get_backing_uri (view);
+    parent_path = g_filename_from_uri (parent_uri, NULL, NULL);
 
 	window = nemo_view_get_containing_window (view);
 	nemo_launch_application_from_command (gtk_widget_get_screen (GTK_WIDGET (view)),
-						  "gnome-desktop-item-edit", 
+						  "cinnamon-launcher-creator", 
 						  FALSE,
-						  "--create-new", parent_uri, NULL);
+						  parent_path, NULL);
 
 	g_free (parent_uri);
+    g_free (parent_path);
 }
 
 static void
@@ -2709,6 +2712,8 @@ nemo_view_init (NemoView *view)
     view->details->has_other_mail = g_find_program_in_path ("evolution") != NULL ||
                                     g_find_program_in_path ("balsa")     != NULL;
 
+    view->details->have_launcher_creator = g_find_program_in_path ("cinnamon-launcher-creator") != NULL;
+
 	if (set_up_scripts_directory_global ()) {
 		scripts_directory = nemo_directory_get_by_uri (scripts_directory_uri);
 		add_directory_to_scripts_directory_list (view, scripts_directory);
@@ -7859,7 +7864,7 @@ static const GtkActionEntry directory_view_entries[] = {
   /* label, accelerator */       N_("_Empty Document"), NULL,
   /* tooltip */                  N_("Create a new empty document inside this folder"),
 				 G_CALLBACK (action_new_empty_file_callback) },
-  /* name, stock id */         { "New Launcher", NULL,
+  /* name, stock id */         { NEMO_ACTION_NEW_LAUNCHER, NULL,
   /* label, accelerator */       N_("Create L_auncher..."), NULL,
   /* tooltip */                  N_("Create a new launcher"),
                                  G_CALLBACK (action_new_launcher_callback) },
@@ -9606,6 +9611,11 @@ real_update_menus (NemoView *view)
                             selection_count == 1 &&
                             nemo_file_is_symbolic_link (selection->data));
 
+    action = gtk_action_group_get_action (view->details->dir_action_group,
+                                          NEMO_ACTION_NEW_LAUNCHER);
+
+    gtk_action_set_visible (action, view->details->have_launcher_creator);
+
     nemo_file_list_free (selection);
 }