const int ID_message = 260;
const int ID_cancel = 261;
-GUIPasswordChange::GUIPasswordChange(gui::IGUIEnvironment *env, gui::IGUIElement *parent,
- s32 id, IMenuManager *menumgr, Client *client,
- ISimpleTextureSource *tsrc) :
- GUIModalMenu(env, parent, id, menumgr),
- m_client(client), m_tsrc(tsrc)
+GUIPasswordChange::GUIPasswordChange(gui::IGUIEnvironment* env,
+ gui::IGUIElement* parent, s32 id,
+ IMenuManager *menumgr,
+ Client* client,
+ ISimpleTextureSource *tsrc
+):
+ GUIModalMenu(env, parent, id, menumgr),
+ m_client(client),
+ m_tsrc(tsrc)
{
}
/*
Calculate new sizes and positions
*/
+#ifdef __ANDROID__
+ const float s = m_gui_scale * porting::getDisplayDensity() / 2;
+#else
const float s = m_gui_scale;
- DesiredRect = core::rect<s32>(screensize.X / 2 - 580 * s / 2,
- screensize.Y / 2 - 300 * s / 2, screensize.X / 2 + 580 * s / 2,
- screensize.Y / 2 + 300 * s / 2);
+#endif
+ DesiredRect = core::rect<s32>(
+ screensize.X / 2 - 580 * s / 2,
+ screensize.Y / 2 - 300 * s / 2,
+ screensize.X / 2 + 580 * s / 2,
+ screensize.Y / 2 + 300 * s / 2
+ );
recalculateAbsolutePosition(false);
v2s32 size = DesiredRect.getSize();
{
core::rect<s32> rect(0, 0, 230 * s, 30 * s);
rect += topleft_client + v2s32(160 * s, ypos);
- gui::IGUIEditBox *e = Environment->addEditBox(m_newpass_confirm.c_str(),
- rect, true, this, ID_newPassword2);
+ gui::IGUIEditBox *e = Environment->addEditBox(
+ m_newpass_confirm.c_str(), rect, true, this, ID_newPassword2);
e->setPasswordBox(true);
}
core::rect<s32> rect(0, 0, 300 * s, 20 * s);
rect += topleft_client + v2s32(35 * s, ypos);
text = wgettext("Passwords do not match!");
- IGUIElement *e = Environment->addStaticText(
- text, rect, false, true, this, ID_message);
+ IGUIElement *e =
+ Environment->addStaticText(
+ text, rect, false, true, this, ID_message);
e->setVisible(false);
delete[] text;
}
if (event.GUIEvent.EventType == gui::EGET_ELEMENT_FOCUS_LOST &&
isVisible()) {
if (!canTakeFocus(event.GUIEvent.Element)) {
- infostream << "GUIPasswordChange: Not allowing focus "
- "change."
- << std::endl;
+ infostream << "GUIPasswordChange: Not allowing focus change."
+ << std::endl;
// Returning true disables focus change
return true;
}
if (!hasAndroidUIInput())
return false;
+ // still waiting
+ if (porting::getInputDialogState() == -1)
+ return true;
+
gui::IGUIElement *e = nullptr;
if (m_jni_field_name == "old_password")
e = getElementFromId(ID_oldPassword);
e = getElementFromId(ID_newPassword1);
else if (m_jni_field_name == "new_password_2")
e = getElementFromId(ID_newPassword2);
-
- if (e) {
- std::string text = porting::getInputDialogValue();
- e->setText(utf8_to_wide(text).c_str());
- }
m_jni_field_name.clear();
+
+ if (!e || e->getType() != irr::gui::EGUIET_EDIT_BOX)
+ return false;
+
+ std::string text = porting::getInputDialogValue();
+ e->setText(utf8_to_wide(text).c_str());
return false;
}
#endif