SDL: Support clipboard

This commit is contained in:
Desour 2022-09-14 20:38:49 +02:00 committed by sfan5
parent d86abb40c1
commit 8da1bcf58b

@ -17,7 +17,9 @@
#endif #endif
#endif #endif
#if defined(_IRR_COMPILE_WITH_X11_DEVICE_) #if defined(_IRR_COMPILE_WITH_SDL_DEVICE_)
#include <SDL_clipboard.h>
#elif defined(_IRR_COMPILE_WITH_X11_DEVICE_)
#include "CIrrDeviceLinux.h" #include "CIrrDeviceLinux.h"
#endif #endif
#if defined(_IRR_COMPILE_WITH_OSX_DEVICE_) #if defined(_IRR_COMPILE_WITH_OSX_DEVICE_)
@ -59,8 +61,10 @@ void COSOperator::copyToClipboard(const c8 *text) const
if (strlen(text)==0) if (strlen(text)==0)
return; return;
// Windows version #if defined(_IRR_COMPILE_WITH_SDL_DEVICE_)
#if defined(_IRR_WINDOWS_API_) SDL_SetClipboardText(text);
#elif defined(_IRR_WINDOWS_API_)
if (!OpenClipboard(NULL) || text == 0) if (!OpenClipboard(NULL) || text == 0)
return; return;
@ -117,7 +121,14 @@ void COSOperator::copyToPrimarySelection(const c8 *text) const
//! gets text from the clipboard //! gets text from the clipboard
const c8* COSOperator::getTextFromClipboard() const const c8* COSOperator::getTextFromClipboard() const
{ {
#if defined(_IRR_WINDOWS_API_) #if defined(_IRR_COMPILE_WITH_SDL_DEVICE_)
static char *text = nullptr;
if (text)
SDL_free(text);
text = SDL_GetClipboardText();
return text;
#elif defined(_IRR_WINDOWS_API_)
if (!OpenClipboard(NULL)) if (!OpenClipboard(NULL))
return 0; return 0;