X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2FguiKeyChangeMenu.cpp;h=8b0bb8278bea0d95b0542ab79dccbeb729608c92;hb=63867b1a372a4d1a4a4ffdec9d0862b094211a89;hp=c660ed870be829f835c6093a7141960f63733c7b;hpb=98182f6097ec0568545f5612f6ae1354e110333d;p=minetest.git diff --git a/src/guiKeyChangeMenu.cpp b/src/guiKeyChangeMenu.cpp index c660ed870..8b0bb8278 100644 --- a/src/guiKeyChangeMenu.cpp +++ b/src/guiKeyChangeMenu.cpp @@ -32,8 +32,12 @@ #include "settings.h" #include +#include "mainmenumanager.h" // for g_gamecallback + #define KMaxButtonPerColumns 12 +extern MainGameCallback *g_gamecallback; + enum { GUI_ID_BACK_BUTTON = 101, GUI_ID_ABORT_BUTTON, GUI_ID_SCROLL_BAR, @@ -113,7 +117,7 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) recalculateAbsolutePosition(false); v2s32 topleft(0, 0); - changeCtype(""); + { core::rect < s32 > rect(0, 0, 600, 40); rect += topleft + v2s32(25, 3); @@ -196,9 +200,7 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) Environment->addButton(rect, this, GUI_ID_ABORT_BUTTON, text ); delete[] text; - } - changeCtype("C"); - + } } void GUIKeyChangeMenu::drawMenu() @@ -236,7 +238,11 @@ bool GUIKeyChangeMenu::acceptInput() if(e != NULL && e->getType() == gui::EGUIET_CHECK_BOX) g_settings->setBool("doubletap_jump", ((gui::IGUICheckBox*)e)->isChecked()); } + clearKeyCache(); + + g_gamecallback->signalKeyConfigChange(); + return true; } @@ -265,7 +271,7 @@ bool GUIKeyChangeMenu::OnEvent(const SEvent& event) if (event.EventType == EET_KEY_INPUT_EVENT && activeKey >= 0 && event.KeyInput.PressedDown) { - changeCtype(""); + bool prefer_character = shift_down; KeyPress kp(event.KeyInput, prefer_character); @@ -313,7 +319,6 @@ bool GUIKeyChangeMenu::OnEvent(const SEvent& event) this->key_used.push_back(kp); - changeCtype("C"); // Allow characters made with shift if(shift_went_down){ shift_down = true; @@ -339,12 +344,6 @@ bool GUIKeyChangeMenu::OnEvent(const SEvent& event) } if (event.GUIEvent.EventType == gui::EGET_BUTTON_CLICKED) { - if(event.GUIEvent.Caller->getID() != GUI_ID_BACK_BUTTON && - event.GUIEvent.Caller->getID() != GUI_ID_ABORT_BUTTON) - { - changeCtype(""); - } - switch (event.GUIEvent.Caller->getID()) { case GUI_ID_BACK_BUTTON: //back @@ -377,8 +376,6 @@ bool GUIKeyChangeMenu::OnEvent(const SEvent& event) break; } Environment->setFocus(this); - //Buttons - changeCtype("C"); } } return Parent ? Parent->OnEvent(event) : false;