fix textbox key repeat issue, fix numpad issue (in two ways)

This commit is contained in:
jacob1 2014-03-11 12:53:42 -04:00
parent 3f65b47a5e
commit 7ce9907f82
2 changed files with 44 additions and 32 deletions

View File

@ -445,7 +445,14 @@ void EventProcess(SDL_Event event)
{
if (event.type == SDL_KEYDOWN || event.type == SDL_KEYUP)
if (!(event.key.keysym.mod&KEY_MOD_NUM))
event.key.keysym.sym = MapNumpad(event.key.keysym.sym);
{
SDLKey newKey = MapNumpad(event.key.keysym.sym);
if (newKey != event.key.keysym.sym)
{
event.key.keysym.sym = newKey;
event.key.keysym.unicode = 0;
}
}
switch (event.type)
{
case SDL_QUIT:

View File

@ -301,10 +301,13 @@ void Textbox::Tick(float dt)
}
void Textbox::OnKeyRelease(int key, Uint16 character, bool shift, bool ctrl, bool alt)
{
if (keyDown == key)
{
keyDown = 0;
characterDown = 0;
}
}
void Textbox::OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool alt)
{
@ -408,7 +411,7 @@ void Textbox::OnVKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool
}
ClearSelection();
break;
}
default:
if(CharacterValid(character) && !ReadOnly)
{
if(HasSelection())
@ -439,6 +442,8 @@ void Textbox::OnVKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool
changed = true;
ClearSelection();
}
break;
}
}
catch(std::out_of_range &e)
{