added RANDR support
fluxgen fluxgen
3 files changed,
47 insertions(+),
4 deletions(-)
M
configure.in
→
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 @@
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")@@ -324,6 +324,24 @@ AC_DEFINE(USE_XMB, 1, "multibyte support")
MULTIBYTE=true ) 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
M
src/fluxbox.cc
→
src/fluxbox.cc
@@ -22,7 +22,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// 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"@@ -41,6 +41,7 @@ #include "FbCommands.hh"
#include "WinClient.hh" #include "Keys.hh" #include "FbAtoms.hh" + //Use GNU extensions #ifndef _GNU_SOURCE@@ -71,9 +72,15 @@ #include <X11/Xresource.h>
#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 @@ m_argv(argv), m_argc(argc),
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 @@ cursor.lr_angle = XCreateFontCursor(disp, XC_lr_angle);
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 @@
#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 @@ case ClientMessage:
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 + } }
M
src/fluxbox.hh
→
src/fluxbox.hh
@@ -22,7 +22,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// 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 @@ std::vector<AtomHandler *> m_atomhandler;
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; };