mirror of
https://github.com/netsurf-browser/netsurf
synced 2025-02-27 03:44:23 +03:00
Avoid copying rectangle for redraw_request calls.
This commit is contained in:
parent
b4a3c94cf0
commit
e2fbd3a266
@ -42,7 +42,7 @@ struct core_window_callback_table {
|
||||
* \param cw the core window object
|
||||
* \param r rectangle to redraw
|
||||
*/
|
||||
void (*redraw_request)(struct core_window *cw, struct rect r);
|
||||
void (*redraw_request)(struct core_window *cw, const struct rect *r);
|
||||
|
||||
/**
|
||||
* Update the limits of the window
|
||||
@ -59,7 +59,7 @@ struct core_window_callback_table {
|
||||
* \param cw the core window object
|
||||
* \param r rectangle to make visible
|
||||
*/
|
||||
void (*scroll_visible)(struct core_window *cw, struct rect r);
|
||||
void (*scroll_visible)(struct core_window *cw, const struct rect *r);
|
||||
|
||||
/**
|
||||
* Get window viewport dimensions
|
||||
|
@ -187,12 +187,13 @@ const char *tree_hotlist_path = NULL;
|
||||
|
||||
int treeview_inits;
|
||||
|
||||
static void treeview_test_redraw_request(struct core_window *cw, struct rect r)
|
||||
static void treeview_test_redraw_request(struct core_window *cw,
|
||||
const struct rect *r)
|
||||
{
|
||||
struct tree *tree = (struct tree *)cw;
|
||||
|
||||
tree->callbacks->redraw_request(r.x0, r.y0,
|
||||
r.x1 - r.x0, r.y1 - r.y0,
|
||||
tree->callbacks->redraw_request(r->x0, r->y0,
|
||||
r->x1 - r->x0, r->y1 - r->y0,
|
||||
tree->client_data);
|
||||
}
|
||||
|
||||
@ -204,7 +205,8 @@ static void treeview_test_update_size(struct core_window *cw,
|
||||
tree->callbacks->resized(tree, width, height, tree->client_data);
|
||||
}
|
||||
|
||||
static void treeview_test_scroll_visible(struct core_window *cw, struct rect r)
|
||||
static void treeview_test_scroll_visible(struct core_window *cw,
|
||||
const struct rect *r)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -573,7 +573,7 @@ nserror treeview_create_node_folder(treeview *tree,
|
||||
r.y0 = treeview_node_y(tree, n);
|
||||
r.x1 = REDRAW_MAX;
|
||||
r.y1 = tree->root->height;
|
||||
tree->cw_t->redraw_request(tree->cw_h, r);
|
||||
tree->cw_t->redraw_request(tree->cw_h, &r);
|
||||
}
|
||||
}
|
||||
|
||||
@ -623,7 +623,7 @@ nserror treeview_update_node_folder(treeview *tree,
|
||||
r.y0 = treeview_node_y(tree, folder);
|
||||
r.x1 = REDRAW_MAX;
|
||||
r.y1 = r.y0 + tree_g.line_height;
|
||||
tree->cw_t->redraw_request(tree->cw_h, r);
|
||||
tree->cw_t->redraw_request(tree->cw_h, &r);
|
||||
}
|
||||
|
||||
return NSERROR_OK;
|
||||
@ -694,7 +694,7 @@ nserror treeview_update_node_entry(treeview *tree,
|
||||
r.y0 = treeview_node_y(tree, entry);
|
||||
r.x1 = REDRAW_MAX;
|
||||
r.y1 = r.y0 + entry->height;
|
||||
tree->cw_t->redraw_request(tree->cw_h, r);
|
||||
tree->cw_t->redraw_request(tree->cw_h, &r);
|
||||
}
|
||||
|
||||
return NSERROR_OK;
|
||||
@ -779,7 +779,7 @@ nserror treeview_create_node_entry(treeview *tree,
|
||||
r.y0 = treeview_node_y(tree, n);
|
||||
r.x1 = REDRAW_MAX;
|
||||
r.y1 = tree->root->height;
|
||||
tree->cw_t->redraw_request(tree->cw_h, r);
|
||||
tree->cw_t->redraw_request(tree->cw_h, &r);
|
||||
}
|
||||
}
|
||||
|
||||
@ -900,7 +900,7 @@ static void treeview_edit_cancel(treeview *tree, bool redraw)
|
||||
r.y0 = tree->edit.y;
|
||||
r.x1 = tree->edit.x + tree->edit.w;
|
||||
r.y1 = tree->edit.y + tree->edit.h;
|
||||
tree->cw_t->redraw_request(tree->cw_h, r);
|
||||
tree->cw_t->redraw_request(tree->cw_h, &r);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1182,7 +1182,7 @@ nserror treeview_delete_node(treeview *tree, treeview_node *n)
|
||||
if (p->flags & TREE_NODE_EXPANDED) {
|
||||
r.x0 = 0;
|
||||
r.x1 = REDRAW_MAX;
|
||||
tree->cw_t->redraw_request(tree->cw_h, r);
|
||||
tree->cw_t->redraw_request(tree->cw_h, &r);
|
||||
}
|
||||
|
||||
return NSERROR_OK;
|
||||
@ -2450,7 +2450,7 @@ bool treeview_keypress(treeview *tree, uint32_t key)
|
||||
}
|
||||
|
||||
if (redraw) {
|
||||
tree->cw_t->redraw_request(tree->cw_h, r);
|
||||
tree->cw_t->redraw_request(tree->cw_h, &r);
|
||||
}
|
||||
|
||||
return true;
|
||||
@ -2621,7 +2621,7 @@ static void treeview_textarea_callback(void *data, struct textarea_msg *msg)
|
||||
r->y1 += tree->edit.y;
|
||||
|
||||
/* Redraw the textarea */
|
||||
tree->cw_t->redraw_request(tree->cw_h, *r);
|
||||
tree->cw_t->redraw_request(tree->cw_h, r);
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -2794,7 +2794,7 @@ void treeview_edit_selection(treeview *tree)
|
||||
rect.y0 = y;
|
||||
rect.x1 = REDRAW_MAX;
|
||||
rect.y1 = y + tree_g.line_height;
|
||||
tree->cw_t->redraw_request(tree->cw_h, rect);
|
||||
tree->cw_t->redraw_request(tree->cw_h, &rect);
|
||||
}
|
||||
|
||||
|
||||
@ -3054,7 +3054,7 @@ static nserror treeview_node_mouse_action_cb(treeview_node *node, void *ctx,
|
||||
}
|
||||
|
||||
if (redraw) {
|
||||
ma->tree->cw_t->redraw_request(ma->tree->cw_h, r);
|
||||
ma->tree->cw_t->redraw_request(ma->tree->cw_h, &r);
|
||||
}
|
||||
|
||||
*end = true; /* Reached line with click; stop walking tree */
|
||||
@ -3116,7 +3116,7 @@ void treeview_mouse_action(treeview *tree,
|
||||
|
||||
tree->cw_t->drag_status(tree->cw_h,
|
||||
CORE_WINDOW_DRAG_NONE);
|
||||
tree->cw_t->redraw_request(tree->cw_h, r);
|
||||
tree->cw_t->redraw_request(tree->cw_h, &r);
|
||||
return;
|
||||
default:
|
||||
/* No drag to end */
|
||||
@ -3191,7 +3191,7 @@ void treeview_mouse_action(treeview *tree,
|
||||
}
|
||||
|
||||
if (redraw) {
|
||||
tree->cw_t->redraw_request(tree->cw_h, r);
|
||||
tree->cw_t->redraw_request(tree->cw_h, &r);
|
||||
}
|
||||
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user