Commit 8eba29d8 authored by Patrice Mandin's avatar Patrice Mandin

Allow mouse to be locked when grabbed with GEM driver

--HG--
branch : SDL-1.2
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402076
parent 7cfc406e
...@@ -49,7 +49,8 @@ void SDL_AtariXbios_InstallVectors(int vectors_mask) ...@@ -49,7 +49,8 @@ void SDL_AtariXbios_InstallVectors(int vectors_mask)
void *oldpile; void *oldpile;
/* Clear variables */ /* Clear variables */
SDL_AtariXbios_mouseb = SDL_AtariXbios_mouselock =
SDL_AtariXbios_mouseb =
SDL_AtariXbios_mousex = SDL_AtariXbios_mousex =
SDL_AtariXbios_mousey = SDL_AtariXbios_mousey =
SDL_AtariXbios_joystick = SDL_AtariXbios_joystick =
...@@ -146,3 +147,8 @@ void SDL_AtariXbios_PostMouseEvents(_THIS, SDL_bool buttonEvents) ...@@ -146,3 +147,8 @@ void SDL_AtariXbios_PostMouseEvents(_THIS, SDL_bool buttonEvents)
atari_prevmouseb = SDL_AtariXbios_mouseb; atari_prevmouseb = SDL_AtariXbios_mouseb;
} }
} }
void SDL_AtariXbios_LockMousePosition(SDL_bool lockPosition)
{
SDL_AtariXbios_mouselock = lockPosition;
}
...@@ -43,5 +43,6 @@ extern int SDL_AtariXbios_enabled; ...@@ -43,5 +43,6 @@ extern int SDL_AtariXbios_enabled;
extern void SDL_AtariXbios_InstallVectors(int vectors_mask); extern void SDL_AtariXbios_InstallVectors(int vectors_mask);
extern void SDL_AtariXbios_RestoreVectors(void); extern void SDL_AtariXbios_RestoreVectors(void);
extern void SDL_AtariXbios_PostMouseEvents(_THIS, SDL_bool buttonEvents); extern void SDL_AtariXbios_PostMouseEvents(_THIS, SDL_bool buttonEvents);
extern void SDL_AtariXbios_LockMousePosition(SDL_bool lockPosition);
#endif /* _SDL_XBIOSEVENTS_H_ */ #endif /* _SDL_XBIOSEVENTS_H_ */
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
.globl _SDL_AtariXbios_MouseVector .globl _SDL_AtariXbios_MouseVector
.globl _SDL_AtariXbios_JoystickVector .globl _SDL_AtariXbios_JoystickVector
.globl _SDL_AtariXbios_mouselock
.globl _SDL_AtariXbios_mouseb .globl _SDL_AtariXbios_mouseb
.globl _SDL_AtariXbios_mousex .globl _SDL_AtariXbios_mousex
.globl _SDL_AtariXbios_mousey .globl _SDL_AtariXbios_mousey
...@@ -125,6 +126,13 @@ _SDL_AtariXbios_MouseVector: ...@@ -125,6 +126,13 @@ _SDL_AtariXbios_MouseVector:
extw d0 extw d0
addw d0,_SDL_AtariXbios_mousey 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 */ /* Jump through old vector */
movel sp@+,d0 movel sp@+,d0
...@@ -133,10 +141,9 @@ _SDL_AtariXbios_MouseVector: ...@@ -133,10 +141,9 @@ _SDL_AtariXbios_MouseVector:
.data .data
.even .even
.comm _SDL_AtariXbios_mouselock,2*1
.comm _SDL_AtariXbios_mousex,2*1 .comm _SDL_AtariXbios_mousex,2*1
.even
.comm _SDL_AtariXbios_mousey,2*1 .comm _SDL_AtariXbios_mousey,2*1
.even
.comm _SDL_AtariXbios_mouseb,2*1 .comm _SDL_AtariXbios_mouseb,2*1
/*--- Our joystick vector ---*/ /*--- Our joystick vector ---*/
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
/* Variables */ /* Variables */
extern volatile Uint16 SDL_AtariXbios_mouselock; /* mouse lock position */
extern volatile Uint16 SDL_AtariXbios_mouseb; /* buttons */ extern volatile Uint16 SDL_AtariXbios_mouseb; /* buttons */
extern volatile Sint16 SDL_AtariXbios_mousex; /* X relative motion */ extern volatile Sint16 SDL_AtariXbios_mousex; /* X relative motion */
extern volatile Sint16 SDL_AtariXbios_mousey; /* Y relative motion */ extern volatile Sint16 SDL_AtariXbios_mousey; /* Y relative motion */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment