summaryrefslogtreecommitdiff
path: root/gtk/window.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@netsurf-browser.org>2011-02-10 22:35:41 +0000
committerVincent Sanders <vince@netsurf-browser.org>2011-02-10 22:35:41 +0000
commit2a8e8a5cf10a22d47dd7ba8701b2b97b317c26ff (patch)
tree5c71cd2bc7f87d2fafd5dc2c8a45019cff5e2004 /gtk/window.c
parentbc2bce8d35bcb631168b3ae91ab6868b7057debc (diff)
downloadnetsurf-2a8e8a5cf10a22d47dd7ba8701b2b97b317c26ff.tar.gz
netsurf-2a8e8a5cf10a22d47dd7ba8701b2b97b317c26ff.tar.bz2
add browser_window_redraw() method to make content_redraw calls from frontends common RISC OS, atari, amiga and beos have not been updated
svn path=/trunk/netsurf/; revision=11640
Diffstat (limited to 'gtk/window.c')
-rw-r--r--gtk/window.c42
1 files changed, 19 insertions, 23 deletions
diff --git a/gtk/window.c b/gtk/window.c
index 9934215c3..06bc97df0 100644
--- a/gtk/window.c
+++ b/gtk/window.c
@@ -156,25 +156,29 @@ static gboolean nsgtk_window_expose_event(GtkWidget *widget,
GdkEventExpose *event, gpointer data)
{
struct gui_window *g = data;
- hlcache_handle *c;
- float scale = g->bw->scale;
+ struct gui_window *z;
+ int width = 0;
+ int height = 0;
assert(g);
assert(g->bw);
- struct gui_window *z;
for (z = window_list; z && z != g; z = z->next)
continue;
assert(z);
assert(GTK_WIDGET(g->layout) == widget);
- c = g->bw->current_content;
- if (c == NULL)
- return FALSE;
+ /* set the width and height to use */
+ if (g->bw->current_content != NULL) {
+ width = content_get_width(g->bw->current_content);
+ height = content_get_height(g->bw->current_content);
- /* HTML rendering handles scale itself */
- if (content_get_type(c) == CONTENT_HTML)
- scale = 1;
+ if (content_get_type(g->bw->current_content) != CONTENT_HTML) {
+ /* HTML rendering handles scale itself */
+ width *= g->bw->scale;
+ height *= g->bw->scale;
+ }
+ }
current_widget = (GtkWidget *)g->layout;
current_drawable = g->layout->bin_window;
@@ -187,19 +191,11 @@ static gboolean nsgtk_window_expose_event(GtkWidget *widget,
nsgtk_plot_set_scale(g->bw->scale);
current_redraw_browser = g->bw;
- plot.clip(event->area.x,
- event->area.y,
- event->area.x + event->area.width,
- event->area.y + event->area.height);
-
- content_redraw(c, 0, 0,
- content_get_width(c) * scale,
- content_get_height(c) * scale,
- event->area.x,
- event->area.y,
+ browser_window_redraw(g->bw, 0, 0, width, height,
+ event->area.x, event->area.y,
event->area.x + event->area.width,
- event->area.y + event->area.height,
- g->bw->scale, 0xFFFFFF);
+ event->area.y + event->area.height);
+
current_redraw_browser = NULL;
if (g->careth != 0)
@@ -334,8 +330,8 @@ static gboolean nsgtk_window_button_release_event(GtkWidget *widget,
g->mouse.state ^= BROWSER_MOUSE_MOD_2;
if (g->mouse.state & (BROWSER_MOUSE_CLICK_1|BROWSER_MOUSE_CLICK_2)) {
- browser_window_mouse_click(g->bw, g->mouse.state,
- event->x / g->bw->scale,
+ browser_window_mouse_click(g->bw, g->mouse.state,
+ event->x / g->bw->scale,
event->y / g->bw->scale);
} else {
browser_window_mouse_drag_end(g->bw, 0, event->x / g->bw->scale,