diff options
-rw-r--r-- | src/XChgDCtl.c | 21 | ||||
-rw-r--r-- | src/XGetDCtl.c | 12 |
2 files changed, 33 insertions, 0 deletions
diff --git a/src/XChgDCtl.c b/src/XChgDCtl.c index 9e71475..49e3a52 100644 --- a/src/XChgDCtl.c +++ b/src/XChgDCtl.c @@ -153,6 +153,27 @@ XChangeDeviceControl(dpy, dev, control, d) return rep.status; } } + case DEVICE_ENABLE: + { + XDeviceEnableControl *E = (XDeviceEnableControl *) d; + xDeviceEnableCtl e; + + e.control = DEVICE_ENABLE; + e.length = sizeof(e); + e.enable = E->enable; + + req->length += (sizeof(e) + 3) >> 2; + Data (dpy, (char *) &e, sizeof(e)); + + if (!_XReply(dpy, (xReply *) &rep, 0, xTrue)) { + UnlockDisplay(dpy); + SyncHandle(); + return NoSuchExtension; + } + else { + return rep.status; + } + } default: { xDeviceCtl u; diff --git a/src/XGetDCtl.c b/src/XGetDCtl.c index 8d034bf..42f1be6 100644 --- a/src/XGetDCtl.c +++ b/src/XGetDCtl.c @@ -182,6 +182,18 @@ XGetDeviceControl(dpy, dev, control) C->control = DEVICE_CORE; C->length = sizeof(C); C->status = c->status; + C->iscore = c->iscore; + + break; + } + case DEVICE_ENABLE: + { + xDeviceEnableState *e = (xDeviceEnableState *) d; + XDeviceEnableState *E = (XDeviceEnableState *) Device; + + E->control = DEVICE_ENABLE; + E->length = sizeof(E); + E->enable = e->enable; break; } |