added RANDR support

This commit is contained in:
fluxgen 2003-05-12 04:23:31 +00:00
parent a084e737f8
commit 244c63f4b4
3 changed files with 47 additions and 4 deletions

View file

@ -2,7 +2,7 @@ dnl configure.in for Fluxbox - created from configure.in Blackbox 0.61.1
dnl Initialize autoconf and automake dnl Initialize autoconf and automake
AC_INIT(src/main.cc) AC_INIT(src/main.cc)
AC_PREREQ(2.52) AC_PREREQ(2.52)
AM_INIT_AUTOMAKE(fluxbox,0.9.2,no-define) AM_INIT_AUTOMAKE(fluxbox,0.9.3,no-define)
dnl Determine default prefix dnl Determine default prefix
test x$prefix = "xNONE" && prefix="$ac_default_prefix" test x$prefix = "xNONE" && prefix="$ac_default_prefix"
@ -104,7 +104,7 @@ AC_ARG_ENABLE(
dnl Check for Remember options dnl Check for Remember options
AC_MSG_CHECKING([whether to include remember functionality]) AC_MSG_CHECKING([whether to include remember functionality])
AC_ARG_ENABLE( AC_ARG_ENABLE(
remember, [ --enable-remember include code for Remembering attributes [default=yes]], remember, [ --enable-remember include code for Remembering attributes [default=yes]],
if test x$enableval = "xyes"; then if test x$enableval = "xyes"; then
AC_MSG_RESULT([yes]) AC_MSG_RESULT([yes])
AC_DEFINE(REMEMBER, 1, " compile with remember") AC_DEFINE(REMEMBER, 1, " compile with remember")
@ -325,6 +325,24 @@ AC_ARG_ENABLE(
) )
AM_CONDITIONAL(MULTIBYTE, test x$MULTIBYTE = xtrue) AM_CONDITIONAL(MULTIBYTE, test x$MULTIBYTE = xtrue)
AC_MSG_CHECKING([whether to have RANDR (The X Resize and Rotate Extension) support])
AC_ARG_ENABLE(
randr,
[ --enable-randr RANDR (The X Resize and Rotate Extension) support [default=yes]],
if test x$enableval = "xyes"; then
AC_MSG_RESULT([yes])
AC_CHECK_LIB(Xrandr, XRRQueryExtension,
AC_DEFINE(HAVE_RANDR, 1, "randr support")
LIBS="$LIBS -lXrandr")
else
AC_MSG_RESULT([no])
fi,
AC_MSG_RESULT([yes])
AC_CHECK_LIB(Xrandr, XRRQueryExtension,
AC_DEFINE(HAVE_RANDR, 1, "randr support")
LIBS="$LIBS -lXrandr")
)
dnl Check for Xinerama support dnl Check for Xinerama support
AC_MSG_CHECKING([whether to build support for the Xinerama extension]) AC_MSG_CHECKING([whether to build support for the Xinerama extension])

View file

@ -22,7 +22,7 @@
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE. // DEALINGS IN THE SOFTWARE.
// $Id: fluxbox.cc,v 1.139 2003/05/11 23:44:09 rathnor Exp $ // $Id: fluxbox.cc,v 1.140 2003/05/12 04:23:31 fluxgen Exp $
#include "fluxbox.hh" #include "fluxbox.hh"
@ -42,6 +42,7 @@
#include "Keys.hh" #include "Keys.hh"
#include "FbAtoms.hh" #include "FbAtoms.hh"
//Use GNU extensions //Use GNU extensions
#ifndef _GNU_SOURCE #ifndef _GNU_SOURCE
#define _GNU_SOURCE #define _GNU_SOURCE
@ -71,9 +72,15 @@
#include <X11/Xatom.h> #include <X11/Xatom.h>
#include <X11/keysym.h> #include <X11/keysym.h>
#include <X11/cursorfont.h> #include <X11/cursorfont.h>
// X extensions
#ifdef SHAPE #ifdef SHAPE
#include <X11/extensions/shape.h> #include <X11/extensions/shape.h>
#endif // SHAPE #endif // SHAPE
#ifdef HAVE_RANDR
#include <X11/extensions/Xrandr.h>
#endif // HAVE_RANDR
// system headers
#include <cstdio> #include <cstdio>
#include <cstdlib> #include <cstdlib>
@ -410,6 +417,7 @@ Fluxbox::Fluxbox(int argc, char **argv, const char *dpy_name, const char *rcfile
m_starting(true), m_starting(true),
m_shutdown(false), m_shutdown(false),
m_server_grabs(0), m_server_grabs(0),
m_randr_event_type(0),
m_RC_PATH("fluxbox"), m_RC_PATH("fluxbox"),
m_RC_INIT_FILE("init") { m_RC_INIT_FILE("init") {
@ -442,6 +450,12 @@ Fluxbox::Fluxbox(int argc, char **argv, const char *dpy_name, const char *rcfile
s_singleton = this; s_singleton = this;
#ifdef HAVE_RANDR
// get randr event type
int error_base;
XRRQueryExtension(disp, &m_randr_event_type, &error_base);
#endif // HAVE_RANDR
// setup atom handlers before we create any windows // setup atom handlers before we create any windows
#ifdef USE_GNOME #ifdef USE_GNOME
addAtomHandler(new Gnome()); // for gnome 1 atom support addAtomHandler(new Gnome()); // for gnome 1 atom support
@ -450,6 +464,7 @@ Fluxbox::Fluxbox(int argc, char **argv, const char *dpy_name, const char *rcfile
#ifdef USE_NEWWMSPEC #ifdef USE_NEWWMSPEC
addAtomHandler(new Ewmh()); // for Extended window manager atom support addAtomHandler(new Ewmh()); // for Extended window manager atom support
#endif // USE_NEWWMSPEC #endif // USE_NEWWMSPEC
#ifdef REMEMBER #ifdef REMEMBER
addAtomHandler(new Remember()); // for remembering window attribs addAtomHandler(new Remember()); // for remembering window attribs
#endif // REMEMBER #endif // REMEMBER
@ -853,6 +868,15 @@ void Fluxbox::handleEvent(XEvent * const e) {
handleClientMessage(e->xclient); handleClientMessage(e->xclient);
break; break;
default: { default: {
#ifdef HAVE_RANDR
if (e->type == m_randr_event_type) {
// update root window size in screen
BScreen *scr = searchScreen(e->xany.window);
if (scr != 0)
scr->updateSize();
}
#endif // HAVE_RANDR
} }
} }

View file

@ -22,7 +22,7 @@
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE. // DEALINGS IN THE SOFTWARE.
// $Id: fluxbox.hh,v 1.56 2003/05/11 22:18:33 fluxgen Exp $ // $Id: fluxbox.hh,v 1.57 2003/05/12 04:23:31 fluxgen Exp $
#ifndef FLUXBOX_HH #ifndef FLUXBOX_HH
#define FLUXBOX_HH #define FLUXBOX_HH
@ -268,6 +268,7 @@ private:
bool m_starting; bool m_starting;
bool m_shutdown; bool m_shutdown;
int m_server_grabs; int m_server_grabs;
int m_randr_event_type; ///< the type number of randr event
const char *m_RC_PATH; const char *m_RC_PATH;
const char *m_RC_INIT_FILE; const char *m_RC_INIT_FILE;
}; };