diff options
| author | Dana Jansens <danakj@orodu.net> | 2007-06-19 21:52:44 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2007-06-19 21:52:44 +0000 |
| commit | ad4def8e521c449628f6e69b13a7eca63b152793 (patch) | |
| tree | d9018fc95e9fe2a6b96cd6c7d02ebde48ff3a455 | |
| parent | 85c15cf7b6f66729695609339b21b16649ee92c8 (diff) | |
check for damage and render extensions if going to use composite. require them for it. also include the cflags/libs. and only run the xcomposite stuff so far when the server supports it
| -rw-r--r-- | Makefile.am | 6 | ||||
| -rw-r--r-- | configure.ac | 30 | ||||
| -rw-r--r-- | openbox/extensions.h | 5 | ||||
| -rw-r--r-- | openbox/screen.c | 10 |
4 files changed, 42 insertions, 9 deletions
diff --git a/Makefile.am b/Makefile.am index 6fa3a8e6..73a05eee 100644 --- a/Makefile.am +++ b/Makefile.am @@ -118,6 +118,9 @@ openbox_openbox_CPPFLAGS = \ $(XRANDR_CFLAGS) \ $(XSHAPE_CFLAGS) \ $(XSYNC_CFLAGS) \ + $(XRENDER_CFLAGS) \ + $(XDAMAGE_CFLAGS) \ + $(XCOMPOSITE_CFLAGS) \ $(X_CFLAGS) \ $(XCURSOR_CFLAGS) \ $(SM_CFLAGS) \ @@ -137,6 +140,9 @@ openbox_openbox_LDADD = \ $(XSHAPE_LIBS) \ $(XSYNC_LIBS) \ $(GLIB_LIBS) \ + $(XRENDER_LIBS) \ + $(XDAMAGE_LIBS) \ + $(XCOMPOSITE_LIBS) \ $(X_LIBS) \ $(XCURSOR_LIBS) \ $(LIBSN_LIBS) \ diff --git a/configure.ac b/configure.ac index e62f1be3..795b7742 100644 --- a/configure.ac +++ b/configure.ac @@ -146,12 +146,32 @@ AC_ARG_ENABLE(xcomposite, ) if test "$enable_xcomposite" = yes; then -PKG_CHECK_MODULES(XCOMPOSITE, [xcomposite], +PKG_CHECK_MODULES(XRENDER, [xrender], [ - AC_DEFINE(USE_XCOMPOSITE, [1], [Use X Composite library]) - AC_SUBST(XCOMPOSITE_CFLAGS) - AC_SUBST(XCOMPOSITE_LIBS) - xcomposite_found=yes + AC_DEFINE(USE_XRENDER, [1], [Use X Render library]) + AC_SUBST(XRENDER_CFLAGS) + AC_SUBST(XRENDER_LIBS) + PKG_CHECK_MODULES(XDAMAGE, [xdamage], + [ + AC_DEFINE(USE_XDAMAGE, [1], [Use X Damage library]) + AC_SUBST(XDAMAGE_CFLAGS) + AC_SUBST(XDAMAGE_LIBS) + PKG_CHECK_MODULES(XCOMPOSITE, [xcomposite], + [ + AC_DEFINE(USE_XCOMPOSITE, [1], [Use X Composite library]) + AC_SUBST(XCOMPOSITE_CFLAGS) + AC_SUBST(XCOMPOSITE_LIBS) + xcomposite_found=yes + ], + [ + xcomposite_found=no + ] + ) + ], + [ + xcomposite_found=no + ] + ) ], [ xcomposite_found=no diff --git a/openbox/extensions.h b/openbox/extensions.h index 6a488a19..e1070e86 100644 --- a/openbox/extensions.h +++ b/openbox/extensions.h @@ -39,6 +39,11 @@ #ifdef SYNC #include <X11/extensions/sync.h> #endif +#ifdef USE_XCOMPOSITE +#include <X11/extensions/Xcomposite.h> +#include <X11/extensions/Xdamage.h> +#include <X11/extensions/Xrender.h> +#endif #include <glib.h> diff --git a/openbox/screen.c b/openbox/screen.c index d5a51941..1ef08075 100644 --- a/openbox/screen.c +++ b/openbox/screen.c @@ -365,10 +365,12 @@ void screen_startup(gboolean reconfig) } #ifdef USE_XCOMPOSITE - /* Redirect window contents to offscreen pixmaps */ - XCompositeRedirectSubwindows(ob_display, - RootWindow(ob_display, ob_screen), - CompositeRedirectAutomatic); + if (extensions_comp) { + /* Redirect window contents to offscreen pixmaps */ + XCompositeRedirectSubwindows(ob_display, + RootWindow(ob_display, ob_screen), + CompositeRedirectAutomatic); + } #endif /* get the initial size */ |
