diff options
author | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2012-08-16 18:11:13 +0100 |
---|---|---|
committer | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2012-08-16 18:11:13 +0100 |
commit | 27b65235e99dfd76ac4aaa8a5f35f7124c7211f7 (patch) | |
tree | 10abb8016e70c02467f95a45b1b9012345d8ab07 /desktop | |
parent | fd3aadf8fa99974eba6d239c7d73bdd45c13e491 (diff) | |
parent | d8872b6bab6cbe551d51fd9d795d2123572c2a16 (diff) | |
download | netsurf-27b65235e99dfd76ac4aaa8a5f35f7124c7211f7.tar.gz netsurf-27b65235e99dfd76ac4aaa8a5f35f7124c7211f7.tar.bz2 |
Merge branch 'master' of git://git.netsurf-browser.org/netsurf
Diffstat (limited to 'desktop')
-rw-r--r-- | desktop/browser.c | 2 | ||||
-rw-r--r-- | desktop/frames.c | 58 | ||||
-rw-r--r-- | desktop/frames.h | 4 | ||||
-rw-r--r-- | desktop/scrollbar.c | 20 | ||||
-rw-r--r-- | desktop/scrollbar.h | 2 |
5 files changed, 42 insertions, 44 deletions
diff --git a/desktop/browser.c b/desktop/browser.c index b7869859f..136557a75 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -419,7 +419,7 @@ browser_drag_type browser_window_get_drag_type(struct browser_window *bw) /* exported interface, documented in browser.h */ struct browser_window * browser_window_get_root(struct browser_window *bw) { - while (bw && !bw->window && bw->parent) { + while (bw && bw->parent) { bw = bw->parent; } return bw; diff --git a/desktop/frames.c b/desktop/frames.c index c5934cdc1..836108aa3 100644 --- a/desktop/frames.c +++ b/desktop/frames.c @@ -59,9 +59,6 @@ void browser_window_scroll_callback(void *client_data, struct browser_window *bw = client_data; switch(scrollbar_data->msg) { - case SCROLLBAR_MSG_REDRAW: - /* TODO: Is this needed? */ - break; case SCROLLBAR_MSG_MOVED: if (bw->browser_window_type == BROWSER_WINDOW_IFRAME) { html_redraw_a_box(bw->parent->current_content, bw->box); @@ -291,7 +288,8 @@ void browser_window_recalculate_iframes(struct browser_window *bw) */ void browser_window_create_frameset(struct browser_window *bw, - struct content_html_frames *frameset) { + struct content_html_frames *frameset) +{ int row, col, index; struct content_html_frames *frame; struct browser_window *window; @@ -404,7 +402,8 @@ void browser_window_create_frameset(struct browser_window *bw, * \param bw The browser window to reposition framesets for */ -void browser_window_recalculate_frameset(struct browser_window *bw) { +void browser_window_recalculate_frameset(struct browser_window *bw) +{ int widths[bw->cols][bw->rows]; int heights[bw->cols][bw->rows]; int bw_width, bw_height; @@ -639,7 +638,8 @@ void browser_window_recalculate_frameset(struct browser_window *bw) { * \param bw The browser window to resize */ -void browser_window_resize_frame(struct browser_window *bw, int x, int y) { +void browser_window_resize_frame(struct browser_window *bw, int x, int y) +{ struct browser_window *parent; struct browser_window *sibling; int col = -1, row = -1, i; @@ -682,7 +682,8 @@ void browser_window_resize_frame(struct browser_window *bw, int x, int y) { bool browser_window_resolve_frame_dimension(struct browser_window *bw, struct browser_window *sibling, - int x, int y, bool width, bool height) { + int x, int y, bool width, bool height) +{ int bw_dimension, sibling_dimension; int bw_pixels, sibling_pixels; struct frame_dimension *bw_d, *sibling_d; @@ -797,10 +798,10 @@ bool browser_window_resolve_frame_dimension(struct browser_window *bw, } -bool browser_window_resize_frames(struct browser_window *bw, +static bool browser_window_resize_frames(struct browser_window *bw, browser_mouse_state mouse, int x, int y, - gui_pointer_shape *pointer, const char **status, - bool *action) { + gui_pointer_shape *pointer) +{ struct browser_window *parent; bool left, right, up, down; int i, resize_margin; @@ -851,13 +852,21 @@ bool browser_window_resize_frames(struct browser_window *bw, /* check the sibling frames can be resized */ if (left) - left &= !parent->children[row * parent->cols + (col - 1)].no_resize; + left &= !parent->children[row * + parent->cols + (col - 1)]. + no_resize; if (right) - right &= !parent->children[row * parent->cols + (col + 1)].no_resize; + right &= !parent->children[row * + parent->cols + (col + 1)]. + no_resize; if (up) - up &= !parent->children[(row - 1) * parent->cols + col].no_resize; + up &= !parent->children[(row - 1) * + parent->cols + col]. + no_resize; if (down) - down &= !parent->children[(row + 1) * parent->cols + col].no_resize; + down &= !parent->children[(row + 1) * + parent->cols + col]. + no_resize; /* can't have opposite directions simultaneously */ if (up) @@ -899,9 +908,6 @@ bool browser_window_resize_frames(struct browser_window *bw, bw->drag_resize_right = right; bw->drag_resize_up = up; bw->drag_resize_down = down; - - *status = messages_get("FrameDrag"); - *action = true; } return true; } @@ -910,14 +916,28 @@ bool browser_window_resize_frames(struct browser_window *bw, if (bw->children) { for (i = 0; i < (bw->cols * bw->rows); i++) if (browser_window_resize_frames(&bw->children[i], - mouse, x, y, pointer, status, action)) + mouse, x, y, pointer)) return true; } if (bw->iframes) { for (i = 0; i < bw->iframe_count; i++) if (browser_window_resize_frames(&bw->iframes[i], - mouse, x, y, pointer, status, action)) + mouse, x, y, pointer)) return true; } return false; } + + +bool browser_window_frame_resize_start(struct browser_window *bw, + browser_mouse_state mouse, int x, int y, + gui_pointer_shape *pointer) +{ + struct browser_window *root = browser_window_get_root(bw); + int offx, offy; + + browser_window_get_position(bw, true, &offx, &offy); + + return browser_window_resize_frames(root, mouse, + x + offx, y + offy, pointer); +} diff --git a/desktop/frames.h b/desktop/frames.h index 11fbcea2f..efbe6a8c2 100644 --- a/desktop/frames.h +++ b/desktop/frames.h @@ -33,9 +33,9 @@ void browser_window_recalculate_iframes(struct browser_window *bw); void browser_window_create_frameset(struct browser_window *bw, struct content_html_frames *frameset); void browser_window_recalculate_frameset(struct browser_window *bw); -bool browser_window_resize_frames(struct browser_window *bw, +bool browser_window_frame_resize_start(struct browser_window *bw, browser_mouse_state mouse, int x, int y, - gui_pointer_shape *pointer, const char **status, bool *action); + gui_pointer_shape *pointer); void browser_window_resize_frame(struct browser_window *bw, int x, int y); void browser_window_scroll_callback(void *client_data, diff --git a/desktop/scrollbar.c b/desktop/scrollbar.c index ac4c39944..7768be233 100644 --- a/desktop/scrollbar.c +++ b/desktop/scrollbar.c @@ -427,16 +427,6 @@ void scrollbar_set(struct scrollbar *s, int value, bool bar_pos) msg.msg = SCROLLBAR_MSG_MOVED; msg.scroll_offset = s->offset; s->client_callback(s->client_data, &msg); - - msg.msg = SCROLLBAR_MSG_REDRAW; - msg.x0 = s->horizontal ? SCROLLBAR_WIDTH - 1 : 0; - msg.y0 = s->horizontal ? 0 : SCROLLBAR_WIDTH - 1; - msg.x1 = (s->horizontal ? s->length - SCROLLBAR_WIDTH + 1 : - SCROLLBAR_WIDTH); - msg.y1 = (s->horizontal ? SCROLLBAR_WIDTH : - s->length - SCROLLBAR_WIDTH + 1); - - s->client_callback(s->client_data, &msg); } @@ -498,16 +488,6 @@ bool scrollbar_scroll(struct scrollbar *s, int change) msg.scroll_offset = s->offset; s->client_callback(s->client_data, &msg); - msg.msg = SCROLLBAR_MSG_REDRAW; - msg.x0 = s->horizontal ? SCROLLBAR_WIDTH - 1 : 0; - msg.y0 = s->horizontal ? 0 : SCROLLBAR_WIDTH - 1; - msg.x1 = (s->horizontal ? s->length - SCROLLBAR_WIDTH + 1 : - SCROLLBAR_WIDTH); - msg.y1 = (s->horizontal ? SCROLLBAR_WIDTH : - s->length - SCROLLBAR_WIDTH + 1); - - s->client_callback(s->client_data, &msg); - return true; } diff --git a/desktop/scrollbar.h b/desktop/scrollbar.h index 4bd9a17c0..2ce4a154e 100644 --- a/desktop/scrollbar.h +++ b/desktop/scrollbar.h @@ -39,7 +39,6 @@ struct scrollbar; typedef enum { - SCROLLBAR_MSG_REDRAW, /* the scrollbar requests a redraw */ SCROLLBAR_MSG_MOVED, /* the scroll value has changed */ SCROLLBAR_MSG_SCROLL_START, /* a scrollbar drag has started, all * mouse events should be passed to @@ -47,7 +46,6 @@ typedef enum { * coordinates */ SCROLLBAR_MSG_SCROLL_FINISHED, /* cancel the above */ - } scrollbar_msg; struct scrollbar_msg_data { |