Do proper ending and cancelling of text editing

Closes #58
This commit is contained in:
Daniel Collin 2013-01-06 22:33:50 +01:00
parent 8c8995dbf0
commit 0a94c588c5
2 changed files with 26 additions and 3 deletions

View File

@ -659,6 +659,14 @@ static void endEditing()
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static void cancelEditing()
{
is_editing = false;
s_editorData.trackData.editText = 0;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Editor_scroll(float deltaX, float deltaY, int flags)
{
TrackData* trackData = getTrackData();
@ -944,7 +952,7 @@ bool Editor_saveBeforeExit()
static void onCancelEdit()
{
endEditing();
cancelEditing();
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -1279,7 +1287,7 @@ static void onTab()
void Editor_menuEvent(int menuItem)
{
endEditing();
cancelEditing();
// If some internal control has focus we let it do its thing
@ -1422,7 +1430,21 @@ bool Editor_keyDown(int key, int keyCode, int modifiers)
if (doEditing(key))
return true;
endEditing();
switch (key)
{
case EMGUI_KEY_ARROW_UP :
case EMGUI_KEY_ARROW_DOWN :
case EMGUI_KEY_ARROW_LEFT :
case EMGUI_KEY_ARROW_RIGHT :
case EMGUI_KEY_TAB :
case EMGUI_KEY_ENTER :
{
endEditing();
break;
}
}
cancelEditing();
switch (key)
{

View File

@ -216,6 +216,7 @@ static int getModifierFlags(int flags)
{
case KEY_TAB : keyCode = EMGUI_KEY_TAB; break;
case KEY_DELETE : keyCode = EMGUI_KEY_BACKSPACE; break;
case KEY_RETURN : keyCode = EMGUI_KEY_ENTER; break;
}
}