xserver: Branch 'server-1.7-branch' - 3 commits
Peter Hutterer
whot at kemper.freedesktop.org
Thu Oct 1 21:10:47 PDT 2009
configure.ac | 3 +++
dix/getevents.c | 13 +++++++++++++
hw/xfree86/modes/xf86Rotate.c | 10 +++-------
3 files changed, 19 insertions(+), 7 deletions(-)
New commits:
commit 15b4faff281ad8abce6b32fe2fc855eb6da42476
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Thu Oct 1 21:19:11 2009 +1000
dix: force a minimum of 0 for screen coordinates.
Currently the root coordinates may fall into ]-1..0] if the subpixel
remainder is less than 0. Screen coordinates mustn't go below 0, so use
miPointerSetPosition to cap off the remainder if the coordinates are below
0.
This is cheating a bit, a more comprehensive solution to deal with subpixels
correctly when crossing screens is needed. For now, this'll do.
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
Acked-by: Simon Thum <simon.thum at gmx.de>
(cherry picked from commit 45f447dafded5adfe11b7df3325c2d8f6ae0639b)
diff --git a/dix/getevents.c b/dix/getevents.c
index 5224d31..2df32e8 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -781,6 +781,19 @@ positionSprite(DeviceIntPtr dev, int *x, int *y, float x_frac, float y_frac,
*screeny_frac = dev->last.remainder[1];
}
+ /* Hit the left screen edge? */
+ if (*screenx <= 0 && *screenx_frac < 0.0f)
+ {
+ *screenx_frac = 0.0f;
+ x_frac = 0.0f;
+ }
+ if (*screeny <= 0 && *screeny_frac < 0.0f)
+ {
+ *screeny_frac = 0.0f;
+ y_frac = 0.0f;
+ }
+
+
old_screenx = *screenx;
old_screeny = *screeny;
/* This takes care of crossing screens for us, as well as clipping
commit 3788113618977bdc83e3ec1e7ca3160bad9a0d13
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Fri Oct 2 09:34:24 2009 +1000
configure: if xnest was requested but modules weren't found, fail.
Tested-by: Xavier Chantry <shiningxc at gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
Acked-by: Julien Cristau <jcristau at debian.org>
(cherry picked from commit 64fe5784b49347e1fd27b0c463be5c16557594c9)
diff --git a/configure.ac b/configure.ac
index 9517595..8145c64 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1373,6 +1373,9 @@ AC_MSG_RESULT([$XNEST])
AM_CONDITIONAL(XNEST, [test "x$XNEST" = xyes])
if test "x$XNEST" = xyes; then
+ if test "x$have_xnest" = xno; then
+ AC_MSG_ERROR([Xnest build explicitly requested, but required modules not found.])
+ fi
XNEST_LIBS="$FB_LIB $FIXES_LIB $MI_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $DIX_LIB $MAIN_LIB $OS_LIB $CONFIG_LIB"
XNEST_SYS_LIBS="$XNESTMODULES_LIBS $GLX_SYS_LIBS"
AC_SUBST([XNEST_LIBS])
commit c3034dc3af450802dda156136d9fabbc1cc58836
Author: Dave Airlie <airlied at redhat.com>
Date: Thu Oct 1 15:25:55 2009 +1000
rotate: drop unwrapping inside block handler.
Keith has shown half the block handlers wrappers are wrong, also
dynamic wrapping/unwrapping from what I can see will happen after
the drivers, so its really accidental ABI, that we can't change
now without modifing drivers. So be safe for 1.7.
Signed-off-by: Dave Airlie <airlied at redhat.com>
Declared-as-sane-by: Keith Packard <keithp at keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
(cherry picked from commit 3ebb82d61c2b56e8f7145443a552a4e913bbfc80)
diff --git a/hw/xfree86/modes/xf86Rotate.c b/hw/xfree86/modes/xf86Rotate.c
index 9e65c99..5de6b0c 100644
--- a/hw/xfree86/modes/xf86Rotate.c
+++ b/hw/xfree86/modes/xf86Rotate.c
@@ -268,13 +268,9 @@ xf86RotateBlockHandler(int screenNum, pointer blockData,
rotation_active = xf86RotateRedisplay(pScreen);
pScreen->BlockHandler = xf86_config->BlockHandler;
(*pScreen->BlockHandler) (screenNum, blockData, pTimeout, pReadmask);
- if (rotation_active) {
- /* Re-wrap if rotation is still happening */
- xf86_config->BlockHandler = pScreen->BlockHandler;
- pScreen->BlockHandler = xf86RotateBlockHandler;
- } else {
- xf86_config->BlockHandler = NULL;
- }
+ /* cannot avoid re-wrapping until all wrapping is audited */
+ xf86_config->BlockHandler = pScreen->BlockHandler;
+ pScreen->BlockHandler = xf86RotateBlockHandler;
}
void
More information about the xorg-commit
mailing list