diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2011-06-27 17:29:49 +0000 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2011-06-27 17:29:49 +0000 |
commit | 23eea5de9fc46283123248bc3c1306266297205c (patch) | |
tree | 5d7a8686ac0fb1618383fa15b69e8aa372d691ce /desktop/browser.c | |
parent | 311080ff54268aeccc19277dead9f276e27e1f43 (diff) | |
download | netsurf-23eea5de9fc46283123248bc3c1306266297205c.tar.gz netsurf-23eea5de9fc46283123248bc3c1306266297205c.tar.bz2 |
Fix bw->drag_type to be aware of remaining drag types.
svn path=/trunk/netsurf/; revision=12514
Diffstat (limited to 'desktop/browser.c')
-rw-r--r-- | desktop/browser.c | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/desktop/browser.c b/desktop/browser.c index df6ce480b..babd5d49c 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -224,6 +224,13 @@ void browser_window_set_position(struct browser_window *bw, int x, int y) } } +/* exported interface, documented in browser.h */ +void browser_window_set_drag_type(struct browser_window *bw, + browser_drag_type type) +{ + bw->drag_type = type; +} + /** * Create and open a new root browser window with the given page. * @@ -1770,20 +1777,9 @@ void browser_window_mouse_click(struct browser_window *bw, void browser_window_mouse_drag_end(struct browser_window *bw, browser_mouse_state mouse, int x, int y) { - - if (bw->visible_select_menu != NULL) { - form_select_mouse_drag_end(bw->visible_select_menu, mouse, - x, y); - return; - } - - if (bw->scrollbar != NULL) { - html_overflow_scroll_drag_end(bw->scrollbar, mouse, x, y); - return; - } - switch (bw->drag_type) { - case DRAGGING_SELECTION: { + case DRAGGING_SELECTION: + { hlcache_handle *h = bw->current_content; if (h) { int dir = -1; @@ -1807,7 +1803,20 @@ void browser_window_mouse_drag_end(struct browser_window *bw, } selection_drag_end(bw->sel); } - break; + break; + + case DRAGGING_OTHER: + + if (bw->visible_select_menu != NULL) { + form_select_mouse_drag_end(bw->visible_select_menu, + mouse, x, y); + } + + if (bw->scrollbar != NULL) { + html_overflow_scroll_drag_end(bw->scrollbar, + mouse, x, y); + } + break; default: break; |