added RANDR support
This commit is contained in:
parent
a084e737f8
commit
244c63f4b4
3 changed files with 47 additions and 4 deletions
22
configure.in
22
configure.in
|
@ -2,7 +2,7 @@ dnl configure.in for Fluxbox - created from configure.in Blackbox 0.61.1
|
|||
dnl Initialize autoconf and automake
|
||||
AC_INIT(src/main.cc)
|
||||
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
|
||||
test x$prefix = "xNONE" && prefix="$ac_default_prefix"
|
||||
|
@ -104,7 +104,7 @@ AC_ARG_ENABLE(
|
|||
dnl Check for Remember options
|
||||
AC_MSG_CHECKING([whether to include remember functionality])
|
||||
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
|
||||
AC_MSG_RESULT([yes])
|
||||
AC_DEFINE(REMEMBER, 1, " compile with remember")
|
||||
|
@ -325,6 +325,24 @@ AC_ARG_ENABLE(
|
|||
)
|
||||
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
|
||||
|
||||
AC_MSG_CHECKING([whether to build support for the Xinerama extension])
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
// 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"
|
||||
|
||||
|
@ -42,6 +42,7 @@
|
|||
#include "Keys.hh"
|
||||
#include "FbAtoms.hh"
|
||||
|
||||
|
||||
//Use GNU extensions
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
|
@ -71,9 +72,15 @@
|
|||
#include <X11/Xatom.h>
|
||||
#include <X11/keysym.h>
|
||||
#include <X11/cursorfont.h>
|
||||
// X extensions
|
||||
#ifdef SHAPE
|
||||
#include <X11/extensions/shape.h>
|
||||
#endif // SHAPE
|
||||
#ifdef HAVE_RANDR
|
||||
#include <X11/extensions/Xrandr.h>
|
||||
#endif // HAVE_RANDR
|
||||
|
||||
// system headers
|
||||
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
|
@ -410,6 +417,7 @@ Fluxbox::Fluxbox(int argc, char **argv, const char *dpy_name, const char *rcfile
|
|||
m_starting(true),
|
||||
m_shutdown(false),
|
||||
m_server_grabs(0),
|
||||
m_randr_event_type(0),
|
||||
m_RC_PATH("fluxbox"),
|
||||
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;
|
||||
|
||||
#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
|
||||
#ifdef USE_GNOME
|
||||
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
|
||||
addAtomHandler(new Ewmh()); // for Extended window manager atom support
|
||||
#endif // USE_NEWWMSPEC
|
||||
|
||||
#ifdef REMEMBER
|
||||
addAtomHandler(new Remember()); // for remembering window attribs
|
||||
#endif // REMEMBER
|
||||
|
@ -853,6 +868,15 @@ void Fluxbox::handleEvent(XEvent * const e) {
|
|||
handleClientMessage(e->xclient);
|
||||
break;
|
||||
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
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
// 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
|
||||
#define FLUXBOX_HH
|
||||
|
@ -268,6 +268,7 @@ private:
|
|||
bool m_starting;
|
||||
bool m_shutdown;
|
||||
int m_server_grabs;
|
||||
int m_randr_event_type; ///< the type number of randr event
|
||||
const char *m_RC_PATH;
|
||||
const char *m_RC_INIT_FILE;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue