Blame gnome-applets-2.16.0.1-delay-gstreamer-initialization.patch
|
|
80e604c |
--- gnome-applets-2.16.0.1/mixer/load.c.delay-gstreamer-initialization 2006-12-12 15:20:06.000000000 -0500
|
|
|
80e604c |
+++ gnome-applets-2.16.0.1/mixer/load.c 2006-12-12 15:29:08.000000000 -0500
|
|
|
80e604c |
@@ -25,7 +25,7 @@
|
|
|
80e604c |
|
|
|
80e604c |
#include <string.h>
|
|
|
80e604c |
|
|
|
80e604c |
-#include <glib/glist.h>
|
|
|
80e604c |
+#include <glib.h>
|
|
|
80e604c |
#ifdef HAVE_GST10
|
|
|
80e604c |
#include <gst/audio/mixerutils.h>
|
|
|
80e604c |
#else
|
|
|
80e604c |
@@ -293,21 +293,41 @@
|
|
|
80e604c |
#endif
|
|
|
80e604c |
|
|
|
80e604c |
static gboolean
|
|
|
80e604c |
-gnome_volume_applet_factory (PanelApplet *applet,
|
|
|
80e604c |
- const gchar *iid,
|
|
|
80e604c |
- gpointer data)
|
|
|
80e604c |
+gnome_volume_applet_toplevel_configure_handler (GtkWidget *widget,
|
|
|
80e604c |
+ GdkEventConfigure *event,
|
|
|
80e604c |
+ gpointer data)
|
|
|
80e604c |
{
|
|
|
80e604c |
GList *elements;
|
|
|
80e604c |
static gboolean init = FALSE;
|
|
|
80e604c |
|
|
|
80e604c |
+ g_signal_handlers_disconnect_by_func (widget,
|
|
|
80e604c |
+ gnome_volume_applet_toplevel_configure_handler,
|
|
|
80e604c |
+ data);
|
|
|
80e604c |
+
|
|
|
80e604c |
if (!init) {
|
|
|
80e604c |
gst_init (NULL, NULL);
|
|
|
80e604c |
init = TRUE;
|
|
|
80e604c |
}
|
|
|
80e604c |
|
|
|
80e604c |
elements = create_mixer_collection ();
|
|
|
80e604c |
- gnome_volume_applet_setup (GNOME_VOLUME_APPLET (applet), elements);
|
|
|
80e604c |
+ gnome_volume_applet_setup (GNOME_VOLUME_APPLET (data), elements);
|
|
|
80e604c |
+
|
|
|
80e604c |
+ return FALSE;
|
|
|
80e604c |
+}
|
|
|
80e604c |
|
|
|
80e604c |
+static gboolean
|
|
|
80e604c |
+gnome_volume_applet_factory (PanelApplet *applet,
|
|
|
80e604c |
+ const gchar *iid,
|
|
|
80e604c |
+ gpointer data)
|
|
|
80e604c |
+{
|
|
|
80e604c |
+ /* we delay applet specific initialization until the applet
|
|
|
80e604c |
+ * is fully registered with the panel since gst_init() can block
|
|
|
80e604c |
+ * for longer than the service activation timeouts
|
|
|
80e604c |
+ */
|
|
|
80e604c |
+ g_signal_connect (gtk_widget_get_toplevel (GTK_WIDGET (applet)),
|
|
|
80e604c |
+ "configure-event",
|
|
|
80e604c |
+ G_CALLBACK (gnome_volume_applet_toplevel_configure_handler),
|
|
|
80e604c |
+ applet);
|
|
|
80e604c |
return TRUE;
|
|
|
80e604c |
}
|
|
|
80e604c |
|