summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
Diffstat (limited to 'desktop')
-rw-r--r--desktop/browser.c2
-rw-r--r--desktop/frames.c58
-rw-r--r--desktop/frames.h4
-rw-r--r--desktop/scrollbar.c20
-rw-r--r--desktop/scrollbar.h2
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 {