]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/widget.cpp
Retain position when autosizing widget
[libs/gltk.git] / source / widget.cpp
index 7496f8bdda1e849c3f35768d2d2ca6f29a11f503..13c5174df43e33cc6db256bbbe47ec45d3de7c4a 100644 (file)
@@ -44,6 +44,8 @@ void Widget::autosize()
                return;
 
        Geometry ageom;
+       ageom.x = geom.x;
+       ageom.y = geom.y;
        const Style::PartSeq &parts = style->get_parts();
        for(Style::PartSeq::const_iterator i=parts.begin(); i!=parts.end(); ++i)
        {
@@ -63,9 +65,14 @@ void Widget::autosize()
 
 void Widget::set_geometry(const Geometry &g)
 {
+       bool size_changed = (g.w!=geom.w || g.h!=geom.h);
        geom = g;
-       on_geometry_change();
-       rebuild();
+       if(size_changed)
+       {
+               // TODO maybe rename this to on_size_change
+               on_geometry_change();
+               rebuild();
+       }
 }
 
 void Widget::set_parent(Container *p)