diff --git a/binding-sandbox/input-binding.cpp b/binding-sandbox/input-binding.cpp index a9fee8d9..54eb144c 100644 --- a/binding-sandbox/input-binding.cpp +++ b/binding-sandbox/input-binding.cpp @@ -581,7 +581,7 @@ static VALUE gets_(VALUE self) { } static VALUE get_clipboard(VALUE self) { - return sb()->bind()()(mkxp_retro::input->getClipboardText()); + return sb()->bind()()(mkxp_retro::input->getClipboardText().c_str()); } static VALUE set_clipboard(VALUE self, VALUE value) { diff --git a/binding/input-binding.cpp b/binding/input-binding.cpp index 3e20428b..b7065c96 100644 --- a/binding/input-binding.cpp +++ b/binding/input-binding.cpp @@ -519,7 +519,7 @@ RB_METHOD(inputGets) { RB_METHOD_GUARD(inputGetClipboard) { RB_UNUSED_PARAM; - return rb_utf8_str_new_cstr(shState->input().getClipboardText()); + return rb_utf8_str_new_cstr(shState->input().getClipboardText().c_str()); } RB_METHOD_GUARD_END diff --git a/src/input/input-retro.cpp b/src/input/input-retro.cpp index 8c6bcf99..89232cf1 100644 --- a/src/input/input-retro.cpp +++ b/src/input/input-retro.cpp @@ -1264,9 +1264,9 @@ void Input::clearText() } -const char *Input::getClipboardText() +std::string Input::getClipboardText() { - return ""; + return {}; } void Input::setClipboardText(const char *text) diff --git a/src/input/input.cpp b/src/input/input.cpp index e25ba01d..a252f4ae 100644 --- a/src/input/input.cpp +++ b/src/input/input.cpp @@ -678,8 +678,6 @@ struct InputPrivate /* Collective binding array */ std::vector bindings; - std::string clipboardText; - ButtonState stateArray[BUTTON_CODE_COUNT*2]; ButtonState *states; @@ -1494,12 +1492,12 @@ void Input::clearText() shState->eThread().textInputBuffer.clear(); } -const char *Input::getClipboardText() +std::string Input::getClipboardText() { const char *tx = SDL_GetClipboardText(); - p->clipboardText = tx; + std::string str(tx); SDL_free((void *)tx); - return p->clipboardText.c_str(); + return str; } void Input::setClipboardText(const char *text) diff --git a/src/input/input.h b/src/input/input.h index 0c5b4cfb..60387525 100644 --- a/src/input/input.h +++ b/src/input/input.h @@ -156,7 +156,7 @@ public: const char *getText(); void clearText(); - const char *getClipboardText(); + std::string getClipboardText(); void setClipboardText(const char *text); const char *getAxisName(SDL_GameControllerAxis axis);