mirror of
https://github.com/DrBeef/ioq3quest.git
synced 2024-11-23 04:12:39 +00:00
Get clipboard data from SDL
This makes pasting in client console and UI edit fields work on X11 and OS X. Sys_GetClipboardData is only used by client, so returning NULL in dedicated is fine.
This commit is contained in:
parent
077f6bd068
commit
137ddb9dc6
3 changed files with 29 additions and 37 deletions
|
@ -127,6 +127,35 @@ char *Sys_ConsoleInput(void)
|
|||
return CON_Input( );
|
||||
}
|
||||
|
||||
/*
|
||||
==================
|
||||
Sys_GetClipboardData
|
||||
==================
|
||||
*/
|
||||
char *Sys_GetClipboardData(void)
|
||||
{
|
||||
#ifdef DEDICATED
|
||||
return NULL;
|
||||
#else
|
||||
char *data = NULL;
|
||||
char *cliptext;
|
||||
|
||||
if ( ( cliptext = SDL_GetClipboardText() ) != NULL ) {
|
||||
if ( cliptext[0] != '\0' ) {
|
||||
size_t bufsize = strlen( cliptext ) + 1;
|
||||
|
||||
data = Z_Malloc( bufsize );
|
||||
Q_strncpyz( data, cliptext, bufsize );
|
||||
|
||||
// find first listed char and set to '\0'
|
||||
strtok( data, "\n\r\b" );
|
||||
}
|
||||
SDL_free( cliptext );
|
||||
}
|
||||
return data;
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef DEDICATED
|
||||
# define PID_FILENAME PRODUCT_NAME "_server.pid"
|
||||
#else
|
||||
|
|
|
@ -148,16 +148,6 @@ char *Sys_GetCurrentUser( void )
|
|||
return p->pw_name;
|
||||
}
|
||||
|
||||
/*
|
||||
==================
|
||||
Sys_GetClipboardData
|
||||
==================
|
||||
*/
|
||||
char *Sys_GetClipboardData(void)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#define MEM_THRESHOLD 96*1024*1024
|
||||
|
||||
/*
|
||||
|
|
|
@ -190,33 +190,6 @@ char *Sys_GetCurrentUser( void )
|
|||
return s_userName;
|
||||
}
|
||||
|
||||
/*
|
||||
================
|
||||
Sys_GetClipboardData
|
||||
================
|
||||
*/
|
||||
char *Sys_GetClipboardData( void )
|
||||
{
|
||||
char *data = NULL;
|
||||
char *cliptext;
|
||||
|
||||
if ( OpenClipboard( NULL ) != 0 ) {
|
||||
HANDLE hClipboardData;
|
||||
|
||||
if ( ( hClipboardData = GetClipboardData( CF_TEXT ) ) != 0 ) {
|
||||
if ( ( cliptext = GlobalLock( hClipboardData ) ) != 0 ) {
|
||||
data = Z_Malloc( GlobalSize( hClipboardData ) + 1 );
|
||||
Q_strncpyz( data, cliptext, GlobalSize( hClipboardData ) );
|
||||
GlobalUnlock( hClipboardData );
|
||||
|
||||
strtok( data, "\n\r\b" );
|
||||
}
|
||||
}
|
||||
CloseClipboard();
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
#define MEM_THRESHOLD 96*1024*1024
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in a new issue