X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flayout.cpp;h=ce9c8dcc9831afd3aaf0af1d345d5b40490d35ab;hb=05ef650bff69b998440a6c082dd90e205fe6c233;hp=4048e1147ac9321ab2596d1441db26b102e55a82;hpb=8f888fddb056e4af2437a8996b8294112509bc31;p=libs%2Fgltk.git diff --git a/source/layout.cpp b/source/layout.cpp index 4048e11..ce9c8dc 100644 --- a/source/layout.cpp +++ b/source/layout.cpp @@ -439,14 +439,15 @@ void Layout::solve_constraints(int dir, SolveMode mode) { LinearProgram::Row row = linprog.add_row(); float polarity = ((j->type&SELF_DIM) ? -1 : 1); + float dim_weight = ((j->type&HALF_DIM) ? 0.5f : 1); if(j->type&SELF_POS) row[(*i)->index*5] = polarity; if(j->type&SELF_DIM) - row[(*i)->index*5+1] = polarity; + row[(*i)->index*5+1] = polarity*dim_weight; if(j->type&TARGET_POS) row[j->target.index*5] = -polarity; if(j->type&TARGET_DIM) - row[j->target.index*5+1] = -polarity; + row[j->target.index*5+1] = -polarity*dim_weight; if(j->type&SPACING) row.back() = (j->spacing>=0 ? j->spacing : this->*(ptrs.spacing)); if(j->type&SLACK)