all repos — openbox @ b33e8f66129db596fcf22499c2abc7c4505a8f48

openbox fork - make it a bit more like ryudo

adding vertical dynamic resize code
Marius Nita marius@cs.pdx.edu
commit

b33e8f66129db596fcf22499c2abc7c4505a8f48

parent

f0a1bdd6061adb933d9fd079768f78ee1f4e6499

1 files changed, 19 insertions(+), 1 deletions(-)

jump to
M otk/widget.ccotk/widget.cc

@@ -296,11 +296,29 @@ OtkWidgetList::iterator it, end = _children.end();

int widest = 0; int height = _bevel_width; + OtkWidgetList stretchable; + for (it = _children.begin(); it != end; ++it) { tmp = *it; + if (tmp->isStretchableVert() && _fixed_height) + stretchable.push_back(tmp); + else + height += tmp->_rect.height() + _bevel_width; + if (tmp->_rect.width() > widest) widest = tmp->_rect.width(); - height += tmp->_rect.height() + _bevel_width; + } + + if (stretchable.size() > 0) { + OtkWidgetList::iterator str_it = stretchable.begin(), + str_end = stretchable.end(); + + int str_height = _rect.height() - height / stretchable.size(); + + for (; str_it != str_end; ++str_it) { + (*str_it)->setHeight(str_height - _bevel_width); + (*str_it)->update(); + } } OtkWidget *prev_widget = 0;