summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--amiga/font.c2
-rwxr-xr-xamiga/gui.c5
-rwxr-xr-xamiga/plotters.c1
-rwxr-xr-xamiga/plotters.h1
-rw-r--r--amiga/print.c1
5 files changed, 8 insertions, 2 deletions
diff --git a/amiga/font.c b/amiga/font.c
index 5c694c199..440cd02b2 100644
--- a/amiga/font.c
+++ b/amiga/font.c
@@ -269,7 +269,7 @@ struct OutlineFont *ami_open_outline_font(const plot_font_style_t *fstyle)
}
/* Scale to 16.16 fixed point */
- ysize = fstyle->size * ((1 << 16) / FONT_SIZE_SCALE);
+ ysize = fstyle->size * ((1 << 16) / FONT_SIZE_SCALE) * glob->scale;
if(ESetInfo(&ofont->olf_EEngine,
OT_DeviceDPI,(72<<16) | 72,
diff --git a/amiga/gui.c b/amiga/gui.c
index ca9fd3f29..28c5589f4 100755
--- a/amiga/gui.c
+++ b/amiga/gui.c
@@ -2403,7 +2403,9 @@ void ami_do_redraw_limits(struct gui_window *g, struct content *c,int x0, int y0
if((x1-x0)+(xoffset+x0-sx)>(width)) x1 = (width-(x0-sx)+x0);
if((y1-y0)+(yoffset+y0-sy)>(height)) y1 = (height-(y0-sy)+y0);
- content_redraw(c,
+ glob->scale = g->shared->bw->scale;
+
+ content_redraw(c,
-sx,-sy,width-sx,height-sy,
floorf((x0 *
g->shared->bw->scale)-sx),
@@ -2541,6 +2543,7 @@ void ami_do_redraw(struct gui_window_2 *g)
else
{
ami_clg(0xffffff);
+ glob->scale = g->bw->scale;
if(c->type == CONTENT_HTML)
{
diff --git a/amiga/plotters.c b/amiga/plotters.c
index f83051484..0a5d5c001 100755
--- a/amiga/plotters.c
+++ b/amiga/plotters.c
@@ -116,6 +116,7 @@ void ami_init_layers(struct gui_globals *gg, ULONG width, ULONG height)
if(!width) width = scrn->Width;
if(!height) height = scrn->Width;
+ gg->scale = 1.0;
gg->layerinfo = NewLayerInfo();
gg->areabuf = AllocVec(100,MEMF_PRIVATE | MEMF_CLEAR);
gg->tmprasbuf = AllocVec(width*height,MEMF_PRIVATE | MEMF_CLEAR);
diff --git a/amiga/plotters.h b/amiga/plotters.h
index 5c734efd8..c58acfb8e 100755
--- a/amiga/plotters.h
+++ b/amiga/plotters.h
@@ -33,6 +33,7 @@ struct gui_globals
APTR areabuf;
APTR tmprasbuf;
struct Rectangle rect;
+ float scale;
#ifdef NS_AMIGA_CAIRO
cairo_surface_t *surface;
cairo_t *cr;
diff --git a/amiga/print.c b/amiga/print.c
index 5cd6252a3..f87f1e3c0 100644
--- a/amiga/print.c
+++ b/amiga/print.c
@@ -141,6 +141,7 @@ bool ami_print_begin(struct print_settings *ps)
ami_print_info.PED->ped_MaxXDots,
ami_print_info.PED->ped_MaxYDots);
+ ami_print_info.gg->scale = ps->scale;
ami_print_info.page = 0;
return true;