File tree 2 files changed +14
-1
lines changed
2 files changed +14
-1
lines changed Original file line number Diff line number Diff line change @@ -104,6 +104,7 @@ GUIFormSpecMenu::GUIFormSpecMenu(irr::IrrlichtDevice* dev,
104
104
m_formspec_version(0 ),
105
105
m_focused_element(" " ),
106
106
m_joystick(joystick),
107
+ current_field_enter_pending(" " ),
107
108
m_font(NULL ),
108
109
m_remap_dbl_click(remap_dbl_click)
109
110
#ifdef __ANDROID__
@@ -2695,6 +2696,10 @@ void GUIFormSpecMenu::acceptInput(FormspecQuitMode quitmode=quit_mode_no)
2695
2696
current_keys_pending.key_enter = false ;
2696
2697
}
2697
2698
2699
+ if (!current_field_enter_pending.empty ()) {
2700
+ fields[" key_enter_field" ] = current_field_enter_pending;
2701
+ }
2702
+
2698
2703
if (current_keys_pending.key_escape ) {
2699
2704
fields[" key_escape" ] = " true" ;
2700
2705
current_keys_pending.key_escape = false ;
@@ -3625,8 +3630,16 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
3625
3630
3626
3631
if (event.GUIEvent .EventType == gui::EGET_EDITBOX_ENTER) {
3627
3632
if (event.GUIEvent .Caller ->getID () > 257 ) {
3633
+ for (u32 i = 0 ; i < m_fields.size (); i++) {
3634
+ FieldSpec &s = m_fields[i];
3635
+ if (s.ftype == f_Unknown &&
3636
+ s.fid == event.GUIEvent .Caller ->getID ()) {
3637
+ current_field_enter_pending = s.fname ;
3638
+ }
3639
+ }
3628
3640
3629
3641
if (m_allowclose) {
3642
+ current_keys_pending.key_enter = true ;
3630
3643
acceptInput (quit_mode_accept);
3631
3644
quitMenu ();
3632
3645
} else {
Original file line number Diff line number Diff line change @@ -463,6 +463,7 @@ class GUIFormSpecMenu : public GUIModalMenu
463
463
} fs_key_pendig;
464
464
465
465
fs_key_pendig current_keys_pending;
466
+ std::string current_field_enter_pending;
466
467
467
468
void parseElement (parserData* data,std::string element);
468
469
@@ -557,4 +558,3 @@ class FormspecFormSource: public IFormSource
557
558
};
558
559
559
560
#endif
560
-
You can’t perform that action at this time.
0 commit comments