5eead24
diff -up gnome-panel-2.27.91/gnome-panel/libpanel-util/panel-launch.c.search gnome-panel-2.27.91/gnome-panel/libpanel-util/panel-launch.c
5eead24
--- gnome-panel-2.27.91/gnome-panel/libpanel-util/panel-launch.c.search	2009-04-19 13:45:09.000000000 -0400
5eead24
+++ gnome-panel-2.27.91/gnome-panel/libpanel-util/panel-launch.c	2009-08-25 11:33:36.666288948 -0400
5eead24
@@ -29,6 +29,8 @@
5eead24
 #include <gdk/gdk.h>
5eead24
 #include <gtk/gtk.h>
5eead24
 
5eead24
+#include <libgnome/gnome-desktop-item.h>
5eead24
+
5eead24
 #include "panel-error.h"
5eead24
 #include "panel-glib.h"
5eead24
 
5eead24
@@ -201,6 +203,23 @@ panel_launch_desktop_file (const char  *
5eead24
 }
5eead24
 
5eead24
 gboolean
5eead24
+panel_has_desktop_file (const char  *desktop_file)
5eead24
+{
5eead24
+	GnomeDesktopItem *ditem;
5eead24
+
5eead24
+	if (g_path_is_absolute (desktop_file))
5eead24
+		ditem = gnome_desktop_item_new_from_file (desktop_file, 0, NULL);
5eead24
+	else
5eead24
+		ditem = gnome_desktop_item_new_from_basename (desktop_file, 0, NULL);
5eead24
+	if (ditem != NULL) {
5eead24
+		gnome_desktop_item_unref (ditem);
5eead24
+		return TRUE;
5eead24
+	}
5eead24
+
5eead24
+	return FALSE;	
5eead24
+}
5eead24
+
5eead24
+gboolean
5eead24
 panel_launch_desktop_file_with_fallback (const char  *desktop_file,
5eead24
 					 const char  *fallback_exec,
5eead24
 					 GdkScreen   *screen,
5eead24
diff -up gnome-panel-2.27.91/gnome-panel/libpanel-util/panel-launch.h.search gnome-panel-2.27.91/gnome-panel/libpanel-util/panel-launch.h
5eead24
--- gnome-panel-2.27.91/gnome-panel/libpanel-util/panel-launch.h.search	2009-04-19 13:45:09.000000000 -0400
5eead24
+++ gnome-panel-2.27.91/gnome-panel/libpanel-util/panel-launch.h	2009-08-25 11:33:36.667276923 -0400
5eead24
@@ -47,6 +47,8 @@ gboolean panel_launch_key_file (GKeyFile
5eead24
 				GdkScreen  *screen,
5eead24
 				GError    **error);
5eead24
 
5eead24
+gboolean panel_has_desktop_file (const char *desktop_file);
5eead24
+
5eead24
 gboolean panel_launch_desktop_file (const char  *desktop_file,
5eead24
 				    GdkScreen   *screen,
5eead24
 				    GError     **error);
5eead24
diff -up gnome-panel-2.27.91/gnome-panel/panel-action-button.c.search gnome-panel-2.27.91/gnome-panel/panel-action-button.c
5eead24
--- gnome-panel-2.27.91/gnome-panel/panel-action-button.c.search	2009-04-19 13:45:09.000000000 -0400
5eead24
+++ gnome-panel-2.27.91/gnome-panel/panel-action-button.c	2009-08-25 11:33:36.671290074 -0400
5eead24
@@ -219,9 +219,19 @@ panel_action_search (GtkWidget *widget)
5eead24
 	GdkScreen *screen;
5eead24
 
5eead24
 	screen = gtk_widget_get_screen (widget);
5eead24
-	panel_launch_desktop_file_with_fallback ("gnome-search-tool.desktop",
5eead24
-						 "gnome-search-tool",
5eead24
-						 screen, NULL);
5eead24
+	if (panel_has_desktop_file ("gnome-beagle-search.desktop")) {
5eead24
+		panel_launch_desktop_file ("gnome-beagle-search.desktop",
5eead24
+					   screen,
5eead24
+					   NULL);
5eead24
+	} else if (panel_has_desktop_file ("fedora-tracker-search-tool.desktop")) {
5eead24
+		panel_launch_desktop_file ("fedora-tracker-search-tool.desktop",
5eead24
+					   screen,
5eead24
+					   NULL);
5eead24
+	} else {
5eead24
+		panel_launch_desktop_file ("gnome-search-tool.desktop",
5eead24
+					   screen,
5eead24
+					   NULL);
5eead24
+	}
5eead24
 }
5eead24
 
5eead24
 /* Force Quit
5eead24
diff -up gnome-panel-2.27.91/gnome-panel/panel-menu-items.c.search gnome-panel-2.27.91/gnome-panel/panel-menu-items.c
5eead24
--- gnome-panel-2.27.91/gnome-panel/panel-menu-items.c.search	2009-08-25 11:33:36.643267021 -0400
5eead24
+++ gnome-panel-2.27.91/gnome-panel/panel-menu-items.c	2009-08-25 11:42:41.517027329 -0400
5eead24
@@ -1062,10 +1062,22 @@ panel_place_menu_item_create_menu (Panel
5eead24
 
5eead24
 	add_menu_separator (places_menu);
5eead24
 
5eead24
-	panel_menu_items_append_from_desktop (places_menu,
5eead24
-					      "gnome-search-tool.desktop",
5eead24
-					      NULL,
5eead24
-                                              FALSE);
5eead24
+	if (panel_has_desktop_file ("gnome-beagle-search.desktop")) {
5eead24
+		panel_menu_items_append_from_desktop (places_menu,
5eead24
+						      "gnome-beagle-search.desktop",
5eead24
+						      NULL,
5eead24
+						      FALSE);
5eead24
+	} else if (panel_has_desktop_file ("fedora-tracker-search-tool.desktop")) {
5eead24
+		panel_menu_items_append_from_desktop (places_menu,
5eead24
+						      "fedora-tracker-search-tool.desktop",
5eead24
+						      NULL,
5eead24
+						      FALSE);
5eead24
+	} else {
5eead24
+		panel_menu_items_append_from_desktop (places_menu,
5eead24
+						      "gnome-search-tool.desktop",
5eead24
+						      NULL,
5eead24
+						      FALSE);
5eead24
+	}
5eead24
 
5eead24
 	panel_recent_append_documents_menu (places_menu,
5eead24
 					    place_item->priv->recent_manager);