diff options
Diffstat (limited to 'desktop/browser.c')
-rw-r--r-- | desktop/browser.c | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/desktop/browser.c b/desktop/browser.c index fbb91b02c..4d54e8bc4 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -383,16 +383,28 @@ void browser_window_set_drag_type(struct browser_window *bw, browser_drag_type type, struct rect *rect) { struct browser_window *top_bw = browser_window_get_root(bw); + gui_drag_type gtype; - if (type == DRAGGING_NONE) + bw->drag_type = type; + + if (type == DRAGGING_NONE) { top_bw->drag_window = NULL; - else + } else { top_bw->drag_window = bw; - bw->drag_type = type; + switch (type) { + case DRAGGING_SCR_X: + case DRAGGING_SCR_Y: + case DRAGGING_CONTENT_SCROLLBAR: + gtype = GDRAGGING_SCROLLBAR; + break; + default: + gtype = GDRAGGING_OTHER; + break; + } - /* TODO: inform front end that the core is handling drag, - * pass rect */ + gui_window_drag_start(top_bw->window, gtype, rect); + } } /* exported interface, documented in browser.h */ @@ -2554,10 +2566,8 @@ void browser_window_mouse_drag_end(struct browser_window *bw, switch (bw->drag_type) { case DRAGGING_SELECTION: - /* Drag handled by content handler */ - break; - case DRAGGING_OTHER: + case DRAGGING_CONTENT_SCROLLBAR: /* Drag handled by content handler */ break; |