@ -162,7 +162,6 @@
- text edit : flag to disable live update of the user buffer .
- text edit : field resize behaviour - field could stretch when being edited ? hover tooltip shows more text ?
- text edit : pasting text into a number box should filter the characters the same way direct input does
- text edit : allow code to catch user pressing Return ( perhaps through disable live edit ? so only Return apply the final value , also allow catching Return if value didn ' t changed )
- settings : write more decent code to allow saving / loading new fields
- settings : api for per - tool simple persistant data ( bool , int , float ) in . ini file
- log : be able to right - click and log a window or tree - node into tty / file / clipboard ?
@ -3962,6 +3961,7 @@ bool InputText(const char* label, char* buf, size_t buf_size, ImGuiInputTextFlag
bool value_changed = false ;
bool cancel_edit = false ;
bool enter_pressed = false ;
if ( g . ActiveId = = id )
{
// Edit in progress
@ -4001,7 +4001,7 @@ bool InputText(const char* label, char* buf, size_t buf_size, ImGuiInputTextFlag
else if ( IsKeyPressedMap ( ImGuiKey_End ) ) edit_state . OnKeyboardPressed ( is_ctrl_down ? STB_TEXTEDIT_K_TEXTEND | k_mask : STB_TEXTEDIT_K_LINEEND | k_mask ) ;
else if ( IsKeyPressedMap ( ImGuiKey_Delete ) ) edit_state . OnKeyboardPressed ( STB_TEXTEDIT_K_DELETE | k_mask ) ;
else if ( IsKeyPressedMap ( ImGuiKey_Backspace ) ) edit_state . OnKeyboardPressed ( STB_TEXTEDIT_K_BACKSPACE | k_mask ) ;
else if ( IsKeyPressedMap ( ImGuiKey_Enter ) ) { g . ActiveId = 0 ; }
else if ( IsKeyPressedMap ( ImGuiKey_Enter ) ) { g . ActiveId = 0 ; enter_pressed = true ; }
else if ( IsKeyPressedMap ( ImGuiKey_Escape ) ) { g . ActiveId = 0 ; cancel_edit = true ; }
else if ( is_ctrl_down & & IsKeyPressedMap ( ImGuiKey_Z ) ) edit_state . OnKeyboardPressed ( STB_TEXTEDIT_K_UNDO ) ; // I don't want to use shortcuts but we should probably have an Input-catch stack
else if ( is_ctrl_down & & IsKeyPressedMap ( ImGuiKey_Y ) ) edit_state . OnKeyboardPressed ( STB_TEXTEDIT_K_REDO ) ;
@ -4122,7 +4122,10 @@ bool InputText(const char* label, char* buf, size_t buf_size, ImGuiInputTextFlag
RenderText ( ImVec2 ( frame_bb . Max . x + style . ItemInnerSpacing . x , frame_bb . Min . y + style . FramePadding . y ) , label ) ;
return value_changed ;
if ( ( flags & ImGuiInputTextFlags_EnterReturnsTrue ) ! = 0 )
return enter_pressed ;
else
return value_changed ;
}
static bool InputFloatN ( const char * label , float * v , int components , int decimal_precision )