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