summaryrefslogtreecommitdiff
path: root/desktop/browser.c
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/browser.c')
-rw-r--r--desktop/browser.c37
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;