Merge remote branch 'whot/for-keith'
This commit is contained in:
commit
01e9fa7da3
|
@ -870,8 +870,10 @@ UpdateDeviceState(DeviceIntPtr device, DeviceEvent* event)
|
|||
continue;
|
||||
if (!sd->button)
|
||||
continue;
|
||||
if (button_is_down(sd, key, BUTTON_PROCESSED))
|
||||
return DONT_PROCESS;
|
||||
for (i = 1; i <= sd->button->numButtons; i++)
|
||||
if (sd->button->map[i] == key &&
|
||||
button_is_down(sd, i, BUTTON_PROCESSED))
|
||||
return DONT_PROCESS;
|
||||
}
|
||||
}
|
||||
set_button_up(device, key, BUTTON_PROCESSED);
|
||||
|
|
|
@ -326,14 +326,6 @@ countValuators(DeviceEvent *ev, int *first)
|
|||
{
|
||||
if (BitIsOn(ev->valuators.mask, i))
|
||||
{
|
||||
/* Assume mode of first_valuator matches XI1 device mode. Stop when the
|
||||
* event mode changes since XI1 can't handle mixed mode devices.
|
||||
*/
|
||||
if (first_valuator > -1 &&
|
||||
BitIsOn(ev->valuators.mode, i) !=
|
||||
BitIsOn(ev->valuators.mode, first_valuator))
|
||||
break;
|
||||
|
||||
if (first_valuator == -1)
|
||||
first_valuator = i;
|
||||
last_valuator = i;
|
||||
|
|
|
@ -1458,14 +1458,15 @@ configInputDevices(XF86ConfLayoutPtr layout, serverLayoutPtr servlayoutp)
|
|||
irp = layout->lay_input_lst;
|
||||
count = 0;
|
||||
while (irp) {
|
||||
indp[count] = xnfalloc(sizeof(InputInfoRec));
|
||||
indp[count] = xf86AllocateInput();
|
||||
if (!configInput(indp[count], irp->iref_inputdev, X_CONFIG)) {
|
||||
while(count--)
|
||||
free(indp[count]);
|
||||
free(indp);
|
||||
return FALSE;
|
||||
}
|
||||
indp[count]->options = irp->iref_option_lst;
|
||||
indp[count]->options = xf86OptionListMerge(indp[count]->options,
|
||||
irp->iref_option_lst);
|
||||
count++;
|
||||
irp = (XF86ConfInputrefPtr)irp->list.next;
|
||||
}
|
||||
|
|
|
@ -280,7 +280,8 @@ void
|
|||
xf86ProcessCommonOptions(InputInfoPtr pInfo,
|
||||
pointer list)
|
||||
{
|
||||
if (!xf86SetBoolOption(list, "AlwaysCore", 1) ||
|
||||
if (xf86SetBoolOption(list, "Floating", 0) ||
|
||||
!xf86SetBoolOption(list, "AlwaysCore", 1) ||
|
||||
!xf86SetBoolOption(list, "SendCoreEvents", 1) ||
|
||||
!xf86SetBoolOption(list, "CorePointer", 1) ||
|
||||
!xf86SetBoolOption(list, "CoreKeyboard", 1)) {
|
||||
|
@ -652,7 +653,7 @@ IgnoreInputClass(const InputInfoPtr idev, const InputAttributes *attrs)
|
|||
return ignore;
|
||||
}
|
||||
|
||||
static InputInfoPtr
|
||||
InputInfoPtr
|
||||
xf86AllocateInput(void)
|
||||
{
|
||||
InputInfoPtr pInfo;
|
||||
|
|
|
@ -155,6 +155,7 @@ extern _X_EXPORT void xf86DisableDevice(DeviceIntPtr dev, Bool panic);
|
|||
extern _X_EXPORT void xf86EnableDevice(DeviceIntPtr dev);
|
||||
/* not exported */
|
||||
int xf86NewInputDevice(InputInfoPtr pInfo, DeviceIntPtr *pdev, BOOL is_auto);
|
||||
InputInfoPtr xf86AllocateInput(void);
|
||||
|
||||
/* xf86Helper.c */
|
||||
extern _X_EXPORT void xf86AddInputDriver(InputDriverPtr driver, pointer module, int flags);
|
||||
|
|
|
@ -243,6 +243,7 @@ DemandLoad O I ??
|
|||
Device S I Device file name
|
||||
DeviceName S I Input device name
|
||||
FlowControl S I Serial flow control ("xon", "none")
|
||||
Floating B I Device initialised as floating
|
||||
HistorySize I I ??
|
||||
MaxX I I Maximum X coordinate
|
||||
MaxY I I Maximum Y coordinate
|
||||
|
|
|
@ -904,30 +904,42 @@ the server. This affects implied layouts as well as explicit layouts
|
|||
specified in the configuration and/or on the command line.
|
||||
.TP 7
|
||||
.BI "Option \*qCorePointer\*q"
|
||||
Deprecated, use
|
||||
.B SendCoreEvents
|
||||
instead.
|
||||
Deprecated, see
|
||||
.B Floating
|
||||
.TP 7
|
||||
.BI "Option \*qCoreKeyboard\*q"
|
||||
Deprecated, use
|
||||
.B SendCoreEvents
|
||||
instead.
|
||||
Deprecated, see
|
||||
.B Floating
|
||||
.TP 7
|
||||
.BI "Option \*qAlwaysCore\*q \*q" boolean \*q
|
||||
.B
|
||||
Deprecated, use
|
||||
.B SendCoreEvents
|
||||
instead.
|
||||
Deprecated, see
|
||||
.B Floating
|
||||
.TP 7
|
||||
.BI "Option \*qSendCoreEvents\*q \*q" boolean \*q
|
||||
Both of these options are equivalent, and when enabled cause the
|
||||
input device to report core events through the master device. They are
|
||||
enabled by default. Any device configured to send core events will be
|
||||
attached to the virtual core pointer or keyboard and control the cursor by
|
||||
default. Devices with
|
||||
.B SendCoreEvents
|
||||
disabled will be \*qfloating\*q and only accessible by clients employing the
|
||||
X Input extension. This option controls the startup behavior only, a device
|
||||
Deprecated, see
|
||||
.B Floating
|
||||
|
||||
.TP 7
|
||||
.BI "Option \*qFloating\*q \*q" boolean \*q
|
||||
When enabled, the input device is set up floating and does not
|
||||
report events through any master device or control a cursor. The device is
|
||||
only available to clients using the X Input Extension API. This option is
|
||||
disabled by default.
|
||||
The options
|
||||
.B CorePointer,
|
||||
.B CoreKeyboard,
|
||||
.B AlwaysCore,
|
||||
and
|
||||
.B SendCoreEvents,
|
||||
are the inverse of option
|
||||
.B Floating
|
||||
(i.e.
|
||||
.B SendCoreEvents \*qon\*q
|
||||
is equivalent to
|
||||
.B Floating \*qoff\*q
|
||||
).
|
||||
|
||||
This option controls the startup behavior only, a device
|
||||
may be reattached or set floating at runtime.
|
||||
.PP
|
||||
For pointing devices, the following options control how the pointer
|
||||
|
|
|
@ -320,6 +320,7 @@ CopyGetMasterEvent(DeviceIntPtr sdev,
|
|||
{
|
||||
DeviceIntPtr mdev;
|
||||
int len = original->any.length;
|
||||
int type = original->any.type;
|
||||
|
||||
CHECKEVENT(original);
|
||||
|
||||
|
@ -327,7 +328,12 @@ CopyGetMasterEvent(DeviceIntPtr sdev,
|
|||
if (!sdev || !sdev->u.master)
|
||||
return NULL;
|
||||
|
||||
switch(original->any.type)
|
||||
#if XFreeXDGA
|
||||
if (type == ET_DGAEvent)
|
||||
type = original->dga_event.subtype;
|
||||
#endif
|
||||
|
||||
switch(type)
|
||||
{
|
||||
case ET_KeyPress:
|
||||
case ET_KeyRelease:
|
||||
|
|
Loading…
Reference in New Issue
Block a user