diff --git a/client/eventsSDL/InputSourceKeyboard.cpp b/client/eventsSDL/InputSourceKeyboard.cpp index abc30da0c..618372aba 100644 --- a/client/eventsSDL/InputSourceKeyboard.cpp +++ b/client/eventsSDL/InputSourceKeyboard.cpp @@ -33,12 +33,15 @@ void InputSourceKeyboard::handleEventKeyDown(const SDL_KeyboardEvent & key) { if (SDL_IsTextInputActive() == SDL_TRUE) { - if(key.keysym.sym == SDLK_v && isKeyboardCtrlDown()) { - std::string clipboardContent = SDL_GetClipboardText(); - boost::erase_all(clipboardContent, "\r"); - boost::erase_all(clipboardContent, "\n"); - GH.events().dispatchTextInput(clipboardContent); - return; + if(key.keysym.sym == SDLK_v && isKeyboardCtrlDown()) + { + char * clipboardBuffer = SDL_GetClipboardText(); + std::string clipboardContent = clipboardBuffer; + boost::erase_all(clipboardContent, "\r"); + boost::erase_all(clipboardContent, "\n"); + GH.events().dispatchTextInput(clipboardContent); + SDL_free(clipboardBuffer); + return; } if (key.keysym.sym >= ' ' && key.keysym.sym < 0x80)