fix warning, redraw on changed foreground color
authorFelix Domke <tmbinc@elitedvb.net>
Fri, 3 Feb 2006 21:02:40 +0000 (21:02 +0000)
committerFelix Domke <tmbinc@elitedvb.net>
Fri, 3 Feb 2006 21:02:40 +0000 (21:02 +0000)
lib/gui/elabel.cpp

index 3cec3a1cdc4003313ba47a706b62fe9ad4dd19dc..018ce95b521cfe2b342eefa3c94b146a486f3e08 100644 (file)
@@ -40,7 +40,7 @@ int eLabel::event(int event, void *data, void *data2)
                        int glyphs = para->size();
 
                        if ((m_pos < 0) || (m_pos >= glyphs))
-                               eWarning("glyph index %d in eLabel out of bounds!");
+                               eWarning("glyph index %d in eLabel out of bounds!", m_pos);
                        else
                        {
                                para->setGlyphFlag(m_pos, GS_INVERT);
@@ -134,13 +134,21 @@ void eLabel::setHAlign(int align)
 
 void eLabel::setForegroundColor(const gRGB &col)
 {
-       m_foreground_color = col;
-       m_have_foreground_color = 1;
+       if ((!m_have_foreground_color) || !(m_foreground_color == col))
+       {
+               m_foreground_color = col;
+               m_have_foreground_color = 1;
+               invalidate();
+       }
 }
 
 void eLabel::clearForegroundColor()
 {
-       m_have_foreground_color = 0;
+       if (m_have_foreground_color)
+       {
+               m_have_foreground_color = 0;
+               invalidate();
+       }
 }
 
 eSize eLabel::calculateSize()