mirror of
https://github.com/scorpion-26/gBar.git
synced 2024-11-22 03:02:49 +00:00
Widgets: Avoid redraws by reducing gtk calls
This commit is contained in:
parent
e1cf8f2475
commit
d8eae96e50
1 changed files with 9 additions and 6 deletions
|
@ -63,7 +63,7 @@ void Widget::CreateAndAddWidget(Widget* widget, GtkWidget* parentWidget)
|
||||||
|
|
||||||
void Widget::SetClass(const std::string& cssClass)
|
void Widget::SetClass(const std::string& cssClass)
|
||||||
{
|
{
|
||||||
if (m_Widget)
|
if (m_Widget && m_CssClass != cssClass)
|
||||||
{
|
{
|
||||||
auto style = gtk_widget_get_style_context(m_Widget);
|
auto style = gtk_widget_get_style_context(m_Widget);
|
||||||
gtk_style_context_remove_class(style, m_CssClass.c_str());
|
gtk_style_context_remove_class(style, m_CssClass.c_str());
|
||||||
|
@ -287,10 +287,13 @@ Quad CairoArea::GetQuad()
|
||||||
|
|
||||||
void Sensor::SetValue(double val)
|
void Sensor::SetValue(double val)
|
||||||
{
|
{
|
||||||
m_Val = val;
|
if (val != m_Val)
|
||||||
if (m_Widget)
|
|
||||||
{
|
{
|
||||||
gtk_widget_queue_draw(m_Widget);
|
m_Val = val;
|
||||||
|
if (m_Widget)
|
||||||
|
{
|
||||||
|
gtk_widget_queue_draw(m_Widget);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -492,11 +495,11 @@ void Revealer::SetRevealed(bool revealed)
|
||||||
|
|
||||||
void Text::SetText(const std::string& text)
|
void Text::SetText(const std::string& text)
|
||||||
{
|
{
|
||||||
m_Text = text;
|
if (m_Widget && text != m_Text)
|
||||||
if (m_Widget)
|
|
||||||
{
|
{
|
||||||
gtk_label_set_text((GtkLabel*)m_Widget, m_Text.c_str());
|
gtk_label_set_text((GtkLabel*)m_Widget, m_Text.c_str());
|
||||||
}
|
}
|
||||||
|
m_Text = text;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Text::Create()
|
void Text::Create()
|
||||||
|
|
Loading…
Reference in a new issue