Merge remote branch 'whot/for-keith'
This commit is contained in:
commit
a974c8e7cb
|
@ -184,6 +184,7 @@ ProcXTestFakeInput(ClientPtr client)
|
||||||
int i;
|
int i;
|
||||||
int base = 0;
|
int base = 0;
|
||||||
int flags = 0;
|
int flags = 0;
|
||||||
|
int need_ptr_update = 1;
|
||||||
|
|
||||||
nev = (stuff->length << 2) - sizeof(xReq);
|
nev = (stuff->length << 2) - sizeof(xReq);
|
||||||
if ((nev % sizeof(xEvent)) || !nev)
|
if ((nev % sizeof(xEvent)) || !nev)
|
||||||
|
@ -388,6 +389,8 @@ ProcXTestFakeInput(ClientPtr client)
|
||||||
client->errorValue = ev->u.u.detail;
|
client->errorValue = ev->u.u.detail;
|
||||||
return BadValue;
|
return BadValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
need_ptr_update = 0;
|
||||||
break;
|
break;
|
||||||
case MotionNotify:
|
case MotionNotify:
|
||||||
if (!dev->valuator)
|
if (!dev->valuator)
|
||||||
|
@ -452,6 +455,7 @@ ProcXTestFakeInput(ClientPtr client)
|
||||||
for (i = 0; i < nevents; i++)
|
for (i = 0; i < nevents; i++)
|
||||||
mieqProcessDeviceEvent(dev, (InternalEvent*)(xtest_evlist+i)->event, NULL);
|
mieqProcessDeviceEvent(dev, (InternalEvent*)(xtest_evlist+i)->event, NULL);
|
||||||
|
|
||||||
|
if (need_ptr_update)
|
||||||
miPointerUpdateSprite(dev);
|
miPointerUpdateSprite(dev);
|
||||||
return client->noClientException;
|
return client->noClientException;
|
||||||
}
|
}
|
||||||
|
|
|
@ -825,7 +825,7 @@ NewInputDeviceRequest (InputOption *options, InputAttributes *attrs,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!idev->driver || !idev->identifier) {
|
if (!idev->driver || !idev->identifier) {
|
||||||
xf86Msg(X_ERROR, "No input driver/identifier specified (ignoring)\n");
|
xf86Msg(X_INFO, "No input driver/identifier specified (ignoring)\n");
|
||||||
rval = BadRequest;
|
rval = BadRequest;
|
||||||
goto unwind;
|
goto unwind;
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,14 +31,14 @@ protocol_xiquerypointer_LDADD=$(TEST_LDADD)
|
||||||
protocol_xiwarppointer_LDADD=$(TEST_LDADD)
|
protocol_xiwarppointer_LDADD=$(TEST_LDADD)
|
||||||
protocol_eventconvert_LDADD=$(TEST_LDADD)
|
protocol_eventconvert_LDADD=$(TEST_LDADD)
|
||||||
|
|
||||||
protocol_xiqueryversion_CFLAGS=$(AM_CFLAGS) -Wl,-wrap,WriteToClient
|
protocol_xiqueryversion_LDFLAGS=$(AM_LDFLAGS) -Wl,-wrap,WriteToClient
|
||||||
protocol_xiquerydevice_CFLAGS=$(AM_CFLAGS) -Wl,-wrap,WriteToClient
|
protocol_xiquerydevice_LDFLAGS=$(AM_LDFLAGS) -Wl,-wrap,WriteToClient
|
||||||
protocol_xiselectevents_CFLAGS=$(AM_CFLAGS) -Wl,-wrap,dixLookupWindow -Wl,-wrap,XISetEventMask
|
protocol_xiselectevents_LDFLAGS=$(AM_LDFLAGS) -Wl,-wrap,dixLookupWindow -Wl,-wrap,XISetEventMask
|
||||||
protocol_xigetselectedevents_CFLAGS=$(AM_CFLAGS) -Wl,-wrap,WriteToClient -Wl,-wrap,dixLookupWindow -Wl,-wrap,AddResource
|
protocol_xigetselectedevents_LDFLAGS=$(AM_LDFLAGS) -Wl,-wrap,WriteToClient -Wl,-wrap,dixLookupWindow -Wl,-wrap,AddResource
|
||||||
protocol_xisetclientpointer_CFLAGS=$(AM_CFLAGS) -Wl,-wrap,dixLookupClient
|
protocol_xisetclientpointer_LDFLAGS=$(AM_LDFLAGS) -Wl,-wrap,dixLookupClient
|
||||||
protocol_xigetclientpointer_CFLAGS=$(AM_CFLAGS) -Wl,-wrap,WriteToClient -Wl,-wrap,dixLookupClient
|
protocol_xigetclientpointer_LDFLAGS=$(AM_LDFLAGS) -Wl,-wrap,WriteToClient -Wl,-wrap,dixLookupClient
|
||||||
protocol_xiquerypointer_CFLAGS=$(AM_CFLAGS) -Wl,-wrap,WriteToClient -Wl,-wrap,dixLookupWindow
|
protocol_xiquerypointer_LDFLAGS=$(AM_LDFLAGS) -Wl,-wrap,WriteToClient -Wl,-wrap,dixLookupWindow
|
||||||
protocol_xiwarppointer_CFLAGS=$(AM_CFLAGS) -Wl,-wrap,WriteToClient -Wl,-wrap,dixLookupWindow
|
protocol_xiwarppointer_LDFLAGS=$(AM_LDFLAGS) -Wl,-wrap,WriteToClient -Wl,-wrap,dixLookupWindow
|
||||||
|
|
||||||
protocol_xiqueryversion_SOURCES=$(COMMON_SOURCES) protocol-xiqueryversion.c
|
protocol_xiqueryversion_SOURCES=$(COMMON_SOURCES) protocol-xiqueryversion.c
|
||||||
protocol_xiquerydevice_SOURCES=$(COMMON_SOURCES) protocol-xiquerydevice.c
|
protocol_xiquerydevice_SOURCES=$(COMMON_SOURCES) protocol-xiquerydevice.c
|
||||||
|
|
|
@ -1601,6 +1601,7 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
|
||||||
else {
|
else {
|
||||||
dcolor->spec = xstrdup(scolor->spec);
|
dcolor->spec = xstrdup(scolor->spec);
|
||||||
}
|
}
|
||||||
|
dcolor->pixel = scolor->pixel;
|
||||||
}
|
}
|
||||||
|
|
||||||
dst->geom->num_colors = dst->geom->sz_colors;
|
dst->geom->num_colors = dst->geom->sz_colors;
|
||||||
|
@ -1672,6 +1673,8 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
|
||||||
|
|
||||||
memcpy(doutline->points, soutline->points,
|
memcpy(doutline->points, soutline->points,
|
||||||
soutline->num_points * sizeof(XkbPointRec));
|
soutline->num_points * sizeof(XkbPointRec));
|
||||||
|
|
||||||
|
doutline->corner_radius = soutline->corner_radius;
|
||||||
}
|
}
|
||||||
|
|
||||||
doutline->num_points = soutline->num_points;
|
doutline->num_points = soutline->num_points;
|
||||||
|
@ -1681,6 +1684,36 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
|
||||||
|
|
||||||
dshape->num_outlines = sshape->num_outlines;
|
dshape->num_outlines = sshape->num_outlines;
|
||||||
dshape->sz_outlines = sshape->num_outlines;
|
dshape->sz_outlines = sshape->num_outlines;
|
||||||
|
dshape->name = sshape->name;
|
||||||
|
dshape->bounds = sshape->bounds;
|
||||||
|
|
||||||
|
dshape->approx = NULL;
|
||||||
|
if (sshape->approx && sshape->num_outlines > 0) {
|
||||||
|
|
||||||
|
const ptrdiff_t approx_idx =
|
||||||
|
sshape->approx - sshape->outlines;
|
||||||
|
|
||||||
|
if (approx_idx < dshape->num_outlines) {
|
||||||
|
dshape->approx = dshape->outlines + approx_idx;
|
||||||
|
} else {
|
||||||
|
LogMessage(X_WARNING, "XKB: approx outline "
|
||||||
|
"index is out of range\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dshape->primary = NULL;
|
||||||
|
if (sshape->primary && sshape->num_outlines > 0) {
|
||||||
|
|
||||||
|
const ptrdiff_t primary_idx =
|
||||||
|
sshape->primary - sshape->outlines;
|
||||||
|
|
||||||
|
if (primary_idx < dshape->num_outlines) {
|
||||||
|
dshape->primary = dshape->outlines + primary_idx;
|
||||||
|
} else {
|
||||||
|
LogMessage(X_WARNING, "XKB: primary outline "
|
||||||
|
"index is out of range\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dst->geom->num_shapes = src->geom->num_shapes;
|
dst->geom->num_shapes = src->geom->num_shapes;
|
||||||
|
@ -1784,6 +1817,10 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
|
||||||
}
|
}
|
||||||
drow->num_keys = srow->num_keys;
|
drow->num_keys = srow->num_keys;
|
||||||
drow->sz_keys = srow->num_keys;
|
drow->sz_keys = srow->num_keys;
|
||||||
|
drow->top = srow->top;
|
||||||
|
drow->left = srow->left;
|
||||||
|
drow->vertical = srow->vertical;
|
||||||
|
drow->bounds = srow->bounds;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ssection->num_doodads) {
|
if (ssection->num_doodads) {
|
||||||
|
@ -1802,6 +1839,7 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
|
||||||
ddoodad = dsection->doodads;
|
ddoodad = dsection->doodads;
|
||||||
k < ssection->num_doodads;
|
k < ssection->num_doodads;
|
||||||
k++, sdoodad++, ddoodad++) {
|
k++, sdoodad++, ddoodad++) {
|
||||||
|
memcpy(ddoodad , sdoodad, sizeof(XkbDoodadRec));
|
||||||
if (sdoodad->any.type == XkbTextDoodad) {
|
if (sdoodad->any.type == XkbTextDoodad) {
|
||||||
if (sdoodad->text.text)
|
if (sdoodad->text.text)
|
||||||
ddoodad->text.text =
|
ddoodad->text.text =
|
||||||
|
@ -1815,7 +1853,6 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
|
||||||
ddoodad->logo.logo_name =
|
ddoodad->logo.logo_name =
|
||||||
xstrdup(sdoodad->logo.logo_name);
|
xstrdup(sdoodad->logo.logo_name);
|
||||||
}
|
}
|
||||||
ddoodad->any.type = sdoodad->any.type;
|
|
||||||
}
|
}
|
||||||
dsection->overlays = NULL;
|
dsection->overlays = NULL;
|
||||||
dsection->sz_overlays = 0;
|
dsection->sz_overlays = 0;
|
||||||
|
@ -1880,7 +1917,7 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
|
||||||
ddoodad = dst->geom->doodads;
|
ddoodad = dst->geom->doodads;
|
||||||
i < src->geom->num_doodads;
|
i < src->geom->num_doodads;
|
||||||
i++, sdoodad++, ddoodad++) {
|
i++, sdoodad++, ddoodad++) {
|
||||||
ddoodad->any.type = sdoodad->any.type;
|
memcpy(ddoodad , sdoodad, sizeof(XkbDoodadRec));
|
||||||
if (sdoodad->any.type == XkbTextDoodad) {
|
if (sdoodad->any.type == XkbTextDoodad) {
|
||||||
if (sdoodad->text.text)
|
if (sdoodad->text.text)
|
||||||
ddoodad->text.text = xstrdup(sdoodad->text.text);
|
ddoodad->text.text = xstrdup(sdoodad->text.text);
|
||||||
|
|
Loading…
Reference in New Issue