diff --git a/desktop_version/src/KeyPoll.cpp b/desktop_version/src/KeyPoll.cpp index e199df13..1c3e6c6e 100644 --- a/desktop_version/src/KeyPoll.cpp +++ b/desktop_version/src/KeyPoll.cpp @@ -50,6 +50,8 @@ KeyPoll::KeyPoll() useFullscreenSpaces = (strcmp(hint, "1") == 0); } } + + linealreadyemptykludge = false; } void KeyPoll::enabletextentry() @@ -94,7 +96,12 @@ void KeyPoll::Poll() { if (evt.key.keysym.sym == SDLK_BACKSPACE) { + bool kbemptybefore = keybuffer.empty(); keybuffer = keybuffer.substr(0, keybuffer.length() - 1); + if (!kbemptybefore && keybuffer.empty()) + { + linealreadyemptykludge = true; + } } else if ( evt.key.keysym.sym == SDLK_v && keymap[SDLK_LCTRL] ) diff --git a/desktop_version/src/KeyPoll.h b/desktop_version/src/KeyPoll.h index 0d803e96..2a21405c 100644 --- a/desktop_version/src/KeyPoll.h +++ b/desktop_version/src/KeyPoll.h @@ -71,6 +71,8 @@ public: bool pressedbackspace; std::string keybuffer; + bool linealreadyemptykludge; + private: std::map controllers; std::map buttonmap; diff --git a/desktop_version/src/editor.cpp b/desktop_version/src/editor.cpp index 1375889a..6ec05ba4 100644 --- a/desktop_version/src/editor.cpp +++ b/desktop_version/src/editor.cpp @@ -3846,7 +3846,13 @@ void editorinput( KeyPoll& key, Graphics& dwgfx, Game& game, mapclass& map, enti key.keybuffer=ed.sb[ed.pagey+ed.sby]; } - if(key.pressedbackspace && ed.sb[ed.pagey+ed.sby]=="") + if(key.linealreadyemptykludge) + { + ed.keydelay=6; + key.linealreadyemptykludge=false; + } + + if(key.pressedbackspace && ed.sb[ed.pagey+ed.sby]=="" && ed.keydelay<=0) { //Remove this line completely ed.removeline(ed.pagey+ed.sby); diff --git a/desktop_version/src/main.cpp b/desktop_version/src/main.cpp index 1ad67575..f50be9b3 100644 --- a/desktop_version/src/main.cpp +++ b/desktop_version/src/main.cpp @@ -473,6 +473,9 @@ int main(int argc, char *argv[]) } + //We did editorinput, now it's safe to turn this off + key.linealreadyemptykludge = false; + if (game.savemystats) { game.savemystats = false;