diff options
author | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2008-09-07 13:28:47 +0000 |
---|---|---|
committer | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2008-09-07 13:28:47 +0000 |
commit | c0e97e180c0f645755515512f94678d5300537a0 (patch) | |
tree | 4663e3c2c64ec3a793f0bd0b194a0e57b7a8faea /app/xinput/src/setptr.c | |
parent | ca50d060a0e30f9eb016e83b5ea38780dbdcae59 (diff) |
Import xinput 1.3.0. Replaces xsetmode(1)/xsetpointer(1).
Diffstat (limited to 'app/xinput/src/setptr.c')
-rw-r--r-- | app/xinput/src/setptr.c | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/app/xinput/src/setptr.c b/app/xinput/src/setptr.c new file mode 100644 index 000000000..4b926e2cd --- /dev/null +++ b/app/xinput/src/setptr.c @@ -0,0 +1,67 @@ +/* + * Copyright 1996 by Frederic Lepied, France. <Frederic.Lepied@sugix.frmug.org> + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of Frederic Lepied not be used in + * advertising or publicity pertaining to distribution of the software without + * specific, written prior permission. Frederic Lepied makes no + * representations about the suitability of this software for any purpose. It + * is provided "as is" without express or implied warranty. + * + * FREDERIC LEPIED DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL FREDERIC LEPIED BE LIABLE FOR ANY SPECIAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + * + */ + +#include "xinput.h" + +int +set_pointer(Display *display, + int argc, + char *argv[], + char *name, + char *desc) +{ + XDeviceInfo *info; + XDevice *device; + int xaxis = 0; + int yaxis = 1; + + if ((argc != 1) && (argc != 3)) { + fprintf(stderr, "usage: xinput %s %s\n", name, desc); + return EXIT_FAILURE; + } + + if (argc == 3) { + xaxis = atoi(argv[1]); + yaxis = atoi(argv[2]); + } + + info = find_device_info(display, argv[0], True); + + if (!info) { + fprintf(stderr, "unable to find device %s\n", argv[0]); + return EXIT_FAILURE; + } + + device = XOpenDevice(display, info->id); + + if (device) { + XChangePointerDevice(display, device, xaxis, yaxis); + + return EXIT_SUCCESS; + } else { + fprintf(stderr, "Unable to open device\n"); + return EXIT_FAILURE; + } +} + +/* end of setptr.c */ |