# HG changeset patch # User Stefano Rivera # Date 1316120838 -7200 # Node ID 71bc946ce1f1c70718b21d179aa4327d84a49ae7 # Parent cacc03748580f4e597ae3861203ea9551d5485e2 Check if paused to avoid displaing two MessageBoxes on the screen if we manage to stack up SnakeDied events diff -r cacc03748580 -r 71bc946ce1f1 mamba/widgets/game.py --- a/mamba/widgets/game.py Thu Sep 15 23:02:47 2011 +0200 +++ b/mamba/widgets/game.py Thu Sep 15 23:07:18 2011 +0200 @@ -46,10 +46,12 @@ self.world.draw(surface) def snake_died(self, ev, widget): - self.world.pause() + if not self.world.pause(): + return False messagebox = MessageBox((300, 200), 'You died!', self.restart) self.parent.add(messagebox) messagebox.grab_focus() + self.world.snake.alive = False return True def restart(self): @@ -58,7 +60,8 @@ self.grab_focus() def level_completed(self, ev, widget): - self.world.pause() + if not self.world.pause(): + return False messagebox = MessageBox((300, 200), 'Level complete!', self.go_mainmenu) self.parent.add(messagebox) diff -r cacc03748580 -r 71bc946ce1f1 mamba/world.py --- a/mamba/world.py Thu Sep 15 23:02:47 2011 +0200 +++ b/mamba/world.py Thu Sep 15 23:07:18 2011 +0200 @@ -37,10 +37,12 @@ tile.interact(self, segment) def pause(self): - self._paused = True + was_paused, self._paused = self._paused, True + return was_paused == False def resume(self): - self._paused = False + was_paused, self._paused = self._paused, False + return was_paused == True def restart(self): self.level.restart()