struct _PrinterFinder
{
gboolean found_printer;
+ gboolean scheduled_callback;
GFunc func;
gpointer data;
char *printer_name;
return G_SOURCE_REMOVE;
}
+static void
+schedule_finder_callback (PrinterFinder *finder)
+{
+ g_assert (!finder->scheduled_callback);
+ g_idle_add (find_printer_idle, finder);
+ finder->scheduled_callback = TRUE;
+}
+
static void
printer_added_cb (GtkPrintBackend *backend,
GtkPrinter *printer,
}
if (finder->found_printer)
- g_idle_add (find_printer_idle, finder);
+ schedule_finder_callback (finder);
}
static void
* above, then we're finished.
*/
if (finder->backends == NULL && !finder->found_printer)
- g_idle_add (find_printer_idle, finder);
+ schedule_finder_callback (finder);
}
static void
if (finder->backends == NULL)
{
- g_idle_add (find_printer_idle, finder);
+ schedule_finder_callback (finder);
return;
}