diff options
author | Matthias Clasen <matthiasc@src.gnome.org> | 2008-06-02 21:45:59 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2008-06-02 21:45:59 +0000 |
commit | 3ed0663ea06d0b20aa0ebf715154cbc867aa57ab (patch) | |
tree | a41940766065727c607dc1d643fc6822583bd08f | |
parent | a5c7f5c70889165f51815d95be30b62f5486721e (diff) | |
download | gdk-pixbuf-3ed0663ea06d0b20aa0ebf715154cbc867aa57ab.tar.gz |
check that tracker is actually working before using it. Fixes bug #479197.
* gtk/gtksearchenginetracker.c: (_gtk_search_engine_tracker_new):
check that tracker is actually working before using it. Fixes
bug #479197.
svn path=/branches/gtk-2-12/; revision=20276
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | gtk/gtksearchenginetracker.c | 15 |
2 files changed, 23 insertions, 0 deletions
@@ -2,6 +2,14 @@ Merge from trunk: + * gtk/gtksearchenginetracker.c: (_gtk_search_engine_tracker_new): + check that tracker is actually working before using it. Fixes + bug #479197. + +2008-06-02 Matthias Clasen <mclasen@redhat.com> + + Merge from trunk: + * gtk/gtkfilechooserdefault.c: (shortcuts_activate_volume_mount_cb): Ignore G_IO_ERROR_FAILED_HANDLED errors (#532262). diff --git a/gtk/gtksearchenginetracker.c b/gtk/gtksearchenginetracker.c index 7d357f202..36c90c38c 100644 --- a/gtk/gtksearchenginetracker.c +++ b/gtk/gtksearchenginetracker.c @@ -35,6 +35,7 @@ typedef void (*TrackerArrayReply) (char **result, GError *error, gpointer user_d static TrackerClient * (*tracker_connect) (gboolean enable_warnings) = NULL; static void (*tracker_disconnect) (TrackerClient *client) = NULL; +static int (*tracker_get_version) (TrackerClient *client, GError **error) = NULL; static void (*tracker_cancel_last_call) (TrackerClient *client) = NULL; static void (*tracker_search_metadata_by_text_async) (TrackerClient *client, @@ -56,6 +57,7 @@ static struct TrackerDlMapping #define MAP(a) { #a, (gpointer *)&a } MAP (tracker_connect), MAP (tracker_disconnect), + MAP (tracker_get_version), MAP (tracker_cancel_last_call), MAP (tracker_search_metadata_by_text_async), MAP (tracker_search_metadata_by_text_and_location_async), @@ -285,6 +287,7 @@ _gtk_search_engine_tracker_new (void) { GtkSearchEngineTracker *engine; TrackerClient *tracker_client; + GError *err = NULL; open_libtracker (); @@ -296,6 +299,18 @@ _gtk_search_engine_tracker_new (void) if (!tracker_client) return NULL; + if (!tracker_get_version) + return NULL; + + tracker_get_version (tracker_client, &err); + + if (err != NULL) + { + g_error_free (err); + tracker_disconnect (tracker_client); + return NULL; + } + engine = g_object_new (GTK_TYPE_SEARCH_ENGINE_TRACKER, NULL); engine->priv->client = tracker_client; |