Fix related to #36319: restore SDL_VIDEODRIVER=dummy environment variable, it
seems that somehow not having this is causing keyboard events to be caught by SDL. This was removed because it broke addons that could use SDL, now set the environment variable only temporary during SDL initialization. This may have been causing issues with keyboard events getting missed in the game engine, but I couldn't confirm the issue here.
This commit is contained in:
@@ -1324,15 +1324,20 @@ const char *BLI_get_folder_version(const int id, const int ver, const bool do_ch
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Sets the specified environment variable to the specified value.
|
||||
* Sets the specified environment variable to the specified value,
|
||||
* and clears it if val == NULL.
|
||||
*/
|
||||
void BLI_setenv(const char *env, const char *val)
|
||||
{
|
||||
/* free windows */
|
||||
#if (defined(WIN32) || defined(WIN64)) && defined(FREE_WINDOWS)
|
||||
char *envstr = MEM_mallocN(sizeof(char) * (strlen(env) + strlen(val) + 2), "envstr"); /* one for = another for \0 */
|
||||
char *envstr;
|
||||
|
||||
if (val)
|
||||
envstr = BLI_sprintfN("%s=%s", env, val);
|
||||
else
|
||||
envstr = BLI_sprintfN("%s=", env);
|
||||
|
||||
sprintf(envstr, "%s=%s", env, val);
|
||||
putenv(envstr);
|
||||
MEM_freeN(envstr);
|
||||
|
||||
@@ -1343,7 +1348,10 @@ void BLI_setenv(const char *env, const char *val)
|
||||
|
||||
#else
|
||||
/* linux/osx/bsd */
|
||||
setenv(env, val, 1);
|
||||
if (val)
|
||||
setenv(env, val, 1);
|
||||
else
|
||||
unsetenv(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user