Patch to add key modifiers for Ecore_SDL (thanks Ryan Hope)

SVN revision: 45322
This commit is contained in:
xcomputerman 2010-01-19 09:01:48 +00:00 committed by xcomputerman
parent 6052f73462
commit fe05034678
1 changed files with 18 additions and 1 deletions

View File

@ -108,6 +108,23 @@ ecore_sdl_shutdown(void)
return _ecore_sdl_init_count;
}
static unsigned int
_ecore_sdl_event_modifiers(int mod)
{
unsigned int modifiers = 0;
if(mod & KMOD_LSHIFT) modifiers |= ECORE_EVENT_MODIFIER_SHIFT;
if(mod & KMOD_RSHIFT) modifiers |= ECORE_EVENT_MODIFIER_SHIFT;
if(mod & KMOD_LCTRL) modifiers |= ECORE_EVENT_MODIFIER_CTRL;
if(mod & KMOD_RCTRL) modifiers |= ECORE_EVENT_MODIFIER_CTRL;
if(mod & KMOD_LALT) modifiers |= ECORE_EVENT_MODIFIER_ALT;
if(mod & KMOD_RALT) modifiers |= ECORE_EVENT_MODIFIER_ALT;
if(mod & KMOD_NUM) modifiers |= ECORE_EVENT_LOCK_NUM;
if(mod & KMOD_CAPS) modifiers |= ECORE_EVENT_LOCK_CAPS;
return modifiers;
}
static Ecore_Event_Key*
_ecore_sdl_event_key(SDL_Event *event, double time)
{
@ -119,7 +136,7 @@ _ecore_sdl_event_key(SDL_Event *event, double time)
ev->timestamp = time;
ev->window = 0;
ev->modifiers = 0; /* FIXME: keep modifier around. */
ev->modifiers = _ecore_sdl_event_modifiers(SDL_GetModState());
ev->key = NULL;
ev->compose = NULL;