]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/entry.cpp
Defer widget rebuild to just before they are rendered
[libs/gltk.git] / source / entry.cpp
index b00fc6bcdb3e4f4781b7bcb12dcd154a1de8cb61..ed0d7e2081a270a90894277f619f33c4daf4aeb5 100644 (file)
@@ -84,7 +84,7 @@ void Entry::insert(unsigned pos, const string &t)
        if(multiline)
                check_view_range();
 
-       rebuild();
+       mark_rebuild();
 }
 
 void Entry::erase(unsigned pos, unsigned len)
@@ -114,7 +114,7 @@ void Entry::erase(unsigned pos, unsigned len)
        if(multiline)
                check_view_range();
 
-       rebuild();
+       mark_rebuild();
 }
 
 bool Entry::get_selection(unsigned &start, unsigned &end) const
@@ -158,7 +158,7 @@ void Entry::set_multiline(bool m)
                        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();
        }
@@ -366,7 +366,7 @@ bool Entry::navigate(Navigation nav)
 void Entry::animate(const Time::TimeDelta &)
 {
        cursor_blink = !cursor_blink;
-       rebuild();
+       mark_rebuild();
 }
 
 void Entry::on_size_change()
@@ -429,7 +429,7 @@ void Entry::set_edit_position(unsigned ep, bool select)
 
        if(multiline)
                check_view_range();
-       rebuild();
+       mark_rebuild();
 }
 
 void Entry::erase_selection(bool emit_change)
@@ -495,7 +495,7 @@ void Entry::slider_value_changed(double value)
                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();
        }
 }