# HG changeset patch # User Patrice Mandin # Date 1158089334 0 # Node ID be01e0b82dcac9fe11f6dbba8b0e558e0512336a # Parent 492ff98822fde0b241653659cac8c1e314b6c1e8 Allow mouse to be locked when grabbed with GEM driver diff -r 492ff98822fd -r be01e0b82dca src/video/ataricommon/SDL_xbiosevents.c --- a/src/video/ataricommon/SDL_xbiosevents.c Tue Sep 12 19:20:50 2006 +0000 +++ b/src/video/ataricommon/SDL_xbiosevents.c Tue Sep 12 19:28:54 2006 +0000 @@ -49,7 +49,8 @@ void *oldpile; /* Clear variables */ - SDL_AtariXbios_mouseb = + SDL_AtariXbios_mouselock = + SDL_AtariXbios_mouseb = SDL_AtariXbios_mousex = SDL_AtariXbios_mousey = SDL_AtariXbios_joystick = @@ -146,3 +147,8 @@ atari_prevmouseb = SDL_AtariXbios_mouseb; } } + +void SDL_AtariXbios_LockMousePosition(SDL_bool lockPosition) +{ + SDL_AtariXbios_mouselock = lockPosition; +} diff -r 492ff98822fd -r be01e0b82dca src/video/ataricommon/SDL_xbiosevents_c.h --- a/src/video/ataricommon/SDL_xbiosevents_c.h Tue Sep 12 19:20:50 2006 +0000 +++ b/src/video/ataricommon/SDL_xbiosevents_c.h Tue Sep 12 19:28:54 2006 +0000 @@ -43,5 +43,6 @@ extern void SDL_AtariXbios_InstallVectors(int vectors_mask); extern void SDL_AtariXbios_RestoreVectors(void); extern void SDL_AtariXbios_PostMouseEvents(_THIS, SDL_bool buttonEvents); +extern void SDL_AtariXbios_LockMousePosition(SDL_bool lockPosition); #endif /* _SDL_XBIOSEVENTS_H_ */ diff -r 492ff98822fd -r be01e0b82dca src/video/ataricommon/SDL_xbiosinterrupt.S --- a/src/video/ataricommon/SDL_xbiosinterrupt.S Tue Sep 12 19:20:50 2006 +0000 +++ b/src/video/ataricommon/SDL_xbiosinterrupt.S Tue Sep 12 19:28:54 2006 +0000 @@ -33,6 +33,7 @@ .globl _SDL_AtariXbios_MouseVector .globl _SDL_AtariXbios_JoystickVector + .globl _SDL_AtariXbios_mouselock .globl _SDL_AtariXbios_mouseb .globl _SDL_AtariXbios_mousex .globl _SDL_AtariXbios_mousey @@ -125,6 +126,13 @@ extw d0 addw d0,_SDL_AtariXbios_mousey + /* Lock mouse position ? */ + tstw _SDL_AtariXbios_mouselock + beq.s no_mouse_lock + clrb a0@(1) + clrb a0@(2) +no_mouse_lock: + /* Jump through old vector */ movel sp@+,d0 @@ -133,10 +141,9 @@ .data .even + .comm _SDL_AtariXbios_mouselock,2*1 .comm _SDL_AtariXbios_mousex,2*1 - .even .comm _SDL_AtariXbios_mousey,2*1 - .even .comm _SDL_AtariXbios_mouseb,2*1 /*--- Our joystick vector ---*/ diff -r 492ff98822fd -r be01e0b82dca src/video/ataricommon/SDL_xbiosinterrupt_s.h --- a/src/video/ataricommon/SDL_xbiosinterrupt_s.h Tue Sep 12 19:20:50 2006 +0000 +++ b/src/video/ataricommon/SDL_xbiosinterrupt_s.h Tue Sep 12 19:28:54 2006 +0000 @@ -36,6 +36,7 @@ /* Variables */ +extern volatile Uint16 SDL_AtariXbios_mouselock; /* mouse lock position */ extern volatile Uint16 SDL_AtariXbios_mouseb; /* buttons */ extern volatile Sint16 SDL_AtariXbios_mousex; /* X relative motion */ extern volatile Sint16 SDL_AtariXbios_mousey; /* Y relative motion */