[gnome-tetravex] Fallback double click on single click.



commit fdd3ce045154076515a6352b1a9978b0a41e9a51
Author: Arnaud Bonatti <arnaud bonatti gmail com>
Date:   Sat Sep 21 01:45:21 2019 +0200

    Fallback double click on single click.

 src/puzzle-view.vala | 56 +++++++++++++++++++++++++++-------------------------
 1 file changed, 29 insertions(+), 27 deletions(-)
---
diff --git a/src/puzzle-view.vala b/src/puzzle-view.vala
index 17f1474..264e1a1 100644
--- a/src/puzzle-view.vala
+++ b/src/puzzle-view.vala
@@ -494,39 +494,41 @@ private class PuzzleView : Gtk.DrawingArea
         if (puzzle.paused || puzzle.is_solved)
             return false;
 
-        if (event.button == 1)
+        if (event.button != 1)
+            return false;
+
+        if (event.type == Gdk.EventType.BUTTON_PRESS)
         {
-            if (event.type == Gdk.EventType.BUTTON_PRESS)
-            {
-                if (selected_tile == null)
-                    pick_tile (event.x, event.y);
-                else
-                    drop_tile (event.x, event.y);
-            }
-            else if (event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS)
-            {
-                /* Move tile from left to right on double click */
+            if (selected_tile == null)
                 pick_tile (event.x, event.y);
-                if (selected_tile == null)
-                    return false;
-                if (on_right_half (((!) selected_tile).x))
+            else
+                drop_tile (event.x, event.y);
+        }
+        else if (event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS)
+        {
+            /* Move tile from left to right on double click */
+            pick_tile (event.x, event.y);
+            if (selected_tile == null)
+                return false;
+            if (on_right_half (((!) selected_tile).x))
+            {
+                uint8 x;
+                uint8 y;
+                if (selected_tile_is_last_tile (out x, out y))
                 {
-                    uint8 x;
-                    uint8 y;
-                    if (selected_tile_is_last_tile (out x, out y))
-                    {
-                        uint8 selected_x, selected_y;
-                        puzzle.get_tile_location (((!) selected_tile).tile, out selected_x, out selected_y);
-                        if (puzzle.can_switch (selected_x, selected_y, x, y))
-                            puzzle.switch_tiles (selected_x, selected_y, x, y, final_animation_duration);
-                    }
+                    uint8 selected_x, selected_y;
+                    puzzle.get_tile_location (((!) selected_tile).tile, out selected_x, out selected_y);
+                    if (puzzle.can_switch (selected_x, selected_y, x, y))
+                        puzzle.switch_tiles (selected_x, selected_y, x, y, final_animation_duration);
                 }
                 else
-                    move_tile_to_right_half (((!) selected_tile).tile);
-                ((!) selected_tile).snap_to_cursor = true;
-                selected_tile = null;
-                tile_selected = false;
+                    return false;   /* consider double click as a single click */
             }
+            else
+                move_tile_to_right_half (((!) selected_tile).tile);
+            ((!) selected_tile).snap_to_cursor = true;
+            selected_tile = null;
+            tile_selected = false;
         }
 
         return false;


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