X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fdevices%2Fswf.c;h=1f34c1b8e9fa171e4bb1c829a09f8cd95e7f735e;hb=335418ff94a64e55ef693fd78075de2a285f6bbb;hp=15e265e921be30f88fe991a0acf0cbdb9cf73783;hpb=8fc1927a31416db52cbb9b763f84911e259e89ea;p=swftools.git diff --git a/lib/devices/swf.c b/lib/devices/swf.c index 15e265e..1f34c1b 100644 --- a/lib/devices/swf.c +++ b/lib/devices/swf.c @@ -1406,7 +1406,8 @@ void swfoutput_finalize(gfxdevice_t*dev) /* Add AVM2 actionscript */ if(i->config_flashversion>=9 && (i->config_insertstoptag || i->hasbuttons)) { - swf_AddButtonLinks(i->swf, i->config_insertstoptag); + swf_AddButtonLinks(i->swf, i->config_insertstoptag, + i->config_internallinkfunction||i->config_externallinkfunction); } // if(i->config_reordertags) // swf_Optimize(i->swf); @@ -1588,8 +1589,10 @@ void swfoutput_linktourl(gfxdevice_t*dev, const char*url, gfxline_t*points) endshape(dev); if(i->textid>=0) endtext(dev); + + /* TODO: escape special characters in url */ - if(i->config_externallinkfunction) { + if(i->config_externallinkfunction && i->config_flashversion<=8) { actions = action_PushString(actions, url); //parameter actions = action_PushInt(actions, 1); //number of parameters (1) actions = action_PushString(actions, i->config_externallinkfunction); //function name @@ -1616,7 +1619,7 @@ void swfoutput_linktopage(gfxdevice_t*dev, int page, gfxline_t*points) if(i->textid>=0) endtext(dev); - if(!i->config_internallinkfunction) { + if(!i->config_internallinkfunction || i->config_flashversion>=9) { actions = action_GotoFrame(actions, page-1); actions = action_End(actions); } else { @@ -2839,6 +2842,16 @@ static void swf_drawchar(gfxdevice_t*dev, gfxfont_t*font, int glyph, gfxcolor_t* msg(" swf_drawchar called (glyph %d) without font", glyph); return; } + + if(i->config_drawonlyshapes) { + gfxglyph_t*g = &font->glyphs[glyph]; + gfxline_t*line2 = gfxline_clone(g->line); + gfxline_transform(line2, matrix); + dev->fill(dev, line2, color); + gfxline_free(line2); + return; + } + if(!i->swffont || !i->swffont->name || strcmp((char*)i->swffont->name,font->id)) // not equal to current font { /* TODO: remove the need for this (enhance getcharacterbbox so that it can cope