if(multiline)
check_view_range();
- rebuild();
+ mark_rebuild();
}
void Entry::erase(unsigned pos, unsigned len)
if(multiline)
check_view_range();
- rebuild();
+ mark_rebuild();
}
bool Entry::get_selection(unsigned &start, unsigned &end) const
add(*slider);
slider->set_step(1);
slider->signal_value_changed.connect(sigc::mem_fun(this, &Entry::slider_value_changed));
- rebuild();
+ mark_rebuild();
}
check_view_range();
}
void Entry::animate(const Time::TimeDelta &)
{
cursor_blink = !cursor_blink;
- rebuild();
+ mark_rebuild();
}
void Entry::on_size_change()
if(multiline)
check_view_range();
- rebuild();
+ mark_rebuild();
}
void Entry::erase_selection(bool emit_change)
void Entry::check_cursor_blink()
{
+ const Part *cursor_part = style->get_part("cursor");
+ bool has_blink = (cursor_part && cursor_part->get_graphic(ACTIVE|FOCUS)!=cursor_part->get_graphic(NORMAL|FOCUS));
+
cursor_blink = (state&FOCUS);
- if((state&FOCUS) && style)
+ if((state&FOCUS) && style && has_blink)
{
- const Part *cursor_part = style->get_part("cursor");
- if(cursor_part && cursor_part->get_graphic(ACTIVE|FOCUS)!=cursor_part->get_graphic(NORMAL|FOCUS))
- {
- set_animation_interval(Time::sec/2);
- return;
- }
+ set_animation_interval(Time::sec/2);
+ mark_rebuild();
+ }
+ else
+ {
+ if(has_blink)
+ mark_rebuild();
+ stop_animation();
}
-
- stop_animation();
}
void Entry::check_view_range()
first_row = text.get_n_lines()-visible_rows-static_cast<unsigned>(value);
if(first_row!=old_first_row)
signal_scroll_position_changed.emit(first_row);
- rebuild();
+ mark_rebuild();
}
}