summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOle Loots <ole@monochrom.net>2012-02-03 00:05:37 +0000
committerOle Loots <ole@monochrom.net>2012-02-03 00:05:37 +0000
commit132ebb7dd9e13778813d850f37f76c57baaa819b (patch)
tree5e7d8a7afbc59ec6c04fa79c97e8f39de8b18a8f
parent0fad29846bd8bb4c5d67924987df921e77be7434 (diff)
downloadnetsurf-132ebb7dd9e13778813d850f37f76c57baaa819b.tar.gz
netsurf-132ebb7dd9e13778813d850f37f76c57baaa819b.tar.bz2
Mouse button holding wasn't reported to the browser because of drag optimization, resulting in internal scrollbars which only reacted on click, not mouse holding down.
svn path=/trunk/netsurf/; revision=13415
-rwxr-xr-xatari/browser.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/atari/browser.c b/atari/browser.c
index 89e557d75..df06d1882 100755
--- a/atari/browser.c
+++ b/atari/browser.c
@@ -251,7 +251,8 @@ static void __CDECL browser_evnt_mbutton( COMPONENT * c, long buff[8], void * da
int sy_origin = (my + gw->browser->scroll.current.y);
short rel_cur_x, rel_cur_y;
- short prev_x=sx_origin, prev_y=sy_origin;
+ short prev_x=sx_origin, prev_y=sy_origin;
+ bool dragmode = 0;
/* Detect left mouse button state and compare with event state: */
graf_mkstate(&rel_cur_x, &rel_cur_y, &mbut, &dummy);
@@ -265,13 +266,19 @@ static void __CDECL browser_evnt_mbutton( COMPONENT * c, long buff[8], void * da
do{
if( abs(prev_x-rel_cur_x) > 5 || abs(prev_y-rel_cur_y) > 5 ){
browser_window_mouse_track( gw->browser->bw,
- BROWSER_MOUSE_DRAG_ON|BROWSER_MOUSE_HOLDING_1,
+ BROWSER_MOUSE_DRAG_ON|BROWSER_MOUSE_DRAG_1,
rel_cur_x, rel_cur_y);
prev_x = rel_cur_x;
- prev_y = rel_cur_y;
- if( browser_redraw_required( gw ) ){
- browser_redraw( gw );
- }
+ prev_y = rel_cur_y;
+ dragmode = true;
+ } else {
+ if( dragmode == false ){
+ browser_window_mouse_track( gw->browser->bw,BROWSER_MOUSE_PRESS_1,
+ rel_cur_x, rel_cur_y);
+ }
+ }
+ if( browser_redraw_required( gw ) ){
+ browser_redraw( gw );
}
graf_mkstate(&rel_cur_x, &rel_cur_y, &mbut, &dummy);
rel_cur_x = (rel_cur_x - cwork.g_x) + gw->browser->scroll.current.x;