mirror of
				https://github.com/RetroDECK/RetroDECK.git
				synced 2025-04-10 19:15:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| commit d4c899cede0743d40934ca11f83691cda72ff9dd
 | |
| Author: Carles Pastor <cpbadosa@gmail.com>
 | |
| Date:   Sat Apr 2 20:47:06 2022 +0200
 | |
| 
 | |
|     Detect when running inside a flatpak sandbox
 | |
| 
 | |
| diff --git a/Source/Core/UICommon/UICommon.cpp b/Source/Core/UICommon/UICommon.cpp
 | |
| index cb857fd3c7..e3ddde24fb 100644
 | |
| --- a/Source/Core/UICommon/UICommon.cpp
 | |
| +++ b/Source/Core/UICommon/UICommon.cpp
 | |
| @@ -309,24 +309,25 @@ void SetUserDirectory(std::string custom_path)
 | |
|      // We are on a non-Apple and non-Android POSIX system, there are 4 cases:
 | |
|      // 1. GetExeDirectory()/portable.txt exists
 | |
|      //    -> Use GetExeDirectory()/User
 | |
| -    // 2. $DOLPHIN_EMU_USERPATH is set
 | |
| +    // 2. $DOLPHIN_EMU_USERPATH is set, and we're not in flatpak
 | |
|      //    -> Use $DOLPHIN_EMU_USERPATH
 | |
| -    // 3. ~/.dolphin-emu directory exists
 | |
| +    // 3. ~/.dolphin-emu directory exists, and we're not in flatpak
 | |
|      //    -> Use ~/.dolphin-emu
 | |
|      // 4. Default
 | |
|      //    -> Use XDG basedir, see
 | |
|      //    http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
 | |
|      user_path = home_path + "." DOLPHIN_DATA_DIR DIR_SEP;
 | |
|      std::string exe_path = File::GetExeDirectory();
 | |
| +    bool flatpak = File::Exists("/.flatpak-info");
 | |
|      if (File::Exists(exe_path + DIR_SEP "portable.txt"))
 | |
|      {
 | |
|        user_path = exe_path + DIR_SEP "User" DIR_SEP;
 | |
|      }
 | |
| -    else if (env_path)
 | |
| +    else if (env_path && !flatpak)
 | |
|      {
 | |
|        user_path = env_path;
 | |
|      }
 | |
| -    else if (!File::Exists(user_path))
 | |
| +    else if (flatpak || !File::Exists(user_path))
 | |
|      {
 | |
|        const char* data_home = getenv("XDG_DATA_HOME");
 | |
|        std::string data_path =
 |