From: Peter Hutterer Date: Mon, 7 Apr 2008 07:54:16 +0000 (+0930) Subject: Merge branch 'master' into mpx X-Git-Url: https://diplodocus.org/git/xorg-xinput/commitdiff_plain/e3b705dc15d07bbb478ced6b54a5e0553d978113?ds=sidebyside;hp=-c Merge branch 'master' into mpx Conflicts: src/xinput.c (just a whitespace conflict) --- e3b705dc15d07bbb478ced6b54a5e0553d978113 diff --combined src/Makefile.am index 5b09539,d537512..39580a5 --- a/src/Makefile.am +++ b/src/Makefile.am @@@ -21,16 -21,14 +21,16 @@@ bin_PROGRAMS = xinput - xinput_CFLAGS = $(XINPUT_CFLAGS) - xinput_LDADD = $(XINPUT_LIBS) -lm + AM_CFLAGS = $(XINPUT_CFLAGS) + xinput_LDADD = $(XINPUT_LIBS) xinput_SOURCES = \ buttonmap.c \ feedback.c \ + hierarchy.c \ list.c \ setint.c \ + setcp.c \ setmode.c \ setptr.c \ state.c \ diff --combined src/list.c index a802c10,4004ada..a509872 --- a/src/list.c +++ b/src/list.c @@@ -5,15 -5,15 +5,15 @@@ * 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 + * documentation, and that the name of the authors not be used in * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. Frederic Lepied makes no + * specific, written prior permission. The authors make 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, + * THE AUTHORS DISCLAIM 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 + * EVENT SHALL THE AUTHORS 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 @@@ -23,7 -23,6 +23,7 @@@ #include "xinput.h" #include +#include /* for XI_Device***ChangedNotify */ static void print_info(XDeviceInfo *info, Bool shortformat) @@@ -34,7 -33,6 +34,7 @@@ XButtonInfoPtr b; XValuatorInfoPtr v; XAxisInfoPtr a; + XAttachInfoPtr att; printf("\"%s\"\tid=%ld\t[", info->name, info->id); @@@ -93,10 -91,6 +93,10 @@@ printf ("\t\tResolution is %d\n", a->resolution); } break; + case AttachClass: + att = (XAttachInfoPtr)any; + printf("\tAttached to %d\n", att->attached); + break; default: printf ("unknown class\n"); @@@ -116,56 -110,25 +116,56 @@@ list(Display *display XDeviceInfo *info; int loop; int shortformat = False; + int daemon = False; shortformat = (argc == 1 && strcmp(argv[0], "--short") == 0); + daemon = (argc == 1 && strcmp(argv[0], "--loop") == 0); - if (argc == 0 || shortformat) { + if (argc == 0 || shortformat || daemon) { int num_devices; - - info = XListInputDevices(display, &num_devices); - - for(loop=0; loopevtype == XI_DeviceHierarchyChangedNotify) + { + printf("Hierarchy change.\n"); + } else if (gev->evtype == XI_DeviceClassesChangedNotify) + { + printf("Device classes changed.\n"); + free(((XDeviceClassesChangedEvent*)&ev)->inputclassinfo); + } + break; + } + } + } while(daemon); } else { int ret = EXIT_SUCCESS; for(loop=0; loop...]", + "[--loop || --short || ...]", list }, {"query-state", @@@ -81,26 -81,6 +81,26 @@@ "", version }, + { "create-master", + " [sendCore (dflt:1)] [enable (dflt:1)]", + create_master + }, + { "remove-master", + " [returnMode (dflt:Floating)] [returnPointer] [returnKeyboard]", + remove_master + }, + { "reattach", + " ", + change_attachment + }, + { "float", + "", + float_device + }, + { "set-cp", + " ", + set_clientpointer + }, {0, 0, 0 } }; @@@ -110,7 -90,7 +110,7 @@@ is_xinput_present(Display *display { XExtensionVersion *version; Bool present; - + version = XGetExtensionVersion(display, INAME); if (version && (version != (XExtensionVersion*) NoSuchExtension)) { @@@ -128,6 -108,7 +128,7 @@@ find_device_info(Display *display Bool only_extended) { XDeviceInfo *devices; + XDeviceInfo *found = NULL; int loop; int num_devices; int len = strlen(name); @@@ -151,14 -132,21 +152,21 @@@ if ((!only_extended || (devices[loop].use >= IsXExtensionDevice)) && ((!is_id && strcmp(devices[loop].name, name) == 0) || (is_id && devices[loop].id == id))) { - return &devices[loop]; + if (found) { + fprintf(stderr, + "Warning: There are multiple devices named \"%s\".\n" + "To ensure the correct one is selected, please use " + "the device ID instead.\n\n", name); + } else { + found = &devices[loop]; + } } } - return NULL; + return found; } static void - usage() + usage(void) { entry *pdriver = drivers; diff --combined src/xinput.h index 961d1f7,aa2cf70..add9aab --- a/src/xinput.h +++ b/src/xinput.h @@@ -5,15 -5,15 +5,15 @@@ * 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 + * documentation, and that the name of the authors not be used in * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. Frederic Lepied makes no + * specific, written prior permission. The authors make 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, + * THE AUTHORS DISCLAIM 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 + * EVENT SHALL THE AUTHORS 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 @@@ -152,59 -152,5 +152,59 @@@ query_state #endif ); -/* end of xinput.h - */ +int +create_master( +#if NeedFunctionPrototypes + Display* display, + int argc, + char *argv[], + char *prog_name, + char *prog_desc +#endif +); + +int +remove_master( +#if NeedFunctionPrototypes + Display* display, + int argc, + char *argv[], + char *prog_name, + char *prog_desc +#endif +); + +int +change_attachment( +#if NeedFunctionPrototypes + Display* display, + int argc, + char *argv[], + char *prog_name, + char *prog_desc +#endif +); + +int +float_device( +#if NeedFunctionPrototypes + Display* display, + int argc, + char *argv[], + char *prog_name, + char *prog_desc +#endif +); + +int +set_clientpointer( +#if NeedFunctionPrototypes + Display* display, + int argc, + char *argv[], + char *prog_name, + char *prog_desc +#endif +); + +/* end of xinput.h */