[gnome-tetravex] Fix unexpected behavior.



commit 67fe4202d443b87072ddb530bd7aca94b550e65d
Author: Arnaud Bonatti <arnaud bonatti gmail com>
Date:   Thu Oct 17 22:50:23 2019 +0200

    Fix unexpected behavior.

 src/gnome-tetravex.vala |  8 ++++----
 src/puzzle-view.vala    | 30 +++++++++++++++++++++++++++++-
 2 files changed, 33 insertions(+), 5 deletions(-)
---
diff --git a/src/gnome-tetravex.vala b/src/gnome-tetravex.vala
index edf8e2d..1260a2a 100644
--- a/src/gnome-tetravex.vala
+++ b/src/gnome-tetravex.vala
@@ -748,16 +748,16 @@ private class Tetravex : Gtk.Application
         new_game ();
     }
 
-    private void move_up ()     { puzzle.move_up ();    }
-    private void move_down ()   { puzzle.move_down ();  }
+    private void move_up ()     { view.move_up ();    }
+    private void move_down ()   { view.move_down ();  }
     private void move_left ()
     {
         if (!puzzle.is_solved_right)
-            puzzle.move_left ();
+            view.move_left ();
         else if (!puzzle.paused && !view.tile_selected)
             finish_cb ();
     }
-    private void move_right ()  { puzzle.move_right (); }
+    private void move_right ()  { view.move_right (); }
 
     private void undo_cb ()
     {
diff --git a/src/puzzle-view.vala b/src/puzzle-view.vala
index 4f8e58d..6df97d3 100644
--- a/src/puzzle-view.vala
+++ b/src/puzzle-view.vala
@@ -1099,6 +1099,34 @@ private class PuzzleView : Gtk.DrawingArea
 
     internal void disable_highlight ()
     {
-        clear_keyboard_highlight (false);
+        clear_keyboard_highlight (/* only selection */ false);
+    }
+
+    /*\
+    * * moving all tiles
+    \*/
+
+    internal void move_up ()
+    {
+        if (selected_tile == null)
+            puzzle.move_up ();
+    }
+
+    internal void move_down ()
+    {
+        if (selected_tile == null)
+            puzzle.move_down ();
+    }
+
+    internal void move_left ()
+    {
+        if (selected_tile == null)
+            puzzle.move_left ();
+    }
+
+    internal void move_right ()
+    {
+        if (selected_tile == null)
+            puzzle.move_right ();
     }
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]