diff options
-rw-r--r-- | amiga/font.c | 2 | ||||
-rwxr-xr-x | amiga/gui.c | 5 | ||||
-rwxr-xr-x | amiga/plotters.c | 1 | ||||
-rwxr-xr-x | amiga/plotters.h | 1 | ||||
-rw-r--r-- | amiga/print.c | 1 |
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; |