fix textbox key repeat issue, fix numpad issue (in two ways)
This commit is contained in:
parent
3f65b47a5e
commit
7ce9907f82
@ -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:
|
||||
|
@ -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)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user