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