|
|
d7f0747 |
Index: gtk/gtksearchenginesimple.c
|
|
|
d7f0747 |
===================================================================
|
|
|
d7f0747 |
--- gtk/gtksearchenginesimple.c (revision 18864)
|
|
|
d7f0747 |
+++ gtk/gtksearchenginesimple.c (working copy)
|
|
|
d7f0747 |
@@ -72,19 +72,27 @@ struct _GtkSearchEngineSimplePrivate
|
|
|
d7f0747 |
G_DEFINE_TYPE (GtkSearchEngineSimple, _gtk_search_engine_simple, GTK_TYPE_SEARCH_ENGINE);
|
|
|
d7f0747 |
|
|
|
d7f0747 |
static void
|
|
|
d7f0747 |
-finalize (GObject *object)
|
|
|
d7f0747 |
+gtk_search_engine_simple_dispose (GObject *object)
|
|
|
d7f0747 |
{
|
|
|
d7f0747 |
GtkSearchEngineSimple *simple;
|
|
|
d7f0747 |
+ GtkSearchEngineSimplePrivate *priv;
|
|
|
d7f0747 |
|
|
|
d7f0747 |
simple = GTK_SEARCH_ENGINE_SIMPLE (object);
|
|
|
d7f0747 |
+ priv = simple->priv;
|
|
|
d7f0747 |
|
|
|
d7f0747 |
- if (simple->priv->query)
|
|
|
d7f0747 |
+ if (priv->query)
|
|
|
d7f0747 |
+ {
|
|
|
d7f0747 |
+ g_object_unref (priv->query);
|
|
|
d7f0747 |
+ priv->query = NULL;
|
|
|
d7f0747 |
+ }
|
|
|
d7f0747 |
+
|
|
|
d7f0747 |
+ if (priv->active_search)
|
|
|
d7f0747 |
{
|
|
|
d7f0747 |
- g_object_unref (simple->priv->query);
|
|
|
d7f0747 |
- simple->priv->query = NULL;
|
|
|
d7f0747 |
+ priv->active_search->cancelled = TRUE;
|
|
|
d7f0747 |
+ priv->active_search = NULL;
|
|
|
d7f0747 |
}
|
|
|
d7f0747 |
|
|
|
d7f0747 |
- G_OBJECT_CLASS (_gtk_search_engine_simple_parent_class)->finalize (object);
|
|
|
d7f0747 |
+ G_OBJECT_CLASS (_gtk_search_engine_simple_parent_class)->dispose (object);
|
|
|
d7f0747 |
}
|
|
|
d7f0747 |
|
|
|
d7f0747 |
static SearchThreadData *
|
|
|
d7f0747 |
@@ -131,12 +139,10 @@ search_thread_done_idle (gpointer user_d
|
|
|
d7f0747 |
|
|
|
d7f0747 |
data = user_data;
|
|
|
d7f0747 |
|
|
|
d7f0747 |
- if (!data->cancelled)
|
|
|
d7f0747 |
- {
|
|
|
d7f0747 |
- _gtk_search_engine_finished (GTK_SEARCH_ENGINE (data->engine));
|
|
|
d7f0747 |
- data->engine->priv->active_search = NULL;
|
|
|
d7f0747 |
- }
|
|
|
d7f0747 |
-
|
|
|
d7f0747 |
+ if (!data->cancelled)
|
|
|
d7f0747 |
+ _gtk_search_engine_finished (GTK_SEARCH_ENGINE (data->engine));
|
|
|
d7f0747 |
+
|
|
|
d7f0747 |
+ data->engine->priv->active_search = NULL;
|
|
|
d7f0747 |
search_thread_data_free (data);
|
|
|
d7f0747 |
|
|
|
d7f0747 |
return FALSE;
|
|
|
d7f0747 |
@@ -181,6 +187,7 @@ send_batch (SearchThreadData *data)
|
|
|
d7f0747 |
hits = g_new (SearchHits, 1);
|
|
|
d7f0747 |
hits->uris = data->uri_hits;
|
|
|
d7f0747 |
hits->thread_data = data;
|
|
|
d7f0747 |
+
|
|
|
d7f0747 |
gdk_threads_add_idle (search_thread_add_hits_idle, hits);
|
|
|
d7f0747 |
}
|
|
|
d7f0747 |
data->uri_hits = NULL;
|
|
|
d7f0747 |
@@ -349,7 +356,7 @@ _gtk_search_engine_simple_class_init (Gt
|
|
|
d7f0747 |
GtkSearchEngineClass *engine_class;
|
|
|
d7f0747 |
|
|
|
d7f0747 |
gobject_class = G_OBJECT_CLASS (class);
|
|
|
d7f0747 |
- gobject_class->finalize = finalize;
|
|
|
d7f0747 |
+ gobject_class->dispose = gtk_search_engine_simple_dispose;
|
|
|
d7f0747 |
|
|
|
d7f0747 |
engine_class = GTK_SEARCH_ENGINE_CLASS (class);
|
|
|
d7f0747 |
engine_class->set_query = gtk_search_engine_simple_set_query;
|
|
|
d7f0747 |
Index: gtk/gtkfilechooserdefault.c
|
|
|
d7f0747 |
===================================================================
|
|
|
d7f0747 |
--- gtk/gtkfilechooserdefault.c (revision 18864)
|
|
|
d7f0747 |
+++ gtk/gtkfilechooserdefault.c (working copy)
|
|
|
d7f0747 |
@@ -8994,6 +8994,8 @@ search_stop_searching (GtkFileChooserDef
|
|
|
d7f0747 |
|
|
|
d7f0747 |
if (impl->search_engine)
|
|
|
d7f0747 |
{
|
|
|
d7f0747 |
+ _gtk_search_engine_stop (impl->search_engine);
|
|
|
d7f0747 |
+
|
|
|
d7f0747 |
g_object_unref (impl->search_engine);
|
|
|
d7f0747 |
impl->search_engine = NULL;
|
|
|
d7f0747 |
}
|