From 1cfa2551563a332f2c1e5d8a913d0aade13f7632 Mon Sep 17 00:00:00 2001 From: Martino Fontana Date: Sat, 11 Feb 2023 18:28:52 +0100 Subject: [PATCH] Check if Proton runner with `supported_proton_runners`, instead of runner name Fixes an issue where using to `wine-ge-proton` would make Bottles think it's a Proton runner, thus enabling the Steam Runtime --- bottles/backend/managers/manager.py | 21 ++++++++++----------- bottles/backend/runner.py | 2 +- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/bottles/backend/managers/manager.py b/bottles/backend/managers/manager.py index 85b9ad24119..806326c7377 100644 --- a/bottles/backend/managers/manager.py +++ b/bottles/backend/managers/manager.py @@ -345,17 +345,16 @@ def check_runners(self, install_latest: bool = True) -> bool: # lock winemenubuilder.exe for runner in runners: - winemenubuilder_paths = [ - f"{runner}lib64/wine/x86_64-windows/winemenubuilder.exe", - f"{runner}lib/wine/x86_64-windows/winemenubuilder.exe", - f"{runner}lib32/wine/i386-windows/winemenubuilder.exe", - f"{runner}lib/wine/i386-windows/winemenubuilder.exe", - ] - for winemenubuilder in winemenubuilder_paths: - if winemenubuilder.startswith("Proton"): - continue - if os.path.isfile(winemenubuilder): - os.rename(winemenubuilder, f"{winemenubuilder}.lock") + if runner in self.supported_proton_runners: + winemenubuilder_paths = [ + f"{runner}lib64/wine/x86_64-windows/winemenubuilder.exe", + f"{runner}lib/wine/x86_64-windows/winemenubuilder.exe", + f"{runner}lib32/wine/i386-windows/winemenubuilder.exe", + f"{runner}lib/wine/i386-windows/winemenubuilder.exe", + ] + for winemenubuilder in winemenubuilder_paths: + if os.path.isfile(winemenubuilder): + os.rename(winemenubuilder, f"{winemenubuilder}.lock") # check system wine if shutil.which("wine") is not None: diff --git a/bottles/backend/runner.py b/bottles/backend/runner.py index 3b3006d624f..69cc17085af 100644 --- a/bottles/backend/runner.py +++ b/bottles/backend/runner.py @@ -93,7 +93,7 @@ def runner_update(config: dict, manager: object, runner: str): the host system. There are some exceptions, like the Soda and Wine-GE runners, which are built to work without the Steam Runtime. """ - if "proton" in runner.lower() and RuntimeManager.get_runtimes("steam"): + if runner in manager.supported_proton_runners and RuntimeManager.get_runtimes("steam"): manager.update_config(config, "use_steam_runtime", True, "Parameters") return Result(