ref: eb8a374d0dd263953647067ec26b1fc33661d3f5
parent: e5d773604fb5bd14e0814bfea88851313bd56e93
author: Simon Tatham <anakin@pobox.com>
date: Tue May 11 14:32:48 EDT 2004
We should turn off the dragging variables in the UI _whenever_ `enddrag' is TRUE, not just when the end of the drag was within a sensible range. [originally from svn r4210]
--- a/rect.c
+++ b/rect.c
@@ -1009,38 +1009,45 @@
active = TRUE;
}
- if (enddrag && (xc >= 0 && xc <= 2*from->w &&
- yc >= 0 && yc <= 2*from->h)) {
- ret = dup_game(from);
+ ret = NULL;
- if (ui->dragged) {
- ui_draw_rect(ret, ui, ret->hedge, ret->vedge, 1);
- } else {
- if ((xc & 1) && !(yc & 1) && HRANGE(from,xc/2,yc/2)) {
- hedge(ret,xc/2,yc/2) = !hedge(ret,xc/2,yc/2);
- }
- if ((yc & 1) && !(xc & 1) && VRANGE(from,xc/2,yc/2)) {
- vedge(ret,xc/2,yc/2) = !vedge(ret,xc/2,yc/2);
- }
- }
+ if (enddrag) {
+ if (xc >= 0 && xc <= 2*from->w &&
+ yc >= 0 && yc <= 2*from->h) {
+ ret = dup_game(from);
- ui->drag_start_x = -1;
- ui->drag_start_y = -1;
- ui->drag_end_x = -1;
- ui->drag_end_y = -1;
- ui->dragged = FALSE;
- active = TRUE;
+ if (ui->dragged) {
+ ui_draw_rect(ret, ui, ret->hedge, ret->vedge, 1);
+ } else {
+ if ((xc & 1) && !(yc & 1) && HRANGE(from,xc/2,yc/2)) {
+ hedge(ret,xc/2,yc/2) = !hedge(ret,xc/2,yc/2);
+ }
+ if ((yc & 1) && !(xc & 1) && VRANGE(from,xc/2,yc/2)) {
+ vedge(ret,xc/2,yc/2) = !vedge(ret,xc/2,yc/2);
+ }
+ }
- if (!memcmp(ret->hedge, from->hedge, from->w*from->h) &&
- !memcmp(ret->vedge, from->vedge, from->w*from->h)) {
- free_game(ret);
- } else
- return ret; /* a move has been made */
+ if (!memcmp(ret->hedge, from->hedge, from->w*from->h) &&
+ !memcmp(ret->vedge, from->vedge, from->w*from->h)) {
+ free_game(ret);
+ ret = NULL;
+ }
+ }
+
+ ui->drag_start_x = -1;
+ ui->drag_start_y = -1;
+ ui->drag_end_x = -1;
+ ui->drag_end_y = -1;
+ ui->dragged = FALSE;
+ active = TRUE;
}
- if (active)
+ if (ret)
+ return ret; /* a move has been made */
+ else if (active)
return from; /* UI activity has occurred */
- return NULL;
+ else
+ return NULL;
}
/* ----------------------------------------------------------------------