forked from Mirrorlandia_minetest/minetest
Make dropdown formspec elements send their value same style as buttons on change
This commit is contained in:
parent
ce9f1e1d3c
commit
2a09b7e84f
@ -2723,8 +2723,9 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if((event.GUIEvent.EventType==gui::EGET_BUTTON_CLICKED) ||
|
if((event.GUIEvent.EventType == gui::EGET_BUTTON_CLICKED) ||
|
||||||
(event.GUIEvent.EventType==gui::EGET_CHECKBOX_CHANGED)) {
|
(event.GUIEvent.EventType == gui::EGET_CHECKBOX_CHANGED) ||
|
||||||
|
(event.GUIEvent.EventType == gui::EGET_COMBO_BOX_CHANGED)) {
|
||||||
unsigned int btn_id = event.GUIEvent.Caller->getID();
|
unsigned int btn_id = event.GUIEvent.Caller->getID();
|
||||||
|
|
||||||
if (btn_id == 257) {
|
if (btn_id == 257) {
|
||||||
@ -2756,14 +2757,36 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
acceptInput();
|
acceptInput(quit_mode_no);
|
||||||
s.send = false;
|
s.send = false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ((s.ftype == f_DropDown) &&
|
||||||
|
(s.fid == event.GUIEvent.Caller->getID())) {
|
||||||
|
// only send the changed dropdown
|
||||||
|
for(u32 i=0; i<m_fields.size(); i++) {
|
||||||
|
FieldSpec &s2 = m_fields[i];
|
||||||
|
if (s2.ftype == f_DropDown) {
|
||||||
|
s2.send = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
s.send = true;
|
||||||
|
acceptInput(quit_mode_no);
|
||||||
|
|
||||||
|
// revert configuration to make sure dropdowns are sent on
|
||||||
|
// regular button click
|
||||||
|
for(u32 i=0; i<m_fields.size(); i++) {
|
||||||
|
FieldSpec &s2 = m_fields[i];
|
||||||
|
if (s2.ftype == f_DropDown) {
|
||||||
|
s2.send = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(event.GUIEvent.EventType==gui::EGET_EDITBOX_ENTER) {
|
if(event.GUIEvent.EventType == gui::EGET_EDITBOX_ENTER) {
|
||||||
if(event.GUIEvent.Caller->getID() > 257) {
|
if(event.GUIEvent.Caller->getID() > 257) {
|
||||||
|
|
||||||
if (m_allowclose) {
|
if (m_allowclose) {
|
||||||
@ -2778,7 +2801,7 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(event.GUIEvent.EventType==gui::EGET_TABLE_CHANGED) {
|
if(event.GUIEvent.EventType == gui::EGET_TABLE_CHANGED) {
|
||||||
int current_id = event.GUIEvent.Caller->getID();
|
int current_id = event.GUIEvent.Caller->getID();
|
||||||
if(current_id > 257) {
|
if(current_id > 257) {
|
||||||
// find the element that was clicked
|
// find the element that was clicked
|
||||||
|
Loading…
Reference in New Issue
Block a user