summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2019-08-04 11:23:35 +0100
committerVincent Sanders <vince@kyllikki.org>2019-08-04 11:25:35 +0100
commitf21c41a2e549e22e523118e8d8f2c881c0f088a7 (patch)
tree06c382262a3dca39bb545ab94660ca91c3660c9c
parentb2f5c80ef82c2e76bd33f58b6454031500c98504 (diff)
downloadnetsurf-f21c41a2e549e22e523118e8d8f2c881c0f088a7.tar.gz
netsurf-f21c41a2e549e22e523118e8d8f2c881c0f088a7.tar.bz2
change browser_window_redraw to use unscaled coordinates
-rw-r--r--content/handlers/html/html_redraw.c4
-rw-r--r--desktop/browser_window.c3
-rw-r--r--frontends/framebuffer/gui.c15
-rw-r--r--frontends/windows/drawable.c4
-rw-r--r--frontends/windows/window.c10
-rw-r--r--frontends/windows/window.h2
6 files changed, 17 insertions, 21 deletions
diff --git a/content/handlers/html/html_redraw.c b/content/handlers/html/html_redraw.c
index d05df8753..6216d607e 100644
--- a/content/handlers/html/html_redraw.c
+++ b/content/handlers/html/html_redraw.c
@@ -1786,8 +1786,8 @@ bool html_redraw_box(const html_content *html, struct box *box,
} else if (box->iframe) {
/* Offset is passed to browser window redraw unscaled */
browser_window_redraw(box->iframe,
- (x + padding_left) / scale,
- (y + padding_top) / scale, &r, ctx);
+ x + padding_left,
+ y + padding_top, &r, ctx);
} else if (box->gadget && box->gadget->type == GADGET_CHECKBOX) {
if (!html_redraw_checkbox(x + padding_left, y + padding_top,
diff --git a/desktop/browser_window.c b/desktop/browser_window.c
index e3eae6cf2..9d8a5e3d8 100644
--- a/desktop/browser_window.c
+++ b/desktop/browser_window.c
@@ -1929,6 +1929,9 @@ browser_window_redraw(struct browser_window *bw,
struct rect content_clip;
nserror res;
+ x /= bw->scale;
+ y /= bw->scale;
+
if (bw == NULL) {
NSLOG(netsurf, INFO, "NULL browser window");
return false;
diff --git a/frontends/framebuffer/gui.c b/frontends/framebuffer/gui.c
index 7413739e2..914187ba6 100644
--- a/frontends/framebuffer/gui.c
+++ b/frontends/framebuffer/gui.c
@@ -357,7 +357,6 @@ fb_redraw(fbtk_widget_t *widget,
.plot = &fb_plotters
};
nsfb_t *nsfb = fbtk_get_nsfb(widget);
- float scale = browser_window_get_scale(bw);
x = fbtk_get_absx(widget);
y = fbtk_get_absy(widget);
@@ -377,8 +376,8 @@ fb_redraw(fbtk_widget_t *widget,
clip.y1 = bwidget->redraw_box.y1;
browser_window_redraw(bw,
- (x - bwidget->scrollx) / scale,
- (y - bwidget->scrolly) / scale,
+ x - bwidget->scrollx,
+ y - bwidget->scrolly,
&clip, &ctx);
if (fbtk_get_caret(widget, &caret_x, &caret_y, &caret_h)) {
@@ -1861,10 +1860,9 @@ static bool
gui_window_get_scroll(struct gui_window *g, int *sx, int *sy)
{
struct browser_widget_s *bwidget = fbtk_get_userpw(g->browser);
- float scale = browser_window_get_scale(g->bw);
- *sx = bwidget->scrollx / scale;
- *sy = bwidget->scrolly / scale;
+ *sx = bwidget->scrollx;
+ *sy = bwidget->scrolly;
return true;
}
@@ -1884,12 +1882,11 @@ static nserror
gui_window_set_scroll(struct gui_window *gw, const struct rect *rect)
{
struct browser_widget_s *bwidget = fbtk_get_userpw(gw->browser);
- float scale = browser_window_get_scale(gw->bw);
assert(bwidget);
- widget_scroll_x(gw, rect->x0 * scale, true);
- widget_scroll_y(gw, rect->y0 * scale, true);
+ widget_scroll_x(gw, rect->x0, true);
+ widget_scroll_y(gw, rect->y0, true);
return NSERROR_OK;
}
diff --git a/frontends/windows/drawable.c b/frontends/windows/drawable.c
index 9383f7069..84b11ed78 100644
--- a/frontends/windows/drawable.c
+++ b/frontends/windows/drawable.c
@@ -383,8 +383,8 @@ nsws_drawable_paint(struct gui_window *gw, HWND hwnd)
*/
browser_window_redraw(gw->bw,
- -gw->scrollx / gw->scale,
- -gw->scrolly / gw->scale,
+ -gw->scrollx,
+ -gw->scrolly,
&clip,
&ctx);
}
diff --git a/frontends/windows/window.c b/frontends/windows/window.c
index b9a0dfc5e..e1254d8f2 100644
--- a/frontends/windows/window.c
+++ b/frontends/windows/window.c
@@ -882,8 +882,8 @@ win32_window_invalidate_area(struct gui_window *gw, const struct rect *rect)
if (rect != NULL) {
redrawrectp = &redrawrect;
- redrawrect.left = (long)rect->x0 - (gw->scrollx / gw->scale);
- redrawrect.top = (long)rect->y0 - (gw->scrolly / gw->scale);
+ redrawrect.left = (long)rect->x0 - gw->scrollx;
+ redrawrect.top = (long)rect->y0 - gw->scrolly;
redrawrect.right =(long)rect->x1;
redrawrect.bottom = (long)rect->y1;
@@ -1417,7 +1417,6 @@ win32_window_create(struct browser_window *bw,
gw->width = 800;
gw->height = 600;
- gw->scale = 1.0;
gw->toolbuttonsize = 24;
gw->requestscrollx = 0;
gw->requestscrolly = 0;
@@ -1609,9 +1608,8 @@ win32_window_place_caret(struct gui_window *w, int x, int y,
return;
}
- CreateCaret(w->drawingarea, (HBITMAP)NULL, 1, height * w->scale);
- SetCaretPos(x * w->scale - w->scrollx,
- y * w->scale - w->scrolly);
+ CreateCaret(w->drawingarea, (HBITMAP)NULL, 1, height );
+ SetCaretPos(x - w->scrollx, y - w->scrolly);
ShowCaret(w->drawingarea);
}
diff --git a/frontends/windows/window.h b/frontends/windows/window.h
index c887ed5d4..80f5f2774 100644
--- a/frontends/windows/window.h
+++ b/frontends/windows/window.h
@@ -62,8 +62,6 @@ struct gui_window {
HACCEL acceltable; /**< accelerators */
- float scale; /**< scale of content */
-
int scrollx; /**< current scroll location */
int scrolly; /**< current scroll location */