[gnome-mines/gnome-3-18] Fix timer reset on game pause (bgo#756302)
- From: Robert Roth <robertroth src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-mines/gnome-3-18] Fix timer reset on game pause (bgo#756302)
- Date: Mon, 9 Nov 2015 09:38:38 +0000 (UTC)
commit f5265aa6f327886a7e0c5572e38ae595d7264453
Author: Robert Roth <robert roth off gmail com>
Date: Tue Oct 13 08:57:19 2015 +0300
Fix timer reset on game pause (bgo#756302)
src/gnome-mines.vala | 6 ++++--
src/minefield.vala | 16 ++++++----------
2 files changed, 10 insertions(+), 12 deletions(-)
---
diff --git a/src/gnome-mines.vala b/src/gnome-mines.vala
index c6d5c35..f372079 100644
--- a/src/gnome-mines.vala
+++ b/src/gnome-mines.vala
@@ -591,8 +591,6 @@ public class Mines : Gtk.Application
play_pause_button.show ();
high_scores_button.hide ();
- tick_cb ();
-
int x, y, n;
switch (settings.get_int (KEY_MODE))
{
@@ -630,6 +628,7 @@ public class Mines : Gtk.Application
minefield.clock_started.connect (clock_started_cb);
minefield_view.minefield = minefield;
+
int mine_size = int.max ((int) minefield_view.mine_size, 30);
int request_x = -1, request_y = -1;
if (window.get_allocated_width () - scrolled.get_allocated_width () + 30 * x + aspect_child.spacing
+ buttons_box.get_allocated_width () < Gdk.Screen.width ()) {
@@ -660,6 +659,9 @@ public class Mines : Gtk.Application
pause_requested = false;
stack.visible_child_name = "game";
+ pause_action.set_enabled (false);
+
+ tick_cb ();
}
private void new_game_cb ()
diff --git a/src/minefield.vala b/src/minefield.vala
index 5a7dfaf..e63f118 100644
--- a/src/minefield.vala
+++ b/src/minefield.vala
@@ -101,9 +101,7 @@ public class Minefield : Object
{
get
{
- if (clock == null)
- return 0.0;
- return clock_elapsed + clock.elapsed ();
+ return clock_elapsed + (clock == null ? 0.0 : clock.elapsed ());
}
}
@@ -115,13 +113,10 @@ public class Minefield : Object
if (is_complete || exploded)
return;
- if (clock != null)
- {
- if (value && !_paused)
- stop_clock ();
- else if (!value && _paused)
- continue_clock ();
- }
+ if (value && !_paused)
+ stop_clock ();
+ else if (!value && _paused)
+ continue_clock ();
_paused = value;
paused_changed ();
@@ -395,6 +390,7 @@ public class Minefield : Object
{
if (clock == null)
return;
+ clock_elapsed += clock.elapsed ();
if (clock_timeout != 0)
Source.remove (clock_timeout);
clock_timeout = 0;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]