summaryrefslogtreecommitdiffstats
path: root/recipes/gnome/metacity/add-disable-canberra-flag.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/gnome/metacity/add-disable-canberra-flag.patch')
-rw-r--r--recipes/gnome/metacity/add-disable-canberra-flag.patch117
1 files changed, 117 insertions, 0 deletions
diff --git a/recipes/gnome/metacity/add-disable-canberra-flag.patch b/recipes/gnome/metacity/add-disable-canberra-flag.patch
new file mode 100644
index 0000000000..df4a36f3ca
--- /dev/null
+++ b/recipes/gnome/metacity/add-disable-canberra-flag.patch
@@ -0,0 +1,117 @@
+configure.in: add flag to disable canberra
+
+For embedded builds, it'd be nice to be able to disable canberra.
+Canberra is still enabled by default.
+
+Upstream: https://bugzilla.gnome.org/show_bug.cgi?id=634360
+
+--- metacity-2.30.3/config.h.in.orig 2010-11-08 15:41:29.000000000 -0500
++++ metacity-2.30.3/config.h.in 2010-11-08 15:51:54.000000000 -0500
+@@ -15,6 +15,9 @@
+ /* Define to 1 if you have the `bind_textdomain_codeset' function. */
+ #undef HAVE_BIND_TEXTDOMAIN_CODESET
+
++/* Build with canberra support */
++#undef HAVE_CANBERRA
++
+ /* Building with compositing manager support */
+ #undef HAVE_COMPOSITE_EXTENSIONS
+
+--- metacity-2.30.3/configure.in.orig 2010-11-08 15:41:15.000000000 -0500
++++ metacity-2.30.3/configure.in 2010-11-08 15:51:44.000000000 -0500
+@@ -155,7 +155,7 @@
+ ;;
+ esac
+
+-METACITY_PC_MODULES="gtk+-$GTK_API_VERSION >= $GTK_MIN_VERSION pango >= 1.2.0 $CANBERRA_GTK"
++METACITY_PC_MODULES="gtk+-$GTK_API_VERSION >= $GTK_MIN_VERSION pango >= 1.2.0"
+ AC_SUBST(GTK_API_VERSION)
+
+ AC_ARG_ENABLE(gconf,
+@@ -168,6 +168,16 @@
+ METACITY_PC_MODULES="$METACITY_PC_MODULES gconf-2.0 >= 1.2.0"
+ fi
+
++AC_ARG_ENABLE(canberra,
++ AC_HELP_STRING([--disable-canberra],
++ [disable use of canberra for event sounds, for embedded non-GNOME builds]),,
++ enable_canberra=yes)
++
++if test x$enable_canberra = xyes; then
++ AC_DEFINE(HAVE_CANBERRA,1,[Build with canberra support])
++ METACITY_PC_MODULES="$METACITY_PC_MODULES $CANBERRA_GTK"
++fi
++
+ AC_ARG_ENABLE(verbose-mode,
+ AC_HELP_STRING([--disable-verbose-mode],
+ [disable metacity's ability to do verbose logging, for embedded/size-sensitive custom builds]),,
+@@ -596,6 +606,7 @@
+ compiler: ${CC}
+
+ GConf: ${enable_gconf}
++ Canberra: ${enable_canberra}
+ XFree86 Xinerama: ${use_xfree_xinerama}
+ Solaris Xinerama: ${use_solaris_xinerama}
+ Startup notification: ${have_startup_notification}
+--- metacity-2.30.3/src/core/bell.c.orig 2010-09-04 12:09:52.000000000 -0400
++++ metacity-2.30.3/src/core/bell.c 2010-11-08 15:54:47.000000000 -0500
+@@ -52,7 +52,10 @@
+ #include "bell.h"
+ #include "screen-private.h"
+ #include "prefs.h"
++
++#ifdef HAVE_CANBERRA
+ #include <canberra-gtk.h>
++#endif
+
+ /**
+ * Flashes one entire screen. This is done by making a window the size of the
+@@ -284,8 +287,10 @@
+
+ if (meta_prefs_bell_is_audible ())
+ {
+- ca_proplist *p;
+ XkbBellNotifyEvent *xkb_bell_event = (XkbBellNotifyEvent*) xkb_ev;
++
++#ifdef HAVE_CANBERRA
++ ca_proplist *p;
+ MetaWindow *window;
+ int res;
+
+@@ -312,6 +317,9 @@
+ ca_proplist_destroy (p);
+
+ if (res != CA_SUCCESS && res != CA_ERROR_DISABLED)
++#else
++ if (1)
++#endif /* HAVE_CANBERRA */
+ {
+ /* ...and in case that failed we use the classic X11 bell. */
+ XkbForceDeviceBell (display->xdisplay,
+--- metacity-2.30.3/src/core/workspace.c.orig 2010-09-04 12:09:53.000000000 -0400
++++ metacity-2.30.3/src/core/workspace.c 2010-11-08 15:50:52.000000000 -0500
+@@ -29,7 +29,10 @@
+ #include "prefs.h"
+ #include <X11/Xatom.h>
+ #include <string.h>
++
++#ifdef HAVE_CANBERRA
+ #include <canberra-gtk.h>
++#endif
+
+ void meta_workspace_queue_calc_showing (MetaWorkspace *workspace);
+ static void set_active_space_hint (MetaScreen *screen);
+@@ -355,11 +358,13 @@
+ goto finish;
+ }
+
++#ifdef HAVE_CANBERRA
+ ca_context_play(ca_gtk_context_get(), 1,
+ CA_PROP_EVENT_ID, e,
+ CA_PROP_EVENT_DESCRIPTION, "Desktop switched",
+ CA_PROP_CANBERRA_CACHE_CONTROL, "permanent",
+ NULL);
++#endif
+
+ finish:
+ meta_screen_free_workspace_layout (&layout);