Hello Rob,

Wednesday, February 23, 2005, 4:31:14 PM, you wrote:

[...]

RS> Try this patch to pygame.  I can't test it at all but it compiles on my
RS> machine.  This will make pygame's mouse module bail on init if 
RS> SDL_NOMOUSE is set.  This may make other bad things happen I don't know.
RS>   If so you will have to find somewhere else in pygame to do this.  When
RS> pygame.init() is called it just calls init() on some other pygame 
RS> modules.  I think we call pygame.init() (src/osd.py) but instead maybe
RS> we could call pygame.display.init() and init() on anything else we need
RS> (explicitly).  I seem to remember doing this before but running into
RS> problems.

RS> Index: src/mouse.c
RS> ===================================================================
RS> RCS file: /home/cvspsrv/cvsroot/games/pygame/src/mouse.c,v
RS> retrieving revision 1.11
RS> diff -u -r1.11 mouse.c
RS> --- src/mouse.c 23 Oct 2003 17:17:17 -0000      1.11
RS> +++ src/mouse.c 23 Feb 2005 14:28:28 -0000
RS> @@ -340,6 +340,9 @@
RS>   PYGAME_EXPORT
RS>   void initmouse(void)
RS>   {
RS> +       if (getenv("SDL_NOMOUSE") != NULL)
RS> +               return;
RS> +
RS>          PyObject *module, *dict;

RS>       /* create the module */


With this patch pygame will fail to import module "pygame.mouse".

However I have tried to cut off import pygame.mouse in
/usr/lib/python2.3/site-packages/pygame/__init__.py
to force not to load mouse module.
Also I cut off all pygame.mouse.* calls from freevo.
No luck. Mouse still lives and is locked in freevo window.
So the conclusion is that mouse is initialized even we don't init
python mouse module.

One more investigation - SDL_NOMOUSE environment variable is only used
in some SDL frame buffer drivers and have no effect to x11 or xv.

Looks like there is no way to disable mouse, not in pygame, and seems
to me, not in SDL. The only way to disable it is xorg.conf, but this
will disable mouse on all displays and is not a reasonable solution.

Alternative investigation direction is not disable mouse, but free from
window locking. I found some strange pygame method:

http://www.pygame.org/docs/ref/pygame_event.html#set_grab
> pygame.event.set_grab(bool) -> None
> 
>       Grabs all mouse and keyboard input for the display.
> Grabbing the input is not neccessary to receive keyboard and mouse events,
> but it ensures all input will go to your application.
> It also keeps the mouse locked inside your window.
> Set the grabbing on or off with the boolean argument.
> It is best to not always grab the input, since it prevents the end user from
> doing anything else on their system. 

I have tried to call pygame.event.set_grab(0) somewhere  after
pygame.mouse.set_visible(1) in osd.py. But still no luck.
Any other ideas?

-- 
Best regards,
 Andriy                            mailto:[EMAIL PROTECTED]



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Freevo-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-users

Reply via email to