gpointing-device-settings r11 - trunk/src
- From: hiikezoe svn gnome org
- To: svn-commits-list gnome org
- Subject: gpointing-device-settings r11 - trunk/src
- Date: Thu, 26 Feb 2009 07:27:40 +0000 (UTC)
Author: hiikezoe
Date: Thu Feb 26 07:27:40 2009
New Revision: 11
URL: http://svn.gnome.org/viewvc/gpointing-device-settings?rev=11&view=rev
Log:
Fix "Two different plugins tried to register 'GpdsTouchpadUI'" problem.
Modified:
trunk/src/gpds-ui.c
trunk/src/gpds-ui.h
Modified: trunk/src/gpds-ui.c
==============================================================================
--- trunk/src/gpds-ui.c (original)
+++ trunk/src/gpds-ui.c Thu Feb 26 07:27:40 2009
@@ -28,6 +28,19 @@
#include "gpds-module.h"
#include "gpds-xinput.h"
+static GList *uis = NULL;
+
+#if 0
+gboolean
+gpds_ui_quit (void)
+{
+ g_list_foreach(uis, (GFunc)gpds_module_unload, NULL);
+ g_list_free(uis);
+
+ return TRUE;
+}
+#endif
+
typedef struct _GpdsUIPriv GpdsUIPriv;
struct _GpdsUIPriv
{
@@ -35,7 +48,6 @@
GpdsXInput *xinput;
};
-
#define GPDS_UI_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), GPDS_TYPE_UI, GpdsUIPriv))
G_DEFINE_ABSTRACT_TYPE(GpdsUI, gpds_ui, G_TYPE_OBJECT)
@@ -90,14 +102,17 @@
gpds_ui_new (const gchar *name)
{
GpdsModule *module;
- GObject *ui;
- module = gpds_module_load_module(gpds_module_directory(), name);
- g_return_val_if_fail(module != NULL, NULL);
+ module = gpds_module_find(uis, name);
+ if (!module)
+ {
+ module = gpds_module_load_module(gpds_module_directory(), name);
+ g_return_val_if_fail(module != NULL, NULL);
- ui = gpds_module_instantiate(module);
+ uis = g_list_prepend(uis, module);
+ }
- return GPDS_UI(ui);
+ return GPDS_UI(gpds_module_instantiate(module));
}
gboolean
Modified: trunk/src/gpds-ui.h
==============================================================================
--- trunk/src/gpds-ui.h (original)
+++ trunk/src/gpds-ui.h Thu Feb 26 07:27:40 2009
@@ -65,7 +65,6 @@
gboolean gpds_ui_build (GpdsUI *ui, GError **error);
GtkWidget *gpds_ui_get_content_widget (GpdsUI *ui, GError **error);
GtkWidget *gpds_ui_get_label_widget (GpdsUI *ui, GError **error);
-
GtkBuilder *gpds_ui_get_builder (GpdsUI *ui);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]