Skip to content

Commit

Permalink
Send a on_receive_fields event when formspec is closed, with fields.q…
Browse files Browse the repository at this point in the history
…uit = "true"
  • Loading branch information
Ekdohibs committed Nov 3, 2013
1 parent 06a5ece commit 0b78889
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 11 deletions.
30 changes: 20 additions & 10 deletions src/guiFormSpecMenu.cpp
Expand Up @@ -2041,12 +2041,16 @@ ItemStack GUIFormSpecMenu::verifySelectedItem()
return ItemStack();
}

void GUIFormSpecMenu::acceptInput()
void GUIFormSpecMenu::acceptInput(bool quit=false)
{
if(m_text_dst)
{
std::map<std::string, std::string> fields;

if (quit) {
fields["quit"] = "true";
}

if (current_keys_pending.key_down) {
fields["key_down"] = "true";
current_keys_pending.key_down = false;
Expand Down Expand Up @@ -2188,10 +2192,12 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
if (event.KeyInput.PressedDown && (kp == EscapeKey ||
kp == getKeySetting("keymap_inventory")))
{
if (m_allowclose)
if (m_allowclose) {
acceptInput(true);
quitMenu();
else
} else {
m_text_dst->gotText(narrow_to_wide("MenuQuit"));
}
return true;
}
if (event.KeyInput.PressedDown &&
Expand All @@ -2204,7 +2210,7 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
switch (event.KeyInput.Key) {
case KEY_RETURN:
if (m_allowclose) {
acceptInput();
acceptInput(true);
quitMenu();
}
else
Expand Down Expand Up @@ -2551,11 +2557,13 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
unsigned int btn_id = event.GUIEvent.Caller->getID();

if (btn_id == 257) {
acceptInput();
if (m_allowclose)
if (m_allowclose) {
acceptInput(true);
quitMenu();
else
} else {
acceptInput();
m_text_dst->gotText(narrow_to_wide("ExitButton"));
}
// quitMenu deallocates menu
return true;
}
Expand All @@ -2572,10 +2580,12 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
s.send = true;
acceptInput();
if(s.is_exit){
if (m_allowclose)
if (m_allowclose) {
acceptInput(true);
quitMenu();
else
} else {
m_text_dst->gotText(narrow_to_wide("ExitButton"));
}
return true;
}else{
s.send = false;
Expand All @@ -2590,7 +2600,7 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
{

if (m_allowclose) {
acceptInput();
acceptInput(true);
quitMenu();
}
else {
Expand Down
2 changes: 1 addition & 1 deletion src/guiFormSpecMenu.h
Expand Up @@ -227,7 +227,7 @@ class GUIFormSpecMenu : public GUIModalMenu
void updateSelectedItem();
ItemStack verifySelectedItem();

void acceptInput();
void acceptInput(bool quit);
bool preprocessEvent(const SEvent& event);
bool OnEvent(const SEvent& event);

Expand Down

1 comment on commit 0b78889

@4aiman
Copy link
Contributor

@4aiman 4aiman commented on 0b78889 Nov 6, 2013

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Finally :-)

Please sign in to comment.