From 50345393455c7800621c1eb942999fac45bfa77b Mon Sep 17 00:00:00 2001 From: Ivan Mahonin Date: Sep 16 2016 10:17:44 +0000 Subject: Fix bug with FontFamily --- diff --git a/synfig-core/src/modules/lyr_freetype/lyr_freetype.cpp b/synfig-core/src/modules/lyr_freetype/lyr_freetype.cpp index 3ac0335..dbcd5c9 100644 --- a/synfig-core/src/modules/lyr_freetype/lyr_freetype.cpp +++ b/synfig-core/src/modules/lyr_freetype/lyr_freetype.cpp @@ -137,6 +137,15 @@ Layer_Freetype::~Layer_Freetype() } void +Layer_Freetype::on_canvas_set() +{ + synfig::String family=param_family.get(synfig::String()); + int style=param_style.get(int()); + int weight=param_weight.get(int()); + new_font(family,style,weight); +} + +void Layer_Freetype::new_font(const synfig::String &family, int style, int weight) { if( diff --git a/synfig-core/src/modules/lyr_freetype/lyr_freetype.h b/synfig-core/src/modules/lyr_freetype/lyr_freetype.h index 5ec24ac..9b94688 100644 --- a/synfig-core/src/modules/lyr_freetype/lyr_freetype.h +++ b/synfig-core/src/modules/lyr_freetype/lyr_freetype.h @@ -156,6 +156,7 @@ public: Layer_Freetype(); virtual ~Layer_Freetype(); + virtual void on_canvas_set(); virtual bool set_param(const String & param, const synfig::ValueBase &value); virtual ValueBase get_param(const String & param)const; virtual Color get_color(Context context, const synfig::Point &pos)const; diff --git a/synfig-core/src/synfig/layer.cpp b/synfig-core/src/synfig/layer.cpp index edf9a8f..6aad693 100644 --- a/synfig-core/src/synfig/layer.cpp +++ b/synfig-core/src/synfig/layer.cpp @@ -896,6 +896,7 @@ Layer::build_rendering_task_vfunc(Context context)const // TODO: This is not thread-safe //task->layer = const_cast(this);//clone(NULL); task->layer = clone(NULL); + task->layer->set_canvas(get_canvas()); Real amount = Context::z_depth_visibility(context.get_params(), *this); if (approximate_not_equal(amount, 1.0) && task->layer.type_is())