Don't allow framesets to scroll out of view.
svn path=/trunk/netsurf/; revision=13291
This commit is contained in:
parent
b61670510f
commit
1631f3a4cb
|
@ -1618,6 +1618,16 @@ void ro_gui_window_open(wimp_open *open)
|
||||||
/* first resize stops any flickering by making the URL window on top */
|
/* first resize stops any flickering by making the URL window on top */
|
||||||
ro_gui_url_complete_resize(g->toolbar, PTR_WIMP_OPEN(&state));
|
ro_gui_url_complete_resize(g->toolbar, PTR_WIMP_OPEN(&state));
|
||||||
|
|
||||||
|
/* Windows containing framesets can only be scrolled via the core, which
|
||||||
|
* is implementing frame scrollbars itself. The x and y offsets are
|
||||||
|
* therefore fixed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (g->bw->children != NULL) {
|
||||||
|
state.xscroll = 0;
|
||||||
|
state.yscroll = toolbar_height;
|
||||||
|
}
|
||||||
|
|
||||||
error = xwimp_open_window_nested_with_flags(&state, parent, linkage);
|
error = xwimp_open_window_nested_with_flags(&state, parent, linkage);
|
||||||
if (error) {
|
if (error) {
|
||||||
LOG(("xwimp_open_window: 0x%x: %s",
|
LOG(("xwimp_open_window: 0x%x: %s",
|
||||||
|
@ -3105,9 +3115,12 @@ void ro_gui_window_scroll_action(struct gui_window *g,
|
||||||
handled = browser_window_scroll_at_point(g->bw, pos.x, pos.y,
|
handled = browser_window_scroll_at_point(g->bw, pos.x, pos.y,
|
||||||
step_x / 2, -step_y / 2);
|
step_x / 2, -step_y / 2);
|
||||||
|
|
||||||
/* If the core didn't do the scrolling, handle it via the Wimp. */
|
/* If the core didn't do the scrolling, handle it via the Wimp.
|
||||||
|
* Windows which contain frames can only be scrolled by the core,
|
||||||
|
* because it implements frame scroll bars.
|
||||||
|
*/
|
||||||
|
|
||||||
if (!handled) {
|
if (!handled && g->bw->children == NULL) {
|
||||||
state.xscroll += step_x;
|
state.xscroll += step_x;
|
||||||
state.yscroll += step_y;
|
state.yscroll += step_y;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue