]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/entry.cpp
Emit signal_text_changed from Entry::set_text
[libs/gltk.git] / source / entry.cpp
index 751f173d0c234a36a10c340987112fa6a7dd1605..8b638dea2206f07fd4fb6bace8353c336fcc67c5 100644 (file)
@@ -56,7 +56,11 @@ void Entry::autosize_special(const Part &part, Geometry &ageom) const
 
 void Entry::set_text(const string &t)
 {
-       text = t;
+       if(t!=text.get())
+       {
+               text = t;
+               signal_text_changed.emit(text.get());
+       }
        set_edit_position(text.size());
 }
 
@@ -458,10 +462,13 @@ void Entry::check_view_range()
        else if(row>=first_row+visible_rows)
                first_row = row+1-visible_rows;
 
+       unsigned scroll = max(text.get_n_lines(), visible_rows)-visible_rows;
+       if(first_row>scroll)
+               first_row = scroll;
+
        if(first_row!=old_first_row)
                signal_scroll_position_changed.emit(first_row);
 
-       unsigned scroll = max(text.get_n_lines(), visible_rows)-visible_rows;
        slider->set_range(0, scroll);
        slider->set_value(scroll-first_row);
 }