diff --git a/app/app.c b/app/app.c index a93b3b1fe0..c2f7ee3311 100644 --- a/app/app.c +++ b/app/app.c @@ -351,6 +351,9 @@ app_run (const gchar *full_prog_name, G_CALLBACK (app_exit_after_callback), &run_loop); + /* The software is now fully loaded and ready to be used. */ + gimp->initialized = TRUE; + #ifndef GIMP_CONSOLE_COMPILATION if (run_loop && ! no_interface) { diff --git a/app/core/gimp.h b/app/core/gimp.h index 81c27ed74a..a543520d32 100644 --- a/app/core/gimp.h +++ b/app/core/gimp.h @@ -60,6 +60,7 @@ struct _Gimp GimpGui gui; /* gui vtable */ gboolean restored; /* becomes TRUE in gimp_restore() */ + gboolean initialized; /* Fully initialized (only set once at start). */ gint busy; guint busy_idle_id; diff --git a/app/gui/gimpdbusservice.c b/app/gui/gimpdbusservice.c index e90c229171..04dec1a37f 100644 --- a/app/gui/gimpdbusservice.c +++ b/app/gui/gimpdbusservice.c @@ -328,14 +328,13 @@ gimp_dbus_service_process_idle (GimpDBusService *service) { IdleData *data; - if (! service->gimp->restored) + if (! service->gimp->initialized || ! service->gimp->restored) return TRUE; data = g_queue_pop_tail (service->queue); if (data) { - if (data->file) file_open_from_command_line (service->gimp, data->file, data->as_new, NULL /* FIXME monitor */);