Bug 65 - Mouse Pointer In Settings Screen Jumps Around
Status: RESOLVED INVALID
Alias: None
Product: Unreal Tournament 2003
Classification: Unclassified
Component: Graphical Client
Version: unknown
Hardware: PC Linux
: P2 normal
Assignee: Ryan C. Gordon
QA Contact:
URL:
Depends on:
Blocks:
 
Reported: 2002-09-14 12:08 EDT by Athanasius
Modified: 2002-09-19 20:20:30 EDT
0 users

See Also:



Description Athanasius 2002-09-14 12:08:49 EDT
When using the Settings screen my mouse pointer kept on jumping up to the top,
about 15% in from the left.  It did this more so when I wasn't moving the mouse,
but also some when constantly moving it.

  I'm on a Debian 3.0 (woody) system, using XFree86 4.1.0, on a 2.4.19 kernel. 
This is a Logitech Dual Optical mouse, plugged into a USB port, with following
in /etc/X11/XF86Config-4:

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "IMPS/2"
        Option      "Device" "/dev/input/mice"
        Option      "ZAxisMapping" "4 5"
        Option      "Buttons" "6"
EndSection

athan@emelia:/usr/local/games/ut2003_demo/System;
16:59:09 0$ ldd ut2003-bin 
        libSDL-1.2.so.0 => ./libSDL-1.2.so.0 (0x40014000)
        Engine.so => ./Engine.so (0x400d1000)
        Core.so => ./Core.so (0x4091c000)
        zlib.so => ./zlib.so (0x40af0000)
        ogg.so => ./ogg.so (0x40afc000)
        vorbis.so => ./vorbis.so (0x40b00000)
        libc.so.6 => /lib/libc.so.6 (0x40b2f000)
        libm.so.6 => /lib/libm.so.6 (0x40c4c000)
        libdl.so.2 => /lib/libdl.so.2 (0x40c6d000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40c71000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40d4b000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x40d58000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x40d6c000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

Let me know what other info may be of help and I'll supply it.  I've never had
anysuch problem in any other X11 app, including Quake3.
Comment 1 Athanasius 2002-09-14 12:42:21 EDT
  It's doing it ingame too.  Btw I do get:

Xlib:  extension "XiG-SUNDRY-NONSTANDARD" missing on display ":0.0".

in the console.
Comment 2 Ryan C. Gordon 2002-09-14 14:16:51 EDT
Do you have SDL installed on your system? Make a back up of the SDL we supplied,
and then replace it with your own. Let me know if that helps or not.

--ryan.

Comment 3 Athanasius 2002-09-14 17:25:42 EDT
athan@emelia:/usr/local/games/ut2003_demo/System;
22:15:33 0$ mkdir BAK
athan@emelia:/usr/local/games/ut2003_demo/System;
22:15:39 0$ mv libSDL-1.2.so.0 BAK
athan@emelia:/usr/local/games/ut2003_demo/System;
22:16:55 0$ ldd ut2003-bin 
        libSDL-1.2.so.0 => /usr/lib/libSDL-1.2.so.0 (0x40020000)
        <etc>
22:20:29 0$ ls -l /usr/lib/libSDL-1.2.so.0
lrwxrwxrwx    1 root     root           19 Aug  3 01:55 /usr/lib/libSDL-1.2.so.0
-> libSDL-1.2.so.0.0.4


And it still does it, mouse motionless near bottom of screen, kept jumping back
up to the 'Audio' tab.

athan@emelia:/usr/local/games/ut2003_demo/System;
22:15:42 0$ dpkg -l \*sdl\*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name                          Version                       Description
+++-=============================-=============================-==============================
ii  libsdl-net1.2                 1.2.2-1.1                     network library
for Simple DirectMedia Layer
ii  libsdl1.2debian               1.2.4-1                       Simple
DirectMedia Layer
ii  libsdl1.2debian-oss           1.2.4-1                       Simple
DirectMedia Layer (with X11 and OSS options)

I could try a CVS of SDL if you think that might help?
Comment 4 Athanasius 2002-09-14 17:36:12 EDT
Current CVS of SDL exhibits the same behaviour.  Are you using a particular kind
of mouse input or can I find something else to test SDL against and it'll be
doing "the same thing"?
Comment 5 Athanasius 2002-09-14 17:57:25 EDT
"cause" found.

I use a program called 'unclutter' to hide my mouse pointer in X when it hasn't
moved for a run-defineable number of seconds, default of 5.

If I kill unclutter then I don't get the mouse jumping problems in ut2003 demo
any more, with it running I do.  Basically what unclutter seems to be doing is
causing ut2003 to think it is losing mouse focus, then regaining it again (as I
AM moving the mouse).

From the README:

---------------------------------------------------------------------------
unclutter is a program which runs permanently in the background of an X11
session.  It checks on the X11 pointer (cursor) position every few
seconds, and when it finds it has not moved (and no buttons
are pressed on the mouse, and the cursor is not in the root window)
it creates a small sub-window as a child of the window the cursor is in.
The new window installs a cursor of size 1x1 but a mask of
all 0, ie an invisible cursor.  This allows you to see all the text in
an xterm or xedit, for example.  The human factors crowd would agree it
should make things less distracting.

Once created, the program waits for the pointer to leave the window
and then destroys it, restoring the original situation.
Button events are passed transparently through to the parent window.
They will usually cause the cursor to reappear because an active grab
will be made by the program while the button is down, so the pointer
will apparently leave the window, even though its x y position doesnt change.
---------------------------------------------------------------------------

That explains why it didn't do it so much in game, as I use RightMouseButton
(+mouse2 in Q3-ese) to move forwards.

I CAN kill unclutter when playing ut2003 but it would be nice if you could find
a way to live nicely with it.  Maybe the SDL guys need prodding to do such.
Comment 6 Ryan C. Gordon 2002-09-14 20:10:04 EDT
(Wow, unclutter is a huge hack...this should really be an option in XFree86, but
we don't live in an ideal world.)

Send me a URL for unclutter and I'll either chat with the maintainer, or pass
this on to the SDL list. In the meantime, you can edit
/where/I/installed/ut2003_demo/ut2003 ... it's a shell script that wraps the
launching of the game. Put "killall unclutter" at the top and then restart it at
the bottom after ut2003-bin has been run. (and take the "exec" out from in front
of ut2003-bin)

--ryan.

Comment 7 Athanasius 2002-09-14 20:19:40 EDT
  Hack it may be, but it does what it says on the can ;).

  I'm not sure it's currently supported, it's been around 10 years judging by
the  "Mark M Martin. mmm@cetia.fr  sep 1992." 'signature' on the README file. 
Heck, he even thanks someone with an old uucp-style email address in there.

  I use it from the debian-supplied package.
Comment 8 Ryan C. Gordon 2002-09-14 20:22:35 EDT
Dear lord.  :)

Ok, I'll forward this to the SDL devel list; they might have a solution...are
you getting this problem in both fullscreen and windowed mode? SDL might be able
to work around it if the mouse is supposed to be grabbed. For now, just hack the
ut2003_demo startup script; that'll be the most convenient thing for now.

--ryan.

Comment 9 Athanasius 2002-09-14 20:34:22 EDT
  It happens windowed as well as fullscreen.
Comment 10 Ryan C. Gordon 2002-09-19 18:17:37 EDT
The SDL developers tell me that they have a potential fix for this in the latest
CVS of SDL. You should try it if you get a chance (just replace the
libSDL-1.2.so.0 that we shipped with one you built...MAKE A BACKUP FIRST!).

If you try that, let me know how it goes.

--ryan.

Comment 11 Athanasius 2002-09-19 20:20:30 EDT
  No change in observed behaviour with freshly checked out CVS as of 5 mins ago
(01:10 BST)