X-Git-Url: http://git.tdb.fi/?p=libs%2Fgltk.git;a=blobdiff_plain;f=source%2Flayout.cpp;fp=source%2Flayout.cpp;h=4d6b6643a3c630bb99e5c54a25c02e5eb30fff9d;hp=7fcbf103b085808fe34fa0d45f67b54fd5442251;hb=762a689d799075c0a10e1633bf95d53de80b4572;hpb=6d9570c97584758e3cfcac6827d439b7fb844cf4 diff --git a/source/layout.cpp b/source/layout.cpp index 7fcbf10..4d6b664 100644 --- a/source/layout.cpp +++ b/source/layout.cpp @@ -182,8 +182,8 @@ void Layout::remove_widget(Widget &wdg) { for(auto k=s->constraints.begin(); k!=s->constraints.end(); ) { - if(&k->target==*i) - s->constraints.erase(k++); + if(k->target==*i) + k = s->constraints.erase(k); else ++k; } @@ -225,7 +225,7 @@ void Layout::update_slot_indices() } for(const Constraint &c: s->constraints) - if(c.target.index>s->index && (c.type&SLACK)) + if(c.target->index>s->index && (c.type&SLACK)) ++n_slack_vars[c.type&1]; } } @@ -253,7 +253,7 @@ void Layout::create_constraint(Widget &src, ConstraintType type, Widget &tgt, in Slot &tgt_slot = get_slot_for_widget(tgt); for(const Constraint &c: src_slot.constraints) - if(c.type==type && &c.target==&tgt_slot) + if(c.type==type && c.target==&tgt_slot) return; src_slot.constraints.push_back(Constraint(type, tgt_slot)); @@ -423,7 +423,7 @@ void Layout::solve_constraints(int dir, SolveMode mode) /* Add rows for user-defined constraints. Constraints are always added in pairs, so it's only necessary to create a row for one half. */ for(const Constraint &c: s->constraints) - if(c.target.index>s->index && (c.type&1)==dir) + if(c.target->index>s->index && (c.type&1)==dir) { LinearProgram::Row row = linprog.add_row(); float polarity = ((c.type&SELF_DIM) ? -1 : 1); @@ -433,9 +433,9 @@ void Layout::solve_constraints(int dir, SolveMode mode) if(c.type&SELF_DIM) row[s->index*5+1] = polarity*dim_weight; if(c.type&TARGET_POS) - row[c.target.index*5] = -polarity; + row[c.target->index*5] = -polarity; if(c.type&TARGET_DIM) - row[c.target.index*5+1] = -polarity*dim_weight; + row[c.target->index*5+1] = -polarity*dim_weight; if(c.type&SPACING) row.back() = (c.spacing>=0 ? c.spacing : this->*(ptrs.spacing)); if(c.type&SLACK) @@ -470,7 +470,7 @@ void Layout::solve_constraints(int dir, SolveMode mode) Layout::Constraint::Constraint(ConstraintType t, Slot &s): type(t), - target(s) + target(&s) { }