Skip to content

Commit

Permalink
Add timeout after exiting game to prevent immediate restart due to ke…
Browse files Browse the repository at this point in the history
…ypresses (tkashkin#275)
  • Loading branch information
tkashkin committed Jul 4, 2019
1 parent b286d46 commit 5dc13a8
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 13 deletions.
20 changes: 13 additions & 7 deletions src/data/Emulator.vala
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,10 @@ namespace GameHub.Data

yield Utils.run_thread(get_args(null, executable), executable.get_parent().get_path(), null, true);

RunnableIsLaunched = is_running = false;
Timeout.add_seconds(1, () => {
RunnableIsLaunched = is_running = false;
return Source.REMOVE;
});
}
}

Expand All @@ -203,13 +206,16 @@ namespace GameHub.Data

var dir = game != null && launch_in_game_dir ? game.install_dir : install_dir;
yield Utils.run_thread(get_args(game, executable), dir.get_path(), null, true);
RunnableIsLaunched = is_running = false;

if(game != null)
{
game.is_running = false;
game.update_status();
}
Timeout.add_seconds(1, () => {
RunnableIsLaunched = is_running = false;
if(game != null)
{
game.is_running = false;
game.update_status();
}
return Source.REMOVE;
});
}
}

Expand Down
7 changes: 5 additions & 2 deletions src/data/Game.vala
Original file line number Diff line number Diff line change
Expand Up @@ -139,8 +139,11 @@ namespace GameHub.Data
playtime_tracked += ((get_real_time() / 1000000) - last_launch) / 60;
save();

RunnableIsLaunched = is_running = false;
update_status();
Timeout.add_seconds(1, () => {
RunnableIsLaunched = is_running = false;
update_status();
return Source.REMOVE;
});
}
}

Expand Down
14 changes: 10 additions & 4 deletions src/ui/dialogs/CompatRunDialog.vala
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,11 @@ namespace GameHub.UI.Dialogs
emulated_game.update_status();
compat_tool_picker.selected.run_emulator.begin(game as Emulator, emulated_game, launch_in_game_dir, (obj, res) => {
compat_tool_picker.selected.run_emulator.end(res);
RunnableIsLaunched = game.is_running = emulated_game.is_running = false;
emulated_game.update_status();
Timeout.add_seconds(1, () => {
RunnableIsLaunched = game.is_running = emulated_game.is_running = false;
emulated_game.update_status();
return Source.REMOVE;
});
destroy();
});
}
Expand All @@ -144,8 +147,11 @@ namespace GameHub.UI.Dialogs
game.save();
compat_tool_picker.selected.run.begin(game, (obj, res) => {
compat_tool_picker.selected.run.end(res);
RunnableIsLaunched = game.is_running = false;
game.update_status();
Timeout.add_seconds(1, () => {
RunnableIsLaunched = game.is_running = false;
game.update_status();
return Source.REMOVE;
});
(game as Game).playtime_tracked += ((get_real_time() / 1000000) - (game as Game).last_launch) / 60;
game.save();
destroy();
Expand Down

0 comments on commit 5dc13a8

Please sign in to comment.