[eog] EogApplication: Activate per-app plugins in the startup callback



commit 066be17db6a58b55d7c93d7bcb43c2a7fae050ad
Author: Felix Riemann <friemann gnome org>
Date:   Sun May 4 14:13:54 2014 +0200

    EogApplication: Activate per-app plugins in the startup callback
    
    If activated in the init function the application could not be
    as initialized as expected by the plugins. Also this avoids the
    unneeded plugin enumeration when reusing an instance.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=729494

 src/eog-application.c |   58 ++++++++++++++++++++++++------------------------
 1 files changed, 29 insertions(+), 29 deletions(-)
---
diff --git a/src/eog-application.c b/src/eog-application.c
index 2ae4708..e1013de 100644
--- a/src/eog-application.c
+++ b/src/eog-application.c
@@ -231,6 +231,24 @@ eog_application_init_app_menu (EogApplication *application)
 }
 
 static void
+on_extension_added (PeasExtensionSet *set,
+                   PeasPluginInfo   *info,
+                   PeasExtension    *exten,
+                   EogApplication   *app)
+{
+       eog_application_activatable_activate (EOG_APPLICATION_ACTIVATABLE (exten));
+}
+
+static void
+on_extension_removed (PeasExtensionSet *set,
+                     PeasPluginInfo   *info,
+                     PeasExtension    *exten,
+                     EogApplication   *app)
+{
+       eog_application_activatable_deactivate (EOG_APPLICATION_ACTIVATABLE (exten));
+}
+
+static void
 eog_application_startup (GApplication *application)
 {
        EogApplication *app = EOG_APPLICATION (application);
@@ -278,6 +296,17 @@ eog_application_startup (GApplication *application)
                      NULL);
 
        eog_application_init_app_menu (app);
+
+       app->priv->extensions = peas_extension_set_new (
+                                  PEAS_ENGINE (app->priv->plugin_engine),
+                                  EOG_TYPE_APPLICATION_ACTIVATABLE,
+                                  "app", app, NULL);
+       g_signal_connect (app->priv->extensions, "extension-added",
+                         G_CALLBACK (on_extension_added), app);
+       g_signal_connect (app->priv->extensions, "extension-removed",
+                         G_CALLBACK (on_extension_removed), app);
+
+       peas_extension_set_call (app->priv->extensions, "activate");
 }
 
 static void
@@ -397,24 +426,6 @@ eog_application_class_init (EogApplicationClass *eog_application_class)
 }
 
 static void
-on_extension_added (PeasExtensionSet *set,
-                    PeasPluginInfo   *info,
-                    PeasExtension    *exten,
-                    EogApplication   *app)
-{
-       eog_application_activatable_activate (EOG_APPLICATION_ACTIVATABLE (exten));
-}
-
-static void
-on_extension_removed (PeasExtensionSet *set,
-                      PeasPluginInfo   *info,
-                      PeasExtension    *exten,
-                      EogApplication   *app)
-{
-       eog_application_activatable_deactivate (EOG_APPLICATION_ACTIVATABLE (exten));
-}
-
-static void
 eog_application_init (EogApplication *eog_application)
 {
        EogApplicationPrivate *priv;
@@ -449,17 +460,6 @@ eog_application_init (EogApplication *eog_application)
                                      EGG_TB_MODEL_NOT_REMOVABLE);
 
        eog_application_load_accelerators ();
-
-       priv->extensions = peas_extension_set_new (
-                                  PEAS_ENGINE (priv->plugin_engine),
-                                  EOG_TYPE_APPLICATION_ACTIVATABLE,
-                                  "app",  EOG_APPLICATION (eog_application),
-                                  NULL);
-       peas_extension_set_call (priv->extensions, "activate");
-       g_signal_connect (priv->extensions, "extension-added",
-                         G_CALLBACK (on_extension_added), eog_application);
-       g_signal_connect (priv->extensions, "extension-removed",
-                         G_CALLBACK (on_extension_removed), eog_application);
 }
 
 /**


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]