diff --git a/configure.in b/configure.in index 764fd5c66..bcfca1cb9 100644 --- a/configure.in +++ b/configure.in @@ -212,60 +212,31 @@ AC_PATH_XTRA ALL_X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS" -# Check for Xinerama extension (Solaris impl or Xfree impl) +# Check for Xinerama extension - we only support the "XFree86" style, +# and not the older Solaris-only version; recent Solaris supports the +# XFree86 style. mutter_save_cppflags="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $X_CFLAGS" -AC_ARG_ENABLE(xinerama, - AC_HELP_STRING([--disable-xinerama], - [disable mutter's use of the Xinerama extension]), - try_xinerama=$enable_xinerama,try_xinerama=yes) - -use_solaris_xinerama=no -use_xfree_xinerama=no -if test "${try_xinerama}" != no; then - case "$host" in - *-*-solaris*) - # Check for solaris - use_solaris_xinerama=yes - AC_CHECK_LIB(Xext, XineramaGetInfo, - use_solaris_xinerama=yes, use_solaris_xinerama=no, - $ALL_X_LIBS) - if test "x$use_solaris_xinerama" = "xyes"; then - AC_CHECK_HEADER(X11/extensions/xinerama.h, - if test -z "`echo $ALL_X_LIBS | grep "\-lXext" 2> /dev/null`"; then - X_EXTRA_LIBS="-lXext $X_EXTRA_LIBS" - fi - AC_DEFINE(HAVE_SOLARIS_XINERAMA, , [Have Solaris-style Xinerama]) - AC_DEFINE(HAVE_XINERAMA, , [Have some version of Xinerama]), - use_solaris_xinerama=no, - [#include ]) - fi - AC_MSG_CHECKING(for Xinerama support on Solaris) - AC_MSG_RESULT($use_solaris_xinerama); - ;; - *) - # Check for XFree - use_xfree_xinerama=yes - AC_CHECK_LIB(Xinerama, XineramaQueryExtension, - [AC_CHECK_HEADER(X11/extensions/Xinerama.h, - X_EXTRA_LIBS="-lXinerama $X_EXTRA_LIBS" - if test -z "`echo $ALL_X_LIBS | grep "\-lXext" 2> /dev/null`"; then - X_EXTRA_LIBS="-lXext $X_EXTRA_LIBS" - fi - AC_DEFINE(HAVE_XFREE_XINERAMA, , [Have XFree86-style Xinerama]) - AC_DEFINE(HAVE_XINERAMA,, [Have some version of Xinerama]), - use_xfree_xinerama=no, - [#include ])], - use_xfree_xinerama=no, -lXext $ALL_X_LIBS) - AC_MSG_CHECKING(for Xinerama support on XFree86) - AC_MSG_RESULT($use_xfree_xinerama); - ;; - esac -fi +have_xinerama=yes +AC_CHECK_LIB(Xinerama, XineramaQueryExtension, + [AC_CHECK_HEADER(X11/extensions/Xinerama.h, + [X_EXTRA_LIBS="-lXinerama $X_EXTRA_LIBS" + if test -z "`echo $ALL_X_LIBS | grep "\-lXext" 2> /dev/null`"; then + X_EXTRA_LIBS="-lXext $X_EXTRA_LIBS" + fi], + have_xinerama=no, + [#include ])], + have_xinerama=no, -lXext $ALL_X_LIBS) +AC_MSG_CHECKING(for Xinerama support) +AC_MSG_RESULT($have_xinerama) CPPFLAGS="$mutter_save_cppflags" +if test x$have_xinerama = xno; then + AC_MSG_ERROR([Xinerama extension was not found]) +fi + SHAPE_LIBS= found_shape=no AC_CHECK_LIB(Xext, XShapeQueryExtension, @@ -496,8 +467,6 @@ mutter-$VERSION source code location: ${srcdir} compiler: ${CC} - XFree86 Xinerama: ${use_xfree_xinerama} - Solaris Xinerama: ${use_solaris_xinerama} Startup notification: ${have_startup_notification} libcanberra: ${have_libcanberra} Introspection: ${found_introspection} diff --git a/src/core/display.c b/src/core/display.c index c4e93c39f..46f92b2cc 100644 --- a/src/core/display.c +++ b/src/core/display.c @@ -54,12 +54,6 @@ #include #include "mutter-enum-types.h" -#ifdef HAVE_SOLARIS_XINERAMA -#include -#endif -#ifdef HAVE_XFREE_XINERAMA -#include -#endif #ifdef HAVE_RANDR #include #endif diff --git a/src/core/main.c b/src/core/main.c index fdf43578a..8718319fe 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -129,21 +129,6 @@ meta_print_compilation_info (void) #else meta_verbose ("Compiled without shape extension\n"); #endif -#ifdef HAVE_XINERAMA - meta_topic (META_DEBUG_XINERAMA, "Compiled with Xinerama extension\n"); -#else - meta_topic (META_DEBUG_XINERAMA, "Compiled without Xinerama extension\n"); -#endif -#ifdef HAVE_XFREE_XINERAMA - meta_topic (META_DEBUG_XINERAMA, " (using XFree86 Xinerama)\n"); -#else - meta_topic (META_DEBUG_XINERAMA, " (not using XFree86 Xinerama)\n"); -#endif -#ifdef HAVE_SOLARIS_XINERAMA - meta_topic (META_DEBUG_XINERAMA, " (using Solaris Xinerama)\n"); -#else - meta_topic (META_DEBUG_XINERAMA, " (not using Solaris Xinerama)\n"); -#endif #ifdef HAVE_XSYNC meta_verbose ("Compiled with sync extension\n"); #else diff --git a/src/core/screen.c b/src/core/screen.c index 2df32b320..536fd19ea 100644 --- a/src/core/screen.c +++ b/src/core/screen.c @@ -41,12 +41,8 @@ #include #include "mutter-enum-types.h" -#ifdef HAVE_SOLARIS_XINERAMA -#include -#endif -#ifdef HAVE_XFREE_XINERAMA #include -#endif + #ifdef HAVE_RANDR #include #endif @@ -478,7 +474,6 @@ reload_monitor_infos (MetaScreen *screen) screen->monitor_infos[1].rect.width = screen->rect.width / 2; } -#ifdef HAVE_XFREE_XINERAMA if (screen->n_monitor_infos == 0 && XineramaIsActive (display->xdisplay)) { @@ -548,74 +543,10 @@ reload_monitor_infos (MetaScreen *screen) else if (screen->n_monitor_infos > 0) { meta_topic (META_DEBUG_XINERAMA, - "No XFree86 Xinerama extension or XFree86 Xinerama inactive on display %s\n", + "No Xinerama extension or Xinerama inactive on display %s\n", display->name); } -#else - meta_topic (META_DEBUG_XINERAMA, - "Mutter compiled without XFree86 Xinerama support\n"); -#endif /* HAVE_XFREE_XINERAMA */ -#ifdef HAVE_SOLARIS_XINERAMA - /* This code from GDK, Copyright (C) 2002 Sun Microsystems */ - if (screen->n_monitor_infos == 0 && - XineramaGetState (screen->display->xdisplay, - screen->number)) - { - XRectangle monitors[MAXFRAMEBUFFERS]; - unsigned char hints[16]; - int result; - int n_monitors; - int i; - - n_monitors = 0; - result = XineramaGetInfo (screen->display->xdisplay, - screen->number, - monitors, hints, - &n_monitors); - /* Yes I know it should be Success but the current implementation - * returns the num of monitor - */ - if (result > 0) - { - g_assert (n_monitors > 0); - - screen->monitor_infos = g_new0 (MetaMonitorInfo, n_monitors); - screen->n_monitor_infos = n_monitors; - - i = 0; - while (i < n_monitors) - { - screen->monitor_infos[i].number = i; - screen->monitor_infos[i].rect.x = monitors[i].x; - screen->monitor_infos[i].rect.y = monitors[i].y; - screen->monitor_infos[i].rect.width = monitors[i].width; - screen->monitor_infos[i].rect.height = monitors[i].height; - - meta_topic (META_DEBUG_XINERAMA, - "Monitor %d is %d,%d %d x %d\n", - screen->monitor_infos[i].number, - screen->monitor_infos[i].rect.x, - screen->monitor_infos[i].rect.y, - screen->monitor_infos[i].rect.width, - screen->monitor_infos[i].rect.height); - - ++i; - } - } - } - else if (screen->n_monitor_infos == 0) - { - meta_topic (META_DEBUG_XINERAMA, - "No Solaris Xinerama extension or Solaris Xinerama inactive on display %s\n", - display->name); - } -#else - meta_topic (META_DEBUG_XINERAMA, - "Mutter compiled without Solaris Xinerama support\n"); -#endif /* HAVE_SOLARIS_XINERAMA */ - - /* If no Xinerama, fill in the single screen info so * we can use the field unconditionally */