[gnome-tetravex] Do not drop tile while unpausing.
- From: Arnaud B. <arnaudb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-tetravex] Do not drop tile while unpausing.
- Date: Mon, 16 Sep 2019 23:39:33 +0000 (UTC)
commit 1d91282bb1a479414996910d5969c57ffd488f62
Author: Arnaud Bonatti <arnaud bonatti gmail com>
Date: Tue Sep 17 01:36:21 2019 +0200
Do not drop tile while unpausing.
Clicking on the view when
the game is paused should
unpause, without dropping
–if any– the moving tile.
src/gnome-tetravex.vala | 4 ++--
src/puzzle-view.vala | 5 ++++-
src/puzzle.vala | 8 +++-----
3 files changed, 9 insertions(+), 8 deletions(-)
---
diff --git a/src/gnome-tetravex.vala b/src/gnome-tetravex.vala
index b9657e8..e98a925 100644
--- a/src/gnome-tetravex.vala
+++ b/src/gnome-tetravex.vala
@@ -138,7 +138,7 @@ private class Tetravex : Gtk.Application
view = new PuzzleView ();
view.hexpand = true;
view.vexpand = true;
- view.button_press_event.connect (view_button_press_event);
+ view.button_release_event.connect (view_button_release_event);
grid.attach (view, 0, 0, 3, 1);
SizeGroup sizegroup = new SizeGroup (SizeGroupMode.BOTH);
@@ -367,7 +367,7 @@ private class Tetravex : Gtk.Application
show_scores ();
}
- private bool view_button_press_event (Widget widget, Gdk.EventButton event)
+ private bool view_button_release_event (Widget widget, Gdk.EventButton event)
{
/* Cancel pause on click */
if (puzzle.paused)
diff --git a/src/puzzle-view.vala b/src/puzzle-view.vala
index 108cc62..6a1d337 100644
--- a/src/puzzle-view.vala
+++ b/src/puzzle-view.vala
@@ -68,7 +68,7 @@ public class PuzzleView : Gtk.DrawingArea
}
}
_puzzle.tile_moved.connect (tile_moved_cb);
- _puzzle.paused_changed.connect (() => { queue_draw (); });
+ _puzzle.notify ["paused"].connect (() => { queue_draw (); });
queue_resize ();
}
}
@@ -504,6 +504,9 @@ public class PuzzleView : Gtk.DrawingArea
public override bool button_release_event (Gdk.EventButton event)
{
+ if (puzzle.paused)
+ return false;
+
if (event.button == 1 && selected_tile != null && selection_timeout == 0)
drop_tile (event.x, event.y);
diff --git a/src/puzzle.vala b/src/puzzle.vala
index 2365cce..9b87021 100644
--- a/src/puzzle.vala
+++ b/src/puzzle.vala
@@ -53,9 +53,9 @@ public class Puzzle : Object
}
private bool _paused = false;
- public bool paused
+ [CCode (notify = true)] internal bool paused
{
- set
+ internal set
{
_paused = value;
if (clock != null)
@@ -65,14 +65,12 @@ public class Puzzle : Object
else
continue_clock ();
}
- paused_changed ();
}
- get { return _paused; }
+ internal get { return _paused; }
}
public signal void tile_moved (Tile tile, uint x, uint y);
public signal void solved ();
- public signal void paused_changed ();
public signal void tick ();
public bool is_solved
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]