]> git.cworth.org Git - kub/blobdiff - kub.c
Fix tile dragging
[kub] / kub.c
diff --git a/kub.c b/kub.c
index 489effb4cd77945d570c5b58bf81c2307f4a5896..f77dfcbd4bdd093b556332e79f616e72c6df41f7 100644 (file)
--- a/kub.c
+++ b/kub.c
@@ -97,6 +97,7 @@ typedef struct game {
     RsvgHandle *blanktile;
 
     int current_tile;
+    int select_mode;
     int diff_x, diff_y;
     int click_x, click_y;
     int release_x, release_y;    /*Currently unused*/
@@ -480,9 +481,8 @@ static void game_init(game_t *game)
     if (error)
        FATAL_ERROR (error->message);
 
-    /*This line appears to be useless, has been replaced by line below*/
-    //game->current_tile = game->deck.num_tiles - 1;
-    game->current_tile = -1;
+    game->current_tile = game->deck.num_tiles - 1;
+    game->select_mode = 1;
 
     game->diff_x = game->diff_y = 0;
 }
@@ -523,12 +523,13 @@ static gboolean on_button_press_event (GtkWidget *widget, GdkEventButton *event,
        if (event->x >= tile_x && event->x <= (tile_x + TILE_WIDTH) &&
            event->y >= tile_y && event->y <= (tile_y + TILE_HEIGHT) )
         {
+           game->select_mode = 0;
            game->current_tile = i;
            game->diff_x = event->x - tile_x;
            game->diff_y = event->y - tile_y;
         }
     }
-    if (game->current_tile == -1)
+    if (game->select_mode)
     {
        game->selection_box.visible = 1;
        /*These next two lines are likely to be replaced by...*/
@@ -543,8 +544,9 @@ static gboolean on_button_press_event (GtkWidget *widget, GdkEventButton *event,
 
 static gboolean on_button_release_event (GtkWidget *widget, GdkEventButton *event, game_t *game)
 {
-    if (game->current_tile == -1)
+    if (game->select_mode)
     {
+       game->select_mode = 0;
        selection_box_t *box;
        box = &game->selection_box;
 
@@ -579,7 +581,7 @@ static gboolean on_button_release_event (GtkWidget *widget, GdkEventButton *even
            tile_print(group.tiles[i]);
     }
 
-    game->current_tile = -1;
+    game->select_mode = 1;
 
     return TRUE;
 }
@@ -587,7 +589,7 @@ static gboolean on_button_release_event (GtkWidget *widget, GdkEventButton *even
 static gboolean on_button_motion_event (GtkWidget *widget, GdkEventMotion *event,
                                        game_t *game, cairo_t *cr)
 {
-    if (game->current_tile == -1)
+    if (game->select_mode)
     {
        selection_box_t *box;
        box = &game->selection_box;