summaryrefslogtreecommitdiff
path: root/render
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2012-01-11 14:20:26 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2012-01-11 14:20:26 +0000
commit04ece30fa930743d21af95d809acc2d25f82848a (patch)
treedc12f21957546d0fff08687055ccdd4a2e81509e /render
parentc08ee820764673bb6d8ac367f8637d040adf7fa2 (diff)
downloadnetsurf-04ece30fa930743d21af95d809acc2d25f82848a.tar.gz
netsurf-04ece30fa930743d21af95d809acc2d25f82848a.tar.bz2
Pass pointer constraints for drag out to front ends. Ensure content scrollbar drag termination always informs the browser window layer that the drag is over.
svn path=/trunk/netsurf/; revision=13395
Diffstat (limited to 'render')
-rw-r--r--render/form.c10
-rw-r--r--render/html_interaction.c13
2 files changed, 11 insertions, 12 deletions
diff --git a/render/form.c b/render/form.c
index 9724c4c4c..924dbb4f7 100644
--- a/render/form.c
+++ b/render/form.c
@@ -1295,19 +1295,19 @@ void form_select_menu_scroll_callback(void *client_data,
.y1 = scrollbar_data->y1
};
- browser_window_set_drag_type(html->bw, DRAGGING_OTHER,
- &rect);
+ browser_window_set_drag_type(html->bw,
+ DRAGGING_CONTENT_SCROLLBAR, &rect);
menu->scroll_capture = true;
root_bw = browser_window_get_root(html->bw);
- gui_window_box_scroll_start(root_bw->window,
- scrollbar_data->x0, scrollbar_data->y0,
- scrollbar_data->x1, scrollbar_data->y1);
}
break;
case SCROLLBAR_MSG_SCROLL_FINISHED:
menu->scroll_capture = false;
+
+ browser_window_set_drag_type(html->bw,
+ DRAGGING_NONE, NULL);
break;
default:
break;
diff --git a/render/html_interaction.c b/render/html_interaction.c
index 2bec3d26a..56d9e83b7 100644
--- a/render/html_interaction.c
+++ b/render/html_interaction.c
@@ -223,8 +223,7 @@ void html_mouse_action(struct content *c, struct browser_window *bw,
return;
}
- if (bw->drag_type != DRAGGING_NONE && !mouse &&
- html->scrollbar != NULL) {
+ if (!mouse && html->scrollbar != NULL) {
/* drag end: scrollbar */
html_overflow_scroll_drag_end(html->scrollbar, mouse, x, y);
}
@@ -856,19 +855,19 @@ void html_overflow_scroll_callback(void *client_data,
.x1 = scrollbar_data->x1,
.y1 = scrollbar_data->y1
};
- browser_window_set_drag_type(html->bw, DRAGGING_OTHER,
- &rect);
+ browser_window_set_drag_type(html->bw,
+ DRAGGING_CONTENT_SCROLLBAR, &rect);
html->scrollbar = scrollbar_data->scrollbar;
root_bw = browser_window_get_root(html->bw);
- gui_window_box_scroll_start(root_bw->window,
- scrollbar_data->x0, scrollbar_data->y0,
- scrollbar_data->x1, scrollbar_data->y1);
}
break;
case SCROLLBAR_MSG_SCROLL_FINISHED:
html->scrollbar = NULL;
+
+ browser_window_set_drag_type(html->bw,
+ DRAGGING_NONE, NULL);
browser_window_set_pointer(html->bw,
GUI_POINTER_DEFAULT);