From: Jocelyn F. <joc...@la...> - 2008-07-15 16:14:48
|
Hello, Using the SVN code on Linux, a call to glutDeviceGet(GLUT_NUM_MOUSE_BUTTONS) seems to always returns 32. I have tested this with two different OS and two mice. I may have some ideas about what is going on here, but I would like to know if someone else has experimented this problem. -- Jocelyn Fréchot |
From: Fay J. F Dr C. U. 46 S. <joh...@eg...> - 2008-07-15 16:25:57
|
Jocelyn, Frankly I haven't a clue as to what would be going on. Here's the code for *nix that finds the number of buttons: { unsigned char map; int nbuttons = XGetPointerMapping(fgDisplay.Display, &map,0); return nbuttons; } Here's the corresponding code for Windows: # if defined(_WIN32_WCE) return 1; # else return GetSystemMetrics( SM_CMOUSEBUTTONS ); # endif The "WIN32_WCE" is for an embedded version of Windows in some remote hardware somewhere and doesn't really concern us. I hope this helps. John F. Fay Technical Fellow Jacobs Technology TEAS Group 850-883-1294 -----Original Message----- From: fre...@li... [mailto:fre...@li...] On Behalf Of Jocelyn Fréchot Sent: Tuesday, July 15, 2008 11:15 AM To: FreeGLUT developers list Subject: [Freeglut-developer] [X11] glutDeviceGet(GLUT_NUM_MOUSE_BUTTONS)returns 32 Hello, Using the SVN code on Linux, a call to glutDeviceGet(GLUT_NUM_MOUSE_BUTTONS) seems to always returns 32. I have tested this with two different OS and two mice. I may have some ideas about what is going on here, but I would like to know if someone else has experimented this problem. -- Jocelyn Fréchot ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Freeglut-developer mailing list Fre...@li... https://lists.sourceforge.net/lists/listinfo/freeglut-developer |
From: Jocelyn F. <joc...@la...> - 2008-07-15 16:47:21
|
John, The value of “32” is indeed returned by XGetPointerMapping(). I wonder if I'm affected by this problem because of some wrong X server configuration or if someone else can confirm this is a bug. I suspect that the code works as expected with previous version of Xorg. Can anyone confirm this? -- Jocelyn Fréchot |
From: John T. <nu...@me...> - 2008-07-15 18:34:53
|
On Tue, Jul 15, 2008 at 06:47:19PM +0200, Jocelyn Fr??chot wrote: > John, > > The value of ???32??? is indeed returned by XGetPointerMapping(). I wonder > if I'm affected by this problem because of some wrong X server > configuration or if someone else can confirm this is a bug. I suspect > that the code works as expected with previous version of Xorg. > Can anyone confirm this? XGetPointerMapping returns 9 over here: glutDeviceGet(GLUT_NUM_MOUSE_BUTTONS) returns 3 though... but I'm using the debian sid version of freeglut, not svn or anything. X Window System Version 1.3.0 with an old microsoft optical mouse. -- John Tsiombikas (Nuclear / Mindlapse) http://nuclear.sdf-eu.org/ |
From: Fay J. F Dr C. U. 46 S. <joh...@eg...> - 2008-07-15 18:38:31
|
The relevant code is in "freeglut_state.c" around line 595 ... although in an older version you might want simply to search for the string "GLUT_NUM_MOUSE_BUTTONS". John F. Fay Technical Fellow Jacobs Technology TEAS Group 850-883-1294 -----Original Message----- From: fre...@li... [mailto:fre...@li...] On Behalf Of John Tsiombikas Sent: Tuesday, July 15, 2008 1:35 PM To: fre...@li... Subject: Re: [Freeglut-developer] [X11]glutDeviceGet(GLUT_NUM_MOUSE_BUTTONS) returns 32 On Tue, Jul 15, 2008 at 06:47:19PM +0200, Jocelyn Fr??chot wrote: > John, > > The value of ???32??? is indeed returned by XGetPointerMapping(). I wonder > if I'm affected by this problem because of some wrong X server > configuration or if someone else can confirm this is a bug. I suspect > that the code works as expected with previous version of Xorg. > Can anyone confirm this? XGetPointerMapping returns 9 over here: glutDeviceGet(GLUT_NUM_MOUSE_BUTTONS) returns 3 though... but I'm using the debian sid version of freeglut, not svn or anything. X Window System Version 1.3.0 with an old microsoft optical mouse. -- John Tsiombikas (Nuclear / Mindlapse) http://nuclear.sdf-eu.org/ ------------------------------------------------------------------------ - This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Freeglut-developer mailing list Fre...@li... https://lists.sourceforge.net/lists/listinfo/freeglut-developer |
From: Jocelyn F. <joc...@la...> - 2008-07-15 19:44:11
|
John Tsiombikas wrote: > XGetPointerMapping returns 9 over here: > > glutDeviceGet(GLUT_NUM_MOUSE_BUTTONS) returns 3 though... but I'm using > the debian sid version of freeglut, not svn or anything. That is fine, freeglut 2.4.0 returns a hardcoded value of “3”. > X Window System Version 1.3.0 with an old microsoft optical mouse. So it seems to work as expected for this version (I am currently using X.Org X Server 1.4.0). Could you please copy the output of the command “xsetpointer -l”? Here is what I get: 0: "Virtual core keyboard" [XKeyboard] 1: "Virtual core pointer" [XPointer] 2: "Keyboard0" [XExtensionKeyboard] 3: "Mouse0" [XExtensionPointer] -- Jocelyn Fréchot |
From: John T. <nu...@me...> - 2008-07-15 21:09:16
|
On Tue, Jul 15, 2008 at 09:44:07PM +0200, Jocelyn Fr??chot wrote: > John Tsiombikas wrote: > > XGetPointerMapping returns 9 over here: > > > > glutDeviceGet(GLUT_NUM_MOUSE_BUTTONS) returns 3 though... but I'm using > > the debian sid version of freeglut, not svn or anything. > > That is fine, freeglut 2.4.0 returns a hardcoded value of ???3???. > > > X Window System Version 1.3.0 with an old microsoft optical mouse. > > So it seems to work as expected for this version (I am currently using > X.Org X Server 1.4.0). Could you please copy the output of the command > ???xsetpointer -l???? Here is what I get: > > 0: "Virtual core keyboard" [XKeyboard] > 1: "Virtual core pointer" [XPointer] > 2: "Keyboard0" [XExtensionKeyboard] > 3: "Mouse0" [XExtensionPointer] 0: "Configured Mouse" [XPointer] 1: "Generic Keyboard" [XKeyboard] Which is of course exactly what I have set in xorg.conf Section "ServerLayout" Identifier "Default Layout" Screen 0 "Screen 1" 0 0 Screen 1 "Screen 0" RightOf "Screen 1" InputDevice "Generic Keyboard" InputDevice "Configured Mouse" # InputDevice "SpaceNav" EndSection -- John Tsiombikas (Nuclear / Mindlapse) http://nuclear.sdf-eu.org/ |
From: Jocelyn F. <joc...@la...> - 2008-07-16 13:53:49
|
John Tsiombikas wrote: > On Tue, Jul 15, 2008 at 09:44:07PM +0200, Jocelyn Fr??chot wrote: >> [..] >> >> 0: "Virtual core keyboard" [XKeyboard] >> 1: "Virtual core pointer" [XPointer] >> 2: "Keyboard0" [XExtensionKeyboard] >> 3: "Mouse0" [XExtensionPointer] > > 0: "Configured Mouse" [XPointer] > 1: "Generic Keyboard" [XKeyboard] > > Which is of course exactly what I have set in xorg.conf I have the same configuration in my xorg.conf, so I guess something has changed. OK, here is what I understand so far. The core pointer and keyboard seem now to be “virtual”. You still can use XGetPointerMapping() and XSetPointerMapping() to access the mouse button mapping (it works fine), but the first function now returns the number of buttons on the virtual mouse, which is 32... Looking at the XInput extension, there is a XListInputDevices function that can be used to get informations about devices. According to the documentation, devices can be one of: #define IsXPointer 0 #define IsXKeyboard 1 #define IsXExtensionDevice 2 But in my /usr/include/X11/extensions/XI.h I see also: #define IsXExtensionKeyboard 3 #define IsXExtensionPointer 4 My mouse is seen as a “IsXExtensionPointer”, and I can get its number of buttons. -- Jocelyn Fréchot |
From: Jocelyn F. <joc...@la...> - 2008-07-16 18:20:30
Attachments:
freeglut_svn_741-glut_num_mouse_buttons.diff
|
I found some information in the development version of the XInput extension documentation (http://cgit.freedesktop.org/xorg/lib/libXi/tree/man/XI.xml): “A master pointer is a virtual pointer device that does not represent a physical device. It is visually represented through a cursor. A master keyboard is a virtual keyboard device that does not represent a physical device. It is virtually representd through a keyboard focus. A master pointer and a master keyboard are always paired (i.e. if shift is pressed on the master keyboard, a pointer click would be a shift-click). Multiple master pointer/keyboard pairs can exist. Physical devices (so-called slave devices) are attached to either a master pointer or a master keyboard, depending on their capabilities. If a slave device generates an event, the event is also generated by the respective master device. Multiple slave devices can be attached to a single master device.” This is what I had roughly guessed. The attached patch should fix the problem for Xorg 7.3. The returned value is the number of buttons found by the X server and written in /var/log/Xorg.0.log. By the way, this number is too big: 9 for a three button mouse and 11 for a five button one. I suppose the wheel is seen as two buttons, but there is still an excess of four buttons. -- Jocelyn Fréchot |
From: Jocelyn F. <joc...@la...> - 2008-07-20 17:00:46
|
This second patch should enable the XInput extension management with the autotools. Useful when compiling... -- Jocelyn Fréchot |
From: Fay J. F Dr C. U. 46 S. <joh...@eg...> - 2008-07-21 14:41:37
|
Jocelyn, I've tried implementing the patch but my copy of "Makefile.am" only has 30 lines in it and doesn't have the "Additional linker flags" text anywhere. Any suggestions? John F. Fay Technical Fellow Jacobs Technology TEAS Group 850-883-1294 -----Original Message----- From: fre...@li... [mailto:fre...@li...] On Behalf Of Jocelyn Fréchot Sent: Sunday, July 20, 2008 12:01 PM To: FreeGLUT developers list Subject: Re: [Freeglut-developer] [X11] glutDeviceGet(GLUT_NUM_MOUSE_BUTTONS) returns 32 This second patch should enable the XInput extension management with the autotools. Useful when compiling... -- Jocelyn Fréchot |
From: Jocelyn F. <joc...@la...> - 2008-07-21 14:49:19
|
Fay John F Dr CTR USAF 46 SK wrote: > I've tried implementing the patch but my copy of "Makefile.am" only has 30 lines in it and doesn't have the "Additional linker flags" text anywhere. Any suggestions? Maybe you are looking to the Makefile.am in the root directory? The patch is for the src/Makefile.am file. I made it from the current SVN version. -- Jocelyn Fréchot |
From: Fay J. F Dr C. U. 46 S. <joh...@eg...> - 2008-07-21 14:51:07
|
Bingo! (In this context, that's American for "You have just gotten it exactly right." It other contexts it can mean other, similar, things.) John F. Fay Technical Fellow Jacobs Technology TEAS Group 850-883-1294 -----Original Message----- From: fre...@li... [mailto:fre...@li...] On Behalf Of Jocelyn Fréchot Sent: Monday, July 21, 2008 9:49 AM To: FreeGLUT developers list Subject: Re: [Freeglut-developer] [X11] glutDeviceGet(GLUT_NUM_MOUSE_BUTTONS) returns 32 Fay John F Dr CTR USAF 46 SK wrote: > I've tried implementing the patch but my copy of "Makefile.am" only has 30 lines in it and doesn't have the "Additional linker flags" text anywhere. Any suggestions? Maybe you are looking to the Makefile.am in the root directory? The patch is for the src/Makefile.am file. I made it from the current SVN version. -- Jocelyn Fréchot ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Freeglut-developer mailing list Fre...@li... https://lists.sourceforge.net/lists/listinfo/freeglut-developer |
From: Fay J. F Dr C. U. 46 S. <joh...@eg...> - 2008-07-21 15:01:54
|
Implemented in Revision 742 in SVN. Since I have NO knowledge of "freeglut" under Linux, somebody NEEDS to download this and make sure I've done it correctly. Many thanks, Jocelyn. John F. Fay Technical Fellow Jacobs Technology TEAS Group 850-883-1294 -----Original Message----- From: fre...@li... [mailto:fre...@li...] On Behalf Of Jocelyn Fréchot Sent: Sunday, July 20, 2008 12:01 PM To: FreeGLUT developers list Subject: Re: [Freeglut-developer] [X11] glutDeviceGet(GLUT_NUM_MOUSE_BUTTONS) returns 32 This second patch should enable the XInput extension management with the autotools. Useful when compiling... -- Jocelyn Fréchot |