[vinagre] Added support to PeasActivatable extensions in VinagreWindow
- From: Jonh Wendell <jwendell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vinagre] Added support to PeasActivatable extensions in VinagreWindow
- Date: Tue, 24 Aug 2010 18:38:22 +0000 (UTC)
commit d7802c86b62f86a970e323b30fb97ae7a8d95819
Author: Jonh Wendell <jwendell gnome org>
Date: Tue Aug 24 15:18:58 2010 -0300
Added support to PeasActivatable extensions in VinagreWindow
vinagre/vinagre-window-private.h | 4 +++
vinagre/vinagre-window.c | 41 ++++++++++++++++++++++++++++++++++++++
2 files changed, 45 insertions(+), 0 deletions(-)
---
diff --git a/vinagre/vinagre-window-private.h b/vinagre/vinagre-window-private.h
index cca409e..c74cb9e 100644
--- a/vinagre/vinagre-window-private.h
+++ b/vinagre/vinagre-window-private.h
@@ -21,6 +21,8 @@
#ifndef __VINAGRE_WINDOW_PRIVATE_H__
#define __VINAGRE_WINDOW_PRIVATE_H__
+#include <libpeas/peas-extension-set.h>
+
#include "vinagre-window.h"
#include "vinagre-notebook.h"
@@ -55,6 +57,8 @@ struct _VinagreWindowPrivate
GtkWidget *toolbar;
GtkWidget *menubar;
+ PeasExtensionSet *extensions;
+
gint width;
gint height;
GdkWindowState window_state;
diff --git a/vinagre/vinagre-window.c b/vinagre/vinagre-window.c
index 9f011d0..3945635 100644
--- a/vinagre/vinagre-window.c
+++ b/vinagre/vinagre-window.c
@@ -61,8 +61,15 @@ vinagre_window_dispose (GObject *object)
{
VinagreWindow *window = VINAGRE_WINDOW (object);
+ peas_engine_garbage_collect (PEAS_ENGINE (vinagre_plugins_engine_get_default ()));
+
if (!window->priv->dispose_has_run)
{
+ peas_extension_set_call (window->priv->extensions,
+ "deactivate",
+ window);
+
+ g_object_unref (window->priv->extensions);
peas_engine_garbage_collect (PEAS_ENGINE (vinagre_plugins_engine_get_default ()));
window->priv->dispose_has_run = TRUE;
}
@@ -82,6 +89,8 @@ vinagre_window_dispose (GObject *object)
window->priv->update_recents_menu_ui_id = 0;
}
+ peas_engine_garbage_collect (PEAS_ENGINE (vinagre_plugins_engine_get_default ()));
+
G_OBJECT_CLASS (vinagre_window_parent_class)->dispose (object);
}
@@ -747,6 +756,24 @@ vinagre_window_check_first_run (VinagreWindow *window)
}
static void
+extension_added (PeasExtensionSet *extensions,
+ PeasPluginInfo *info,
+ PeasExtension *exten,
+ gpointer user_data)
+{
+ peas_extension_call (exten, "activate");
+}
+
+static void
+extension_removed (PeasExtensionSet *extensions,
+ PeasPluginInfo *info,
+ PeasExtension *exten,
+ gpointer user_data)
+{
+ peas_extension_call (exten, "deactivate");
+}
+
+static void
vinagre_window_init (VinagreWindow *window)
{
GtkWidget *main_box;
@@ -800,6 +827,20 @@ vinagre_window_init (VinagreWindow *window)
window);
#endif
+ window->priv->extensions = peas_extension_set_new (PEAS_ENGINE (vinagre_plugins_engine_get_default ()),
+ PEAS_TYPE_ACTIVATABLE,
+ "object", window,
+ NULL);
+ g_signal_connect (window->priv->extensions,
+ "extension-added",
+ G_CALLBACK (extension_added),
+ window);
+ g_signal_connect (window->priv->extensions,
+ "extension-removed",
+ G_CALLBACK (extension_removed),
+ window);
+ peas_extension_set_call (window->priv->extensions, "activate");
+
g_idle_add ((GSourceFunc) vinagre_window_check_first_run, window);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]