summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
Diffstat (limited to 'desktop')
-rw-r--r--desktop/browser.c6
-rw-r--r--desktop/gui.h18
-rw-r--r--desktop/gui_factory.c6
3 files changed, 24 insertions, 6 deletions
diff --git a/desktop/browser.c b/desktop/browser.c
index 7c29468c3..6d260a538 100644
--- a/desktop/browser.c
+++ b/desktop/browser.c
@@ -1974,7 +1974,7 @@ void browser_window_update(struct browser_window *bw, bool scroll_to_top)
browser_window_set_scroll(bw, x, y);
}
- gui_window_redraw_window(bw->window);
+ guit->window->redraw(bw->window);
break;
@@ -2040,7 +2040,7 @@ void browser_window_update_box(struct browser_window *bw, struct rect *rect)
if (bw->window != NULL) {
/* Front end window */
- gui_window_update_box(bw->window, rect);
+ guit->window->update(bw->window, rect);
} else {
/* Core managed browser window */
browser_window_get_position(bw, true, &pos_x, &pos_y);
@@ -2052,7 +2052,7 @@ void browser_window_update_box(struct browser_window *bw, struct rect *rect)
rect->x1 += pos_x / bw->scale;
rect->y1 += pos_y / bw->scale;
- gui_window_update_box(top->window, rect);
+ guit->window->update(top->window, rect);
}
}
diff --git a/desktop/gui.h b/desktop/gui.h
index 1ab871f33..0b7bdcca6 100644
--- a/desktop/gui.h
+++ b/desktop/gui.h
@@ -79,6 +79,21 @@ struct gui_window_table {
/** destroy previously created gui window */
void (*destroy)(struct gui_window *g);
+ /**
+ * Force a redraw of the entire contents of a window.
+ *
+ * \param g gui_window to redraw
+ */
+ void (*redraw)(struct gui_window *g);
+
+ /**
+ * Redraw an area of a window.
+ *
+ * \param g gui_window
+ * \param rect area to redraw
+ */
+ void (*update)(struct gui_window *g, const struct rect *rect);
+
/* Optional entries */
@@ -164,9 +179,6 @@ struct gui_table {
extern struct gui_table *guit; /* the gui vtable */
-void gui_window_redraw_window(struct gui_window *g);
-void gui_window_update_box(struct gui_window *g,
- const struct rect *rect);
bool gui_window_get_scroll(struct gui_window *g, int *sx, int *sy);
void gui_window_set_scroll(struct gui_window *g, int sx, int sy);
void gui_window_get_dimensions(struct gui_window *g, int *width, int *height,
diff --git a/desktop/gui_factory.c b/desktop/gui_factory.c
index 73fb016e4..9cf328557 100644
--- a/desktop/gui_factory.c
+++ b/desktop/gui_factory.c
@@ -80,6 +80,12 @@ static nserror verify_window_register(struct gui_window_table *gwt)
if (gwt->destroy == NULL) {
return NSERROR_BAD_PARAMETER;
}
+ if (gwt->redraw == NULL) {
+ return NSERROR_BAD_PARAMETER;
+ }
+ if (gwt->update == NULL) {
+ return NSERROR_BAD_PARAMETER;
+ }
/* fill in the optional entries with defaults */
if (gwt->set_title == NULL) {