[cheese] keybindings: add configure checks for needed X11 stuff



commit 129f92e36b3a3e4a87e5719c89e56d12fd529383
Author: Filippo Argiolas <filippo argiolas gmail com>
Date:   Sun Jun 21 11:11:17 2009 +0200

    keybindings: add configure checks for needed X11 stuff
    
    Check for XF86keysym.h availability and add a configure option to
    disable Webcam Button listening. Copied from rhythmbox.

 configure.ac        |   27 +++++++++++++++++++++++++++
 src/cheese-window.c |    6 ++++++
 2 files changed, 33 insertions(+), 0 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 3e6171f..4e3c7e4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -105,6 +105,33 @@ fi
 
 AM_CONDITIONAL(WITH_HILDON, test "x$enable_hildon" = "xyes")
 
+dnl Multimedia keys
+have_xfree=no
+AC_COMPILE_IFELSE([
+	#include <X11/XF86keysym.h>
+        int main(int argc,char **argv) {
+          return 0;
+        }
+], have_xfree=yes)
+AC_MSG_CHECKING(for XFree86 headers)
+AC_MSG_RESULT($have_xfree)
+if test x"$have_xfree" = "xyes" ; then
+	AC_DEFINE(HAVE_XFREE, 1, [defined if you have X11/XF86keysym.h])
+fi
+
+AC_ARG_ENABLE(mmkeys, AC_HELP_STRING([--disable-mmkeys],
+					[don't build with Multimedia Keys support]))
+if test x"$have_xfree" = xyes; then
+	if test x"$enable_mmkeys" != xno; then
+		enable_mmkeys=yes
+		AC_DEFINE(HAVE_MMKEYS, 1, [define if Multimedia Keys are enabled])
+	fi
+else
+	if test x"$enable_mmkeys" = xyes; then
+		AC_MSG_ERROR([Multimedia keys explicitly requested but no support found])
+	fi
+fi
+
 AC_PATH_PROG(GCONFTOOL, gconftool-2)
 AM_GCONF_SOURCE_2
 
diff --git a/src/cheese-window.c b/src/cheese-window.c
index d922e5e..173d280 100644
--- a/src/cheese-window.c
+++ b/src/cheese-window.c
@@ -39,7 +39,9 @@
 #include <gtk/gtk.h>
 #include <libebook/e-book.h>
 
+#ifdef HAVE_MMKEYS
 #include <X11/XF86keysym.h>
+#endif /* HAVE_MMKEYS */
 
 #ifdef HILDON
   #include <hildon/hildon-program.h>
@@ -267,6 +269,9 @@ cheese_window_delete_event_cb (GtkWidget *widget, GdkEvent event, gpointer data)
 static gboolean
 cheese_window_key_press_event_cb (GtkWidget *win, GdkEventKey *event, CheeseWindow *cheese_window)
 {
+#ifndef HAVE_MMKEYS
+  return FALSE;
+#else
   /* If we have modifiers, and either Ctrl, Mod1 (Alt), or any
    * of Mod3 to Mod5 (Mod2 is num-lock...) are pressed, we
    * let Gtk+ handle the key */
@@ -286,6 +291,7 @@ cheese_window_key_press_event_cb (GtkWidget *win, GdkEventKey *event, CheeseWind
   }
 
   return FALSE;
+#endif /* !HAVE_MMKEYS */
 }
 
 static void



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]