diff --git a/Alacarte/MainWindow.py b/Alacarte/MainWindow.py index e43ea9a..a1b0d99 100644 --- a/Alacarte/MainWindow.py +++ b/Alacarte/MainWindow.py @@ -285,6 +285,17 @@ class MainWindow: return False return True + # Run gnome-desktop-item-edit or exo-desktop-item-edit + def run_desktop_item_edit(self, file_path): + try: + process = subprocess.Popen(['gnome-desktop-item-edit', file_path], env=os.environ) + except OSError, e: + # If gnome-desktop-item-edit is not exists then + # run exo-desktop-item-edit + if e.errno == 2: + process = subprocess.Popen(['exo-desktop-item-edit', file_path], env=os.environ) + return process + def on_new_menu_button_clicked(self, button): menu_tree = self.tree.get_object('menu_tree') menus, iter = menu_tree.get_selection().get_selected() @@ -295,7 +306,7 @@ class MainWindow: else: parent = menus[iter][2] file_path = os.path.join(util.getUserDirectoryPath(), util.getUniqueFileId('alacarte-made', '.directory')) - process = subprocess.Popen(['gnome-desktop-item-edit', file_path], env=os.environ) + process = self.run_desktop_item_edit(file_path) gobject.timeout_add(100, self.waitForNewMenuProcess, process, parent.menu_id, file_path) def on_new_item_button_clicked(self, button): @@ -308,7 +319,7 @@ class MainWindow: else: parent = menus[iter][2] file_path = os.path.join(util.getUserItemPath(), util.getUniqueFileId('alacarte-made', '.desktop')) - process = subprocess.Popen(['gnome-desktop-item-edit', file_path], env=os.environ) + process = self.run_desktop_item_edit(file_path) gobject.timeout_add(100, self.waitForNewItemProcess, process, parent.menu_id, file_path) def on_new_separator_button_clicked(self, button): @@ -379,7 +390,7 @@ class MainWindow: self.editor._MenuEditor__addUndo([item,]) if file_path not in self.edit_pool: self.edit_pool.append(file_path) - process = subprocess.Popen(['gnome-desktop-item-edit', file_path], env=os.environ) + process = self.run_desktop_item_edit(file_path) gobject.timeout_add(100, self.waitForEditProcess, process, file_path) def on_menu_tree_cursor_changed(self, treeview):