summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtksearchengine.c3
-rw-r--r--gtk/gtksearchenginesimple.c15
-rw-r--r--gtk/gtksearchenginesimple.h3
3 files changed, 18 insertions, 3 deletions
diff --git a/gtk/gtksearchengine.c b/gtk/gtksearchengine.c
index de992e5666..67110f936b 100644
--- a/gtk/gtksearchengine.c
+++ b/gtk/gtksearchengine.c
@@ -334,7 +334,8 @@ _gtk_search_engine_new (void)
connect_engine_signals (engine->priv->native, engine);
_gtk_search_engine_simple_set_indexed_cb (GTK_SEARCH_ENGINE_SIMPLE (engine->priv->simple),
_gtk_search_engine_tracker_is_indexed,
- engine->priv->native);
+ g_object_ref (engine->priv->native),
+ g_object_unref);
}
#endif
diff --git a/gtk/gtksearchenginesimple.c b/gtk/gtksearchenginesimple.c
index b405aef976..00543eaa93 100644
--- a/gtk/gtksearchenginesimple.c
+++ b/gtk/gtksearchenginesimple.c
@@ -57,6 +57,7 @@ struct _GtkSearchEngineSimplePrivate
GtkSearchEngineSimpleIsIndexed is_indexed_callback;
gpointer is_indexed_data;
+ GDestroyNotify is_indexed_data_destroy;
};
@@ -83,6 +84,13 @@ gtk_search_engine_simple_dispose (GObject *object)
priv->active_search = NULL;
}
+ if (priv->is_indexed_data_destroy)
+ priv->is_indexed_data_destroy (priv->is_indexed_data);
+
+ priv->is_indexed_callback = NULL;
+ priv->is_indexed_data = NULL;
+ priv->is_indexed_data_destroy = NULL;
+
G_OBJECT_CLASS (_gtk_search_engine_simple_parent_class)->dispose (object);
}
@@ -365,8 +373,13 @@ _gtk_search_engine_simple_new (void)
void
_gtk_search_engine_simple_set_indexed_cb (GtkSearchEngineSimple *engine,
GtkSearchEngineSimpleIsIndexed callback,
- gpointer data)
+ gpointer data,
+ GDestroyNotify destroy)
{
+ if (engine->priv->is_indexed_data_destroy)
+ engine->priv->is_indexed_data_destroy (engine->priv->is_indexed_data);
+
engine->priv->is_indexed_callback = callback;
engine->priv->is_indexed_data = data;
+ engine->priv->is_indexed_data_destroy = destroy;
}
diff --git a/gtk/gtksearchenginesimple.h b/gtk/gtksearchenginesimple.h
index 83a60b1874..421b208e32 100644
--- a/gtk/gtksearchenginesimple.h
+++ b/gtk/gtksearchenginesimple.h
@@ -57,7 +57,8 @@ typedef gboolean (*GtkSearchEngineSimpleIsIndexed) (GFile *location, gpointer da
void _gtk_search_engine_simple_set_indexed_cb (GtkSearchEngineSimple *engine,
GtkSearchEngineSimpleIsIndexed callback,
- gpointer data);
+ gpointer data,
+ GDestroyNotify destroy);
G_END_DECLS