From 25d37bea83f759fe07dca78790b69b76c3c6f773 Mon Sep 17 00:00:00 2001 From: Kevin Worth Date: Wed, 14 Mar 2007 11:02:17 -0400 Subject: [PATCH] Fixed bug so that when no tile is clicked, no tile moves. --- kub.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/kub.c b/kub.c index f2fe3b2..bb29e6f 100644 --- a/kub.c +++ b/kub.c @@ -446,6 +446,8 @@ static gboolean on_button_press_event (GtkWidget *widget, GdkEventButton *event, event->y >= tile_y && event->y <= (tile_y + TILE_HEIGHT) ) game->current_tile = i; + else + game->current_tile = -1; } return TRUE; @@ -462,19 +464,20 @@ static gboolean on_button_motion_event (GtkWidget *widget, GdkEventMotion *event game_t *game, cairo_t *cr) { tile_t *tile; - - tile = &game->deck.tiles[game->current_tile]; - - /* First, invalidate the region where the tile currently is. */ - gtk_widget_queue_draw_area (widget, tile->x, tile->y, TILE_WIDTH, TILE_HEIGHT); - - /* Then, move the tile */ - tile->x = event->x; - tile->y = event->y; - - /* Finally, invalidate the region where the tile is now. */ - gtk_widget_queue_draw_area (widget, tile->x, tile->y, TILE_WIDTH, TILE_HEIGHT); - + if (game->current_tile >= 0) + { + tile = &game->deck.tiles[game->current_tile]; + + /* First, invalidate the region where the tile currently is. */ + gtk_widget_queue_draw_area (widget, tile->x, tile->y, TILE_WIDTH, TILE_HEIGHT); + + /* Then, move the tile */ + tile->x = event->x; + tile->y = event->y; + + /* Finally, invalidate the region where the tile is now. */ + gtk_widget_queue_draw_area (widget, tile->x, tile->y, TILE_WIDTH, TILE_HEIGHT); + } return TRUE; } -- 2.43.0