diff --git a/packages/gtk/ChangeLog b/packages/gtk/ChangeLog
index ea81c8b..e6ffca0 100644
--- a/packages/gtk/ChangeLog
+++ b/packages/gtk/ChangeLog
@@ -1,3 +1,17 @@
+2009-07-01 Paolo Bonzini
+
+ * MoreFuncs.st: Add gtkInitialized. Stub gstGtkInit.
+ * example_arrow.st: Remove gstGtkInit.
+ * example_aspectframe.st: Remove gstGtkInit.
+ * example_buttonbox.st: Remove gstGtkInit.
+ * example_entry.st: Remove gstGtkInit.
+ * example_eventbox.st: Remove gstGtkInit.
+ * example_hello.st: Remove gstGtkInit.
+ * example_tictactoe.st: Remove gstGtkInit.
+ * example_tree.st: Remove gstGtkInit.
+ * gst-gtk.c: Add gtkInitialized, use gtk_init_check instead of
+ gtk_init moving it to gst_initModule.
+
2009-07-01 Gwenael Casaccio
* gst-gtk.c: Call g_thread_init.
diff --git a/packages/gtk/MoreFuncs.st b/packages/gtk/MoreFuncs.st
index 2431bce..f396793 100644
--- a/packages/gtk/MoreFuncs.st
+++ b/packages/gtk/MoreFuncs.st
@@ -25,9 +25,12 @@ Gtk class extend [
]
gstGtkInit [
+ "For backwards compatibility."
+ ]
+
+ gtkInitialized [
-
-
+
]
]
diff --git a/packages/gtk/example_arrow.st b/packages/gtk/example_arrow.st
index c214f7d..b161bad 100644
--- a/packages/gtk/example_arrow.st
+++ b/packages/gtk/example_arrow.st
@@ -111,7 +111,6 @@ GTK.GtkButton class extend [
Namespace current: GTK [
- Gtk gstGtkInit.
ArrowExample new open.
Gtk main
]
diff --git a/packages/gtk/example_aspectframe.st b/packages/gtk/example_aspectframe.st
index c7b3c85..4119047 100644
--- a/packages/gtk/example_aspectframe.st
+++ b/packages/gtk/example_aspectframe.st
@@ -77,7 +77,6 @@ Object subclass: AspectFrameExample [
Namespace current: GTK [
- Gtk gstGtkInit.
AspectFrameExample new open.
Gtk main
]
diff --git a/packages/gtk/example_buttonbox.st b/packages/gtk/example_buttonbox.st
index 7f7ef33..a8d440b 100644
--- a/packages/gtk/example_buttonbox.st
+++ b/packages/gtk/example_buttonbox.st
@@ -174,7 +174,6 @@ GtkButtonBox class extend [
Namespace current: GTK [
- Gtk gstGtkInit.
ButtonBoxExample new open.
Gtk main
]
diff --git a/packages/gtk/example_entry.st b/packages/gtk/example_entry.st
index 3728896..bc4d951 100644
--- a/packages/gtk/example_entry.st
+++ b/packages/gtk/example_entry.st
@@ -155,7 +155,6 @@ Object subclass: EntryExample [
Namespace current: GTK [
- Gtk gstGtkInit.
EntryExample new open.
Gtk main
]
diff --git a/packages/gtk/example_eventbox.st b/packages/gtk/example_eventbox.st
index e697566..6264b41 100644
--- a/packages/gtk/example_eventbox.st
+++ b/packages/gtk/example_eventbox.st
@@ -82,7 +82,6 @@ Object subclass: EventBoxExample [
Namespace current: GTK [
- Gtk gstGtkInit.
EventBoxExample new open.
Gtk main
]
diff --git a/packages/gtk/example_hello.st b/packages/gtk/example_hello.st
index 300684c..8e60624 100644
--- a/packages/gtk/example_hello.st
+++ b/packages/gtk/example_hello.st
@@ -80,7 +80,6 @@ Object subclass: HelloWorldExample [
Namespace current: GTK [
- Gtk gstGtkInit.
HelloWorldExample new open.
Gtk main
]
diff --git a/packages/gtk/example_tictactoe.st b/packages/gtk/example_tictactoe.st
index b4c4a19..c33dd56 100644
--- a/packages/gtk/example_tictactoe.st
+++ b/packages/gtk/example_tictactoe.st
@@ -177,7 +177,6 @@ Object subclass: TicTacToe [
Namespace current: GTK [
- Gtk gstGtkInit.
TicTacToe new open.
Gtk main
]
diff --git a/packages/gtk/example_tree.st b/packages/gtk/example_tree.st
index 94ff42b..8d9842e 100644
--- a/packages/gtk/example_tree.st
+++ b/packages/gtk/example_tree.st
@@ -208,7 +208,6 @@ Object subclass: TreeExample [
Namespace current: GTK [
- Gtk gstGtkInit.
TreeExample new open buildTree defaultExpand.
Gtk main
]
diff --git a/packages/gtk/gst-gtk.c b/packages/gtk/gst-gtk.c
index c987e0f..124dbf0 100644
--- a/packages/gtk/gst-gtk.c
+++ b/packages/gtk/gst-gtk.c
@@ -83,8 +83,6 @@ VMProxy *_gst_vm_proxy;
static GQuark q_gst_object = 0;
static int pending_quit_count = 0;
-static void gst_gtk_init ();
-
/* Start the main event loop and then signal OOP. */
static void my_gtk_main (OOP semaphore);
@@ -924,27 +922,26 @@ void my_log_handler (const gchar * log_domain,
/* Initialization. */
+static int initialized = 0;
+
+int
+gst_gtk_initialized ()
+{
+ return initialized;
+}
+
void
-gst_gtk_init ()
+gst_initModule (proxy)
+ VMProxy *proxy;
{
- static int init = 0;
int argc = 1;
gchar *argvArray[] = { (char *) "gst", NULL };
gchar **argv = argvArray;
- if (init)
- return;
-
- init++;
- gtk_init (&argc, &argv);
- if (!g_thread_supported ())
+ initialized = gtk_init_check (&argc, &argv);
+ if (initialized && !g_thread_supported ())
g_thread_init (NULL);
-}
-void
-gst_initModule (proxy)
- VMProxy *proxy;
-{
q_gst_object = g_quark_from_string ("gst_object");
g_type_init ();
g_log_set_handler (NULL,
@@ -964,7 +961,7 @@ gst_initModule (proxy)
my_log_handler, NULL);
_gst_vm_proxy = proxy;
- _gst_vm_proxy->defineCFunc ("gstGtkInit", gst_gtk_init);
+ _gst_vm_proxy->defineCFunc ("gtkInitialized", gst_gtk_initialized);
_gst_vm_proxy->defineCFunc ("gstGtkRegisterForType", register_for_type);
_gst_vm_proxy->defineCFunc ("gstGtkFreeGObjectOOP", free_oop_for_g_object);
_gst_vm_proxy->defineCFunc ("gstGtkNarrowGObjectOOP", narrow_oop_for_g_object);