Allow mouse to be locked when grabbed with GEM driver

This commit is contained in:
Patrice Mandin
2006-09-12 19:43:29 +00:00
parent d8503c64fd
commit 2f85f1a110
4 changed files with 17 additions and 3 deletions

View File

@@ -50,7 +50,8 @@ SDL_AtariXbios_InstallVectors(int vectors_mask)
void *oldpile;
/* Clear variables */
SDL_AtariXbios_mouseb =
SDL_AtariXbios_mouselock =
SDL_AtariXbios_mouseb =
SDL_AtariXbios_mousex =
SDL_AtariXbios_mousey =
SDL_AtariXbios_joystick = atari_prevmouseb = 0;
@@ -151,4 +152,8 @@ SDL_AtariXbios_PostMouseEvents(_THIS, SDL_bool buttonEvents)
}
}
void SDL_AtariXbios_LockMousePosition(SDL_bool lockPosition)
{
SDL_AtariXbios_mouselock = lockPosition;
}
/* vi: set ts=4 sw=4 expandtab: */

View File

@@ -43,6 +43,7 @@ extern int SDL_AtariXbios_enabled;
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_ */
/* vi: set ts=4 sw=4 expandtab: */

View File

@@ -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 @@ _SDL_AtariXbios_MouseVector:
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 @@ _SDL_AtariXbios_MouseVector:
.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 ---*/

View File

@@ -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 */