summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Müller <ulm@gentoo.org>2009-03-28 18:25:12 +0000
committerUlrich Müller <ulm@gentoo.org>2009-03-28 18:25:12 +0000
commit1ca6bb60bc3fbfc5dbcd5aa62fbaba5a1d69716b (patch)
tree8d9a1abf7566ccfa93b64169729ef55bb6e22774 /media-libs/libcanberra/files
parentPassing LDFLAGS to C linker via -cclib. Bug #239574 (diff)
downloadgentoo-2-1ca6bb60bc3fbfc5dbcd5aa62fbaba5a1d69716b.tar.gz
gentoo-2-1ca6bb60bc3fbfc5dbcd5aa62fbaba5a1d69716b.tar.bz2
gentoo-2-1ca6bb60bc3fbfc5dbcd5aa62fbaba5a1d69716b.zip
Add patch from upstream, fixes bug 259891. Remove old.
(Portage version: 2.2_rc27/cvs/Linux i686)
Diffstat (limited to 'media-libs/libcanberra/files')
-rw-r--r--media-libs/libcanberra/files/libcanberra-0.11-dont-crash-without-display.patch77
1 files changed, 77 insertions, 0 deletions
diff --git a/media-libs/libcanberra/files/libcanberra-0.11-dont-crash-without-display.patch b/media-libs/libcanberra/files/libcanberra-0.11-dont-crash-without-display.patch
new file mode 100644
index 000000000000..856a9181f63f
--- /dev/null
+++ b/media-libs/libcanberra/files/libcanberra-0.11-dont-crash-without-display.patch
@@ -0,0 +1,77 @@
+From: Lennart Poettering <lennart@poettering.net>
+Date: Mon, 23 Mar 2009 20:55:36 +0000 (+0100)
+Subject: don't crash if there is no default display on initialization. Fixes #20693
+X-Git-Url: http://git.0pointer.de/?p=libcanberra.git;a=commitdiff_plain;h=ac5ac9e486aa33f7be0cd9ddd315c03780676795
+
+don't crash if there is no default display on initialization. Fixes #20693
+---
+
+diff --git a/src/canberra-gtk-module.c b/src/canberra-gtk-module.c
+index b9d8ae0..302eeb4 100644
+--- a/src/canberra-gtk-module.c
++++ b/src/canberra-gtk-module.c
+@@ -647,11 +647,15 @@ static gboolean idle_cb(void *userdata) {
+ return FALSE;
+ }
+
++static void connect_settings(void);
++
+ static gboolean emission_hook_cb(GSignalInvocationHint *hint, guint n_param_values, const GValue *param_values, gpointer data) {
+ static SoundEventData *d = NULL;
+ GdkEvent *e;
+ GObject *object;
+
++ connect_settings();
++
+ if (disabled)
+ return TRUE;
+
+@@ -719,15 +723,15 @@ static void enable_input_feedback_sounds_changed(GtkSettings *s, GParamSpec *arg
+ read_enable_input_feedback_sounds(s);
+ }
+
+-G_MODULE_EXPORT void gtk_module_init(gint *argc, gchar ***argv[]) {
++static void connect_settings(void) {
+ GtkSettings *s;
++ static gboolean connected = FALSE;
+
+- /* This is the same quark libgnomeui uses! */
+- disable_sound_quark = g_quark_from_string("gnome_disable_sound_events");
+- was_hidden_quark = g_quark_from_string("canberra_was_hidden");
++ if (connected)
++ return;
+
+- /* Hook up the gtk setting */
+- s = gtk_settings_get_default();
++ if (!(s = gtk_settings_get_default()))
++ return;
+
+ if (g_object_class_find_property(G_OBJECT_GET_CLASS(s), "gtk-enable-input-feedback-sounds")) {
+ g_signal_connect(G_OBJECT(s), "notify::gtk-enable-input-feedback-sounds", G_CALLBACK(enable_input_feedback_sounds_changed), NULL);
+@@ -735,6 +739,18 @@ G_MODULE_EXPORT void gtk_module_init(gint *argc, gchar ***argv[]) {
+ } else
+ g_debug("This Gtk+ version doesn't have the GtkSettings::gtk-enable-input-feedback-sounds property.");
+
++ connected = TRUE;
++}
++
++G_MODULE_EXPORT void gtk_module_init(gint *argc, gchar ***argv[]) {
++
++ /* This is the same quark libgnomeui uses! */
++ disable_sound_quark = g_quark_from_string("gnome_disable_sound_events");
++ was_hidden_quark = g_quark_from_string("canberra_was_hidden");
++
++ /* Hook up the gtk setting */
++ connect_settings();
++
+ install_hook(GTK_TYPE_WINDOW, "show", &signal_id_widget_show);
+ install_hook(GTK_TYPE_WINDOW, "hide", &signal_id_widget_hide);
+ install_hook(GTK_TYPE_DIALOG, "response", &signal_id_dialog_response);
+@@ -749,7 +765,6 @@ G_MODULE_EXPORT void gtk_module_init(gint *argc, gchar ***argv[]) {
+ install_hook(GTK_TYPE_ICON_VIEW, "selection-changed", &signal_id_icon_view_selection_changed);
+ }
+
+-
+ G_MODULE_EXPORT gchar* g_module_check_init(GModule *module);
+
+ G_MODULE_EXPORT gchar* g_module_check_init(GModule *module) {