diff options
author | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2011-11-10 18:58:47 +0000 |
---|---|---|
committer | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2011-11-10 18:58:47 +0000 |
commit | 36599a09cead791900935aeadcea49d46ff6a786 (patch) | |
tree | 29793cc6bdb33317df0cbe55ad29a0eabddd901a /amiga/tree.c | |
parent | b14c4f0a0b9ee3c3f2f1239c0c05b7b5a19ee1fa (diff) | |
download | netsurf-36599a09cead791900935aeadcea49d46ff6a786.tar.gz netsurf-36599a09cead791900935aeadcea49d46ff6a786.tar.bz2 |
Clicks become drags only after 2px
svn path=/trunk/netsurf/; revision=13145
Diffstat (limited to 'amiga/tree.c')
-rwxr-xr-x | amiga/tree.c | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/amiga/tree.c b/amiga/tree.c index 1ace82d13..60bf21aaa 100755 --- a/amiga/tree.c +++ b/amiga/tree.c @@ -871,23 +871,25 @@ BOOL ami_tree_event(struct treeview_window *twin) if(twin->mouse_state & BROWSER_MOUSE_PRESS_1) { - tree_mouse_action(twin->tree, - BROWSER_MOUSE_DRAG_1 | twin->key_state, x, y); - twin->mouse_state = BROWSER_MOUSE_HOLDING_1 | - BROWSER_MOUSE_DRAG_ON; - if(twin->drag_x == 0) twin->drag_x = x; - if(twin->drag_y == 0) twin->drag_y = y; - ami_tree_drag_icon_show(twin); + if((abs(x - twin->drag_x) + abs(y - twin->drag_y)) > 2) + { + tree_mouse_action(twin->tree, + BROWSER_MOUSE_DRAG_1 | twin->key_state, x, y); + twin->mouse_state = BROWSER_MOUSE_HOLDING_1 | + BROWSER_MOUSE_DRAG_ON; + ami_tree_drag_icon_show(twin); + } } else if(twin->mouse_state & BROWSER_MOUSE_PRESS_2) { - tree_mouse_action(twin->tree, - BROWSER_MOUSE_DRAG_2 | twin->key_state, x, y); - twin->mouse_state = BROWSER_MOUSE_HOLDING_2 | - BROWSER_MOUSE_DRAG_ON; - if(twin->drag_x == 0) twin->drag_x = x; - if(twin->drag_y == 0) twin->drag_y = y; - ami_tree_drag_icon_show(twin); + if((abs(x - twin->drag_x) + abs(y - twin->drag_y)) > 2) + { + tree_mouse_action(twin->tree, + BROWSER_MOUSE_DRAG_2 | twin->key_state, x, y); + twin->mouse_state = BROWSER_MOUSE_HOLDING_2 | + BROWSER_MOUSE_DRAG_ON; + ami_tree_drag_icon_show(twin); + } } } twin->lastclick.tv_sec = 0; @@ -910,9 +912,13 @@ BOOL ami_tree_event(struct treeview_window *twin) { case SELECTDOWN: twin->mouse_state = BROWSER_MOUSE_PRESS_1; + if(twin->drag_x == 0) twin->drag_x = x; + if(twin->drag_y == 0) twin->drag_y = y; break; case MIDDLEDOWN: twin->mouse_state = BROWSER_MOUSE_PRESS_2; + if(twin->drag_x == 0) twin->drag_x = x; + if(twin->drag_y == 0) twin->drag_y = y; break; } } |