Fix 1797488: use set_link() rather than modifying the members directly.
[synfig.git] / synfig-core / trunk / src / synfig / color.cpp
index 7df6106..3305eb4 100644 (file)
@@ -47,8 +47,6 @@ using namespace std;
 
 /* === G L O B A L S ======================================================= */
 
-String Color::hex_;
-
 /* === P R O C E D U R E S ================================================= */
 
 /* === M E T H O D S ======================================================= */
@@ -84,7 +82,12 @@ Color::set_hex(String& hex)
        value_type r, g, b;
        try
        {
-               if (hex.size() == 3)
+               if (hex.size() == 1)
+               {
+                       r = hex2real(hex.substr(0,1)+hex.substr(0,1));
+                       r_ = g_ = b_ = r;
+               }
+               else if (hex.size() == 3)
                {
                        r = hex2real(hex.substr(0,1)+hex.substr(0,1));
                        g = hex2real(hex.substr(1,1)+hex.substr(1,1));
@@ -371,7 +374,7 @@ blendfunc_DIVIDE(Color &a,Color &b,float amount)
 
        // We add COLOR_EPSILON in order to avoid a divide-by-zero condition.
        // This causes DIVIDE to bias toward positive values, but the effect is
-       // really neglegable. There is a reason why we use COLOR_EPSILON--we
+       // really negligible. There is a reason why we use COLOR_EPSILON--we
        // want the change to be imperceptable.
 
        b.set_r(((b.get_r()/(a.get_r()+COLOR_EPSILON))-b.get_r())*(amount)+b.get_r());