Don't show Android edit dialog when tapping read-only field (#7337)

* Don't show Android edit dialog when tapping read-only field

From Lua API, "If the name is empty the textarea is readonly."
This commit is contained in:
Muhammad Rifqi Priyo Susanto 2018-05-15 21:13:30 +07:00 committed by Loïc Blot
parent a1598e1b83
commit 2f34797c5c
1 changed files with 11 additions and 9 deletions

View File

@ -3026,29 +3026,31 @@ bool GUIFormSpecMenu::preprocessEvent(const SEvent& event)
core::position2d<s32>(event.MouseInput.X, event.MouseInput.Y)); core::position2d<s32>(event.MouseInput.X, event.MouseInput.Y));
if ((hovered) && (hovered->getType() == irr::gui::EGUIET_EDIT_BOX)) { if ((hovered) && (hovered->getType() == irr::gui::EGUIET_EDIT_BOX)) {
bool retval = hovered->OnEvent(event); bool retval = hovered->OnEvent(event);
if (retval) { if (retval)
Environment->setFocus(hovered); Environment->setFocus(hovered);
}
m_JavaDialogFieldName = getNameByID(hovered->getID()); std::string field_name = getNameByID(hovered->getID());
/* read-only field */
if (field_name.empty())
return retval;
m_JavaDialogFieldName = field_name;
std::string message = gettext("Enter "); std::string message = gettext("Enter ");
std::string label = wide_to_utf8(getLabelByID(hovered->getID())); std::string label = wide_to_utf8(getLabelByID(hovered->getID()));
if (label == "") { if (label.empty())
label = "text"; label = "text";
}
message += gettext(label) + ":"; message += gettext(label) + ":";
/* single line text input */ /* single line text input */
int type = 2; int type = 2;
/* multi line text input */ /* multi line text input */
if (((gui::IGUIEditBox*) hovered)->isMultiLineEnabled()) { if (((gui::IGUIEditBox*) hovered)->isMultiLineEnabled())
type = 1; type = 1;
}
/* passwords are always single line */ /* passwords are always single line */
if (((gui::IGUIEditBox*) hovered)->isPasswordBox()) { if (((gui::IGUIEditBox*) hovered)->isPasswordBox())
type = 3; type = 3;
}
porting::showInputDialog(gettext("ok"), "", porting::showInputDialog(gettext("ok"), "",
wide_to_utf8(((gui::IGUIEditBox*) hovered)->getText()), wide_to_utf8(((gui::IGUIEditBox*) hovered)->getText()),