--- gnome-panel-2.16.1/gnome-panel/panel-action-button.c.use-beagle 2006-08-07 17:07:46.000000000 -0400 +++ gnome-panel-2.16.1/gnome-panel/panel-action-button.c 2006-11-21 08:46:10.000000000 -0500 @@ -189,16 +189,31 @@ { GdkScreen *screen; GError *error = NULL; + const gchar *prog; screen = gtk_widget_get_screen (widget); - panel_launch_desktop_file ("gnome-search-tool.desktop", - "gnome-search-tool", - screen, - &error); + if (panel_has_desktop_file ("gnome-beagle-search.desktop")) { + prog = "beagle-search"; + panel_launch_desktop_file ("gnome-beagle-search.desktop", + "beagle-search", + screen, + &error); + } else if (panel_has_desktop_file ("tracker-search-tool.desktop")) { + prog = "tracker-search-tool"; + panel_launch_desktop_file ("tracker-search-tool.desktop", + "tracker-search-tool", + screen, + &error); + } else { + prog = "gnome-search-tool"; + panel_launch_desktop_file ("gnome-search-tool.desktop", + "gnome-search-tool", + screen, + &error); + } if (error) { char *primary; - primary = g_strdup_printf (_("Could not execute '%s'"), - "gnome-search-tool"); + primary = g_strdup_printf (_("Could not execute '%s'"), prog); panel_error_dialog (NULL, screen, "cannot_exec_gnome-search-tool", TRUE, primary, error->message); --- gnome-panel-2.16.1/gnome-panel/panel-menu-items.c.use-beagle 2006-11-21 08:36:27.000000000 -0500 +++ gnome-panel-2.16.1/gnome-panel/panel-menu-items.c 2006-11-21 08:43:40.000000000 -0500 @@ -627,9 +627,20 @@ add_menu_separator (places_menu); - panel_menu_items_append_from_desktop (places_menu, - "gnome-search-tool.desktop", - NULL); + if (panel_has_desktop_file ("gnome-beagle-search.desktop")) { + panel_menu_items_append_from_desktop (places_menu, + "gnome-beagle-search.desktop", + NULL); + } else if (panel_has_desktop_file ("tracker-search-tool.desktop")) { + panel_menu_items_append_from_desktop (places_menu, + "tracker-search-tool.desktop", + NULL); + } else { + panel_menu_items_append_from_desktop (places_menu, + "gnome-search-tool.desktop", + NULL); + } + panel_recent_append_documents_menu (places_menu, place_item->priv->recent_manager); --- gnome-panel-2.16.1/gnome-panel/panel-util.h.use-beagle 2006-11-21 08:46:52.000000000 -0500 +++ gnome-panel-2.16.1/gnome-panel/panel-util.h 2006-11-21 08:47:28.000000000 -0500 @@ -16,6 +16,7 @@ GList *file_list, GdkScreen *screen, GError **error); +gboolean panel_has_desktop_file (const char *desktop_file); void panel_launch_desktop_file (const char *desktop_file, const char *fallback_exec, GdkScreen *screen, --- gnome-panel-2.16.1/gnome-panel/panel-util.c.use-beagle 2006-11-21 08:46:59.000000000 -0500 +++ gnome-panel-2.16.1/gnome-panel/panel-util.c 2006-11-21 08:47:54.000000000 -0500 @@ -96,6 +96,23 @@ gnome_desktop_item_unref (ditem); } +gboolean +panel_has_desktop_file (const char *desktop_file) +{ + GnomeDesktopItem *ditem; + + if (g_path_is_absolute (desktop_file)) + ditem = gnome_desktop_item_new_from_file (desktop_file, 0, NULL); + else + ditem = gnome_desktop_item_new_from_basename (desktop_file, 0, NULL); + if (ditem != NULL) { + gnome_desktop_item_unref (ditem); + return TRUE; + } + + return FALSE; +} + void panel_launch_desktop_file (const char *desktop_file, const char *fallback_exec,