update to xf86-input-vmmouse 12.6.4

This commit is contained in:
matthieu 2009-05-18 20:53:43 +00:00
parent 224dd37703
commit 29dfc1a9fe
7 changed files with 76 additions and 34 deletions

View File

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.62 for xf86-input-vmmouse 12.6.3.
# Generated by GNU Autoconf 2.62 for xf86-input-vmmouse 12.6.4.
#
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
#
@ -750,8 +750,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='xf86-input-vmmouse'
PACKAGE_TARNAME='xf86-input-vmmouse'
PACKAGE_VERSION='12.6.3'
PACKAGE_STRING='xf86-input-vmmouse 12.6.3'
PACKAGE_VERSION='12.6.4'
PACKAGE_STRING='xf86-input-vmmouse 12.6.4'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
ac_unique_file="Makefile.am"
@ -1507,7 +1507,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures xf86-input-vmmouse 12.6.3 to adapt to many kinds of systems.
\`configure' configures xf86-input-vmmouse 12.6.4 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1578,7 +1578,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of xf86-input-vmmouse 12.6.3:";;
short | recursive ) echo "Configuration of xf86-input-vmmouse 12.6.4:";;
esac
cat <<\_ACEOF
@ -1701,7 +1701,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
xf86-input-vmmouse configure 12.6.3
xf86-input-vmmouse configure 12.6.4
generated by GNU Autoconf 2.62
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@ -1715,7 +1715,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by xf86-input-vmmouse $as_me 12.6.3, which was
It was created by xf86-input-vmmouse $as_me 12.6.4, which was
generated by GNU Autoconf 2.62. Invocation command line was
$ $0 $@
@ -2366,7 +2366,7 @@ fi
# Define the identity of the package.
PACKAGE='xf86-input-vmmouse'
VERSION='12.6.3'
VERSION='12.6.4'
cat >>confdefs.h <<_ACEOF
@ -20759,7 +20759,7 @@ inputdir=${moduledir}/input
# Check whether --with-hal_bin_dir was given.
# Check whether --with-hal-bin-dir was given.
if test "${with_hal_bin_dir+set}" = set; then
withval=$with_hal_bin_dir; halbindir="$withval"
else
@ -20770,7 +20770,7 @@ HAL_BIN_DIR=${halbindir}
# Check whether --with-hal_callouts_dir was given.
# Check whether --with-hal-callouts-dir was given.
if test "${with_hal_callouts_dir+set}" = set; then
withval=$with_hal_callouts_dir; halcalloutsdir="$withval"
else
@ -20781,7 +20781,7 @@ HAL_CALLOUTS_DIR=${halcalloutsdir}
# Check whether --with-hal_fdi_dir was given.
# Check whether --with-hal-fdi-dir was given.
if test "${with_hal_fdi_dir+set}" = set; then
withval=$with_hal_fdi_dir; halfdidir="$withval"
else
@ -21935,7 +21935,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by xf86-input-vmmouse $as_me 12.6.3, which was
This file was extended by xf86-input-vmmouse $as_me 12.6.4, which was
generated by GNU Autoconf 2.62. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -21988,7 +21988,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
xf86-input-vmmouse config.status 12.6.3
xf86-input-vmmouse config.status 12.6.4
configured by $0, generated by GNU Autoconf 2.62,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"

View File

@ -22,7 +22,7 @@
AC_PREREQ(2.57)
AC_INIT([xf86-input-vmmouse],
12.6.3,
12.6.4,
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
xf86-input-vmmouse)
@ -70,7 +70,7 @@ AC_ARG_WITH(xorg-module-dir,
inputdir=${moduledir}/input
AC_SUBST(inputdir)
AC_ARG_WITH(hal_bin_dir,
AC_ARG_WITH(hal-bin-dir,
AC_HELP_STRING([--with-hal-bin-dir=DIR],
[Directory where HAL binaries where installed [[default=$bindir]]]),
[halbindir="$withval"],
@ -78,7 +78,7 @@ AC_ARG_WITH(hal_bin_dir,
HAL_BIN_DIR=${halbindir}
AC_SUBST(HAL_BIN_DIR)
AC_ARG_WITH(hal_callouts_dir,
AC_ARG_WITH(hal-callouts-dir,
AC_HELP_STRING([--with-hal-callouts-dir=DIR],
[Directory where HAL expects its callout scripts to be located
[[default=$libdir/hal]]]),
@ -87,7 +87,7 @@ AC_ARG_WITH(hal_callouts_dir,
HAL_CALLOUTS_DIR=${halcalloutsdir}
AC_SUBST(HAL_CALLOUTS_DIR)
AC_ARG_WITH(hal_fdi_dir,
AC_ARG_WITH(hal-fdi-dir,
AC_HELP_STRING([--with-hal-fdi-dir=DIR],
[Directory where HAL expects its fdi files to be located
[[default=$datadir/hal/fdi/policy/20thirdparty]]]),

View File

@ -41,7 +41,7 @@ See the
.B mouse(__drivermansuffix__)
man page for details on these options.
.SH "SEE ALSO"
__xservername__(1), __xconfigfile__(__filemansuffix__), xorgconfig(1), Xserver(1), X(__miscmansuffix__),
__xservername__(1), __xconfigfile__(__filemansuffix__), Xserver(1), X(__miscmansuffix__),
mouse(__drivermansuffix__)
.SH AUTHORS
Copyright (c) 1999-2007 VMware, Inc.

View File

@ -56,6 +56,12 @@
*/
#define VMMOUSE_ERROR 0xffff0000
/*
* VMMouse Input packet flags
*/
#define VMMOUSE_MOVE_RELATIVE 1
#define VMMOUSE_MOVE_ABSOLUTE 0
/*
* VMMouse Input button flags
*/

View File

@ -49,6 +49,15 @@
#include "xf86_libc.h"
#endif
/* Map Solaris/Sun compiler #defines to gcc equivalents */
#if !defined __i386__ && defined __i386
# define __i386__
#endif
#if !defined __x86_64__ && defined __amd64
# define __x86_64__
#endif
#if !defined __i386__ && !defined __x86_64__
#error The vmmouse protocol is only supported on x86 architectures.
#endif

View File

@ -95,7 +95,7 @@
*/
#define VMMOUSE_MAJOR_VERSION 12
#define VMMOUSE_MINOR_VERSION 6
#define VMMOUSE_PATCHLEVEL 2
#define VMMOUSE_PATCHLEVEL 4
#define VMMOUSE_DRIVER_VERSION \
(VMMOUSE_MAJOR_VERSION * 65536 + VMMOUSE_MINOR_VERSION * 256 + VMMOUSE_PATCHLEVEL)
#define VMMOUSE_DRIVER_VERSION_STRING \
@ -138,9 +138,11 @@ static void MouseCtrl(DeviceIntPtr device, PtrCtrl *ctrl);
* Definitions
*****************************************************************************/
typedef struct {
int screenNum;
Bool vmmouseAvailable;
Bool relative;
int screenNum;
Bool vmmouseAvailable;
VMMOUSE_INPUT_DATA vmmousePrevInput;
Bool isCurrRelative;
Bool absoluteRequested;
} VMMousePrivRec, *VMMousePrivPtr;
static const char *reqSymbols[] = {
@ -311,7 +313,7 @@ VMMousePreInit(InputDriverPtr drv, IDevPtr dev, int flags)
return NULL;
}
mPriv->relative = TRUE;
mPriv->absoluteRequested = FALSE;
/*
* try to enable vmmouse here
@ -479,6 +481,7 @@ VMMouseDoPostEvent(InputInfoPtr pInfo, int buttons, int dx, int dy)
VMMousePrivPtr mPriv;
int truebuttons;
int id, change;
Bool mouseMoved = FALSE;
pMse = pInfo->private;
mPriv = (VMMousePrivPtr)pMse->mousePriv;
@ -492,7 +495,14 @@ VMMouseDoPostEvent(InputInfoPtr pInfo, int buttons, int dx, int dy)
buttons = reverseBits(reverseMap, buttons);
if (dx || dy) {
if (mPriv->isCurrRelative) {
mouseMoved = dx || dy;
} else {
mouseMoved = (dx != mPriv->vmmousePrevInput.X) ||
(dy != mPriv->vmmousePrevInput.Y) ||
(mPriv->vmmousePrevInput.Flags & VMMOUSE_MOVE_RELATIVE);
}
if (mouseMoved) {
#ifdef CALL_CONVERSION_PROC
/*
@ -501,7 +511,7 @@ VMMouseDoPostEvent(InputInfoPtr pInfo, int buttons, int dx, int dy)
*/
VMMouseConvertProc(pInfo, 0, 2, dx, dy, 0, 0, 0, 0, &dx, &dy);
#endif
xf86PostMotionEvent(pInfo->dev, !mPriv->relative, 0, 2, dx, dy);
xf86PostMotionEvent(pInfo->dev, !mPriv->isCurrRelative, 0, 2, dx, dy);
}
if (truebuttons != pMse->lastButtons) {
@ -549,7 +559,7 @@ VMMousePostEvent(InputInfoPtr pInfo, int buttons, int dx, int dy, int dz, int dw
break;
case MSE_MAPTOX:
if (dz != 0) {
if(mPriv->relative)
if(mPriv->isCurrRelative)
dx = dz;
else
dx += dz;
@ -558,7 +568,7 @@ VMMousePostEvent(InputInfoPtr pInfo, int buttons, int dx, int dy, int dz, int dw
break;
case MSE_MAPTOY:
if (dz != 0) {
if(mPriv->relative)
if(mPriv->isCurrRelative)
dy = dz;
else
dy += dz;
@ -593,7 +603,7 @@ VMMousePostEvent(InputInfoPtr pInfo, int buttons, int dx, int dy, int dz, int dw
*/
if (zbutton) {
buttons &= ~zbutton;
if(mPriv->relative)
if(mPriv->isCurrRelative)
VMMouseDoPostEvent(pInfo, buttons, 0, 0);
else
VMMouseDoPostEvent(pInfo, buttons, dx, dy);
@ -621,7 +631,6 @@ static void
FlushButtons(MouseDevPtr pMse)
{
pMse->lastButtons = 0;
pMse->lastMappedButtons = 0;
}
@ -865,8 +874,8 @@ VMMouseDeviceControl(DeviceIntPtr device, int mode)
VMMousePrivPtr mPriv = (VMMousePrivPtr)pMse->mousePriv;
if( mPriv->vmmouseAvailable ) {
VMMouseClient_Disable();
mPriv->vmmouseAvailable = FALSE;
mPriv->relative = TRUE;
mPriv->vmmouseAvailable = FALSE;
mPriv->absoluteRequested = FALSE;
}
xf86RemoveEnabledDevice(pInfo);
@ -916,9 +925,14 @@ VMMouseReadInput(InputInfoPtr pInfo)
pMse = pInfo->private;
mPriv = pMse->mousePriv;
if (mPriv->relative) {
if (!mPriv->absoluteRequested) {
/*
* We can request for absolute mode, but it depends on
* host whether it will send us absolute or relative
* position.
*/
VMMouseClient_RequestAbsolute();
mPriv->relative = FALSE;
mPriv->absoluteRequested = TRUE;
xf86Msg(X_INFO, "VMWARE(0): vmmouse enable absolute mode\n");
}
@ -973,12 +987,14 @@ VMMouseReadInput(InputInfoPtr pInfo)
static void
GetVMMouseMotionEvent(InputInfoPtr pInfo){
MouseDevPtr pMse;
VMMousePrivPtr mPriv;
int buttons, dx, dy, dz, dw;
VMMOUSE_INPUT_DATA vmmouseInput;
int ps2Buttons = 0;
int numPackets;
pMse = pInfo->private;
mPriv = (VMMousePrivPtr)pMse->mousePriv;
while((numPackets = VMMouseClient_GetInput(&vmmouseInput))){
if (numPackets == VMMOUSE_ERROR) {
VMMouseClient_Disable();
@ -1003,8 +1019,13 @@ GetVMMouseMotionEvent(InputInfoPtr pInfo){
dy = vmmouseInput.Y;
dz = (char)vmmouseInput.Z;
dw = 0;
/*
* Get the per package relative or absolute information.
*/
mPriv->isCurrRelative = vmmouseInput.Flags & VMMOUSE_MOVE_RELATIVE;
/* post an event */
pMse->PostEvent(pInfo, buttons, dx, dy, dz, dw);
mPriv->vmmousePrevInput = vmmouseInput;
}
}
@ -1106,7 +1127,7 @@ VMMouseConvertProc(InputInfoPtr pInfo, int first, int num, int v0, int v1, int v
if (first != 0 || num != 2)
return FALSE;
if(mPriv->relative) {
if(mPriv->isCurrRelative) {
*x = v0;
*y = v1;
} else {

View File

@ -30,10 +30,16 @@
#include <signal.h>
#include "vmmouse_client.h"
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
void
segvCB(int sig)
{
#if defined HAVE_XORG_SERVER_1_1_0
exit(1);
#endif
}