+2006-08-10 Emmanuele Bassi <ebassi@gnome.org>
+
+ * gtk/gtkrecentchoosermenu.c:
+ (gtk_recent_chooser_menu_finalize): Remove the idle
+ source in ::finalize...
+
+ (idle_populate_func),
+ (idle_populate_clean_up): ...and reset the idle source
+ id at the end of the idle loop while we hold the GDK mutex
+ lock. (#350605, reported by Wouter Bolsterlee, patch by
+ Chris Wilson)
+
2006-08-10 Michael Natterer <mitch@imendio.com>
* gdk/quartz/gdkwindow-quartz.c
+2006-08-10 Emmanuele Bassi <ebassi@gnome.org>
+
+ * gtk/gtkrecentchoosermenu.c:
+ (gtk_recent_chooser_menu_finalize): Remove the idle
+ source in ::finalize...
+
+ (idle_populate_func),
+ (idle_populate_clean_up): ...and reset the idle source
+ id at the end of the idle loop while we hold the GDK mutex
+ lock. (#350605, reported by Wouter Bolsterlee, patch by
+ Chris Wilson)
+
2006-08-10 Michael Natterer <mitch@imendio.com>
* gdk/quartz/gdkwindow-quartz.c
g_signal_handler_disconnect (priv->manager, priv->manager_changed_id);
priv->manager_changed_id = 0;
+ if (priv->populate_id)
+ g_source_remove (priv->populate_id);
+
priv->manager = NULL;
if (priv->sort_data_destroy)
GDK_THREADS_ENTER ();
pdata = (MenuPopulateData *) data;
-
+ priv = pdata->menu->priv;
+
+ priv->populate_id = 0;
+
if (!pdata->items)
{
pdata->items = gtk_recent_chooser_get_items (GTK_RECENT_CHOOSER (pdata->menu));
}
info = g_list_nth_data (pdata->items, pdata->loaded_items);
- priv = pdata->menu->priv;
/* skip non-local items on request */
if (priv->local_only &&
static void
idle_populate_clean_up (gpointer data)
{
- MenuPopulateData *pdata = data;
-
- pdata->menu->priv->populate_id = 0;
-
- g_slice_free (MenuPopulateData, pdata);
+ g_slice_free (MenuPopulateData, data);
}
static void