fix(toggleGame): enable PortProton game launch by removing premature return and setting proper process tracking
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
This commit is contained in:
@ -2072,22 +2072,16 @@ class MainWindow(QMainWindow):
|
|||||||
exe_name = os.path.splitext(current_exe)[0]
|
exe_name = os.path.splitext(current_exe)[0]
|
||||||
env_vars = os.environ.copy()
|
env_vars = os.environ.copy()
|
||||||
|
|
||||||
# Delay disabling gamepad handling to allow rumble to complete
|
|
||||||
if hasattr(self, 'input_manager'):
|
|
||||||
QTimer.singleShot(200, self.input_manager.disable_gamepad_handling)
|
|
||||||
|
|
||||||
if entry_exec_split[0] == "env" and len(entry_exec_split) > 1 and 'data/scripts/start.sh' in entry_exec_split[1]:
|
if entry_exec_split[0] == "env" and len(entry_exec_split) > 1 and 'data/scripts/start.sh' in entry_exec_split[1]:
|
||||||
env_vars['START_FROM_STEAM'] = '1'
|
env_vars['START_FROM_STEAM'] = '1'
|
||||||
elif entry_exec_split[0] == "flatpak":
|
elif entry_exec_split[0] == "flatpak":
|
||||||
env_vars['START_FROM_STEAM'] = '1'
|
env_vars['START_FROM_STEAM'] = '1'
|
||||||
return
|
|
||||||
|
# Delay disabling gamepad handling to allow rumble to complete
|
||||||
|
if hasattr(self, 'input_manager'):
|
||||||
|
QTimer.singleShot(200, self.input_manager.disable_gamepad_handling)
|
||||||
|
|
||||||
# Запускаем игру
|
# Запускаем игру
|
||||||
self.current_running_button = update_button
|
|
||||||
self.target_exe = current_exe
|
|
||||||
exe_name = os.path.splitext(current_exe)[0]
|
|
||||||
env_vars = os.environ.copy()
|
|
||||||
env_vars['START_FROM_STEAM'] = '1'
|
|
||||||
try:
|
try:
|
||||||
process = subprocess.Popen(entry_exec_split, env=env_vars, shell=False, preexec_fn=os.setsid)
|
process = subprocess.Popen(entry_exec_split, env=env_vars, shell=False, preexec_fn=os.setsid)
|
||||||
self.game_processes.append(process)
|
self.game_processes.append(process)
|
||||||
@ -2108,6 +2102,7 @@ class MainWindow(QMainWindow):
|
|||||||
logger.error(f"Failed to launch game {exe_name}: {e}")
|
logger.error(f"Failed to launch game {exe_name}: {e}")
|
||||||
QMessageBox.warning(self, _("Error"), _("Failed to launch game: {0}").format(str(e)))
|
QMessageBox.warning(self, _("Error"), _("Failed to launch game: {0}").format(str(e)))
|
||||||
|
|
||||||
|
|
||||||
def closeEvent(self, event):
|
def closeEvent(self, event):
|
||||||
"""Завершает все дочерние процессы и сохраняет настройки при закрытии окна."""
|
"""Завершает все дочерние процессы и сохраняет настройки при закрытии окна."""
|
||||||
for proc in self.game_processes:
|
for proc in self.game_processes:
|
||||||
|
Reference in New Issue
Block a user