Index: gnome-panel/libpanel-util/panel-launch.c
===================================================================
--- gnome-panel/libpanel-util/panel-launch.c (revision 11419)
+++ gnome-panel/libpanel-util/panel-launch.c (working copy)
@@ -29,6 +29,8 @@
#include <gdk/gdk.h>
#include <gtk/gtk.h>
+#include <libgnome/gnome-desktop-item.h>
+
#include "panel-error.h"
#include "panel-glib.h"
@@ -201,6 +203,23 @@
}
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;
+}
+
+gboolean
panel_launch_desktop_file_with_fallback (const char *desktop_file,
const char *fallback_exec,
GdkScreen *screen,
Index: gnome-panel/libpanel-util/panel-launch.h
===================================================================
--- gnome-panel/libpanel-util/panel-launch.h (revision 11419)
+++ gnome-panel/libpanel-util/panel-launch.h (working copy)
@@ -47,6 +47,8 @@
GdkScreen *screen,
GError **error);
+gboolean panel_has_desktop_file (const char *desktop_file);
+
gboolean panel_launch_desktop_file (const char *desktop_file,
GdkScreen *screen,
GError **error);
Index: gnome-panel/panel-menu-items.c
===================================================================
--- gnome-panel/panel-menu-items.c (revision 11420)
+++ gnome-panel/panel-menu-items.c (working copy)
@@ -1004,10 +1004,21 @@
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 ("fedora-tracker-search-tool.desktop")) {
+ panel_menu_items_append_from_desktop (places_menu,
+ "fedora-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);
Index: gnome-panel/panel-action-button.c
===================================================================
--- gnome-panel/panel-action-button.c (revision 11419)
+++ gnome-panel/panel-action-button.c (working copy)
@@ -220,9 +220,19 @@
GdkScreen *screen;
screen = gtk_widget_get_screen (widget);
- panel_launch_desktop_file_with_fallback ("gnome-search-tool.desktop",
- "gnome-search-tool",
- screen, NULL);
+ if (panel_has_desktop_file ("gnome-beagle-search.desktop")) {
+ panel_launch_desktop_file ("gnome-beagle-search.desktop",
+ screen,
+ NULL);
+ } else if (panel_has_desktop_file ("fedora-tracker-search-tool.desktop")) {
+ panel_launch_desktop_file ("fedora-tracker-search-tool.desktop",
+ screen,
+ NULL);
+ } else {
+ panel_launch_desktop_file ("gnome-search-tool.desktop",
+ screen,
+ NULL);
+ }
}
/* Force Quit