[gtk/constraint-guide-3: 8/9] constraint layout: Use stays for natural size
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/constraint-guide-3: 8/9] constraint layout: Use stays for natural size
- Date: Fri, 28 Jun 2019 23:06:31 +0000 (UTC)
commit 783ce4c87028883b5d3991f235ac41cc4ba7e37d
Author: Matthias Clasen <mclasen redhat com>
Date: Fri Jun 28 22:59:38 2019 +0000
constraint layout: Use stays for natural size
It makes more sense to treat the natural size
of both children and guides as stays, since
we want to meet these values as closely as we
can, under the circumstances.
gtk/gtkconstraintguide.c | 31 +++++++++++++++++--------------
gtk/gtkconstraintlayout.c | 36 ++++++++++++++++--------------------
2 files changed, 33 insertions(+), 34 deletions(-)
---
diff --git a/gtk/gtkconstraintguide.c b/gtk/gtkconstraintguide.c
index 02b0a6c660..60220c60f6 100644
--- a/gtk/gtkconstraintguide.c
+++ b/gtk/gtkconstraintguide.c
@@ -119,14 +119,6 @@ gtk_constraint_guide_update_constraint (GtkConstraintGuide *guide,
GTK_CONSTRAINT_RELATION_LE,
GTK_CONSTRAINT_RELATION_LE,
};
- double weight[LAST_GUIDE_VALUE] = {
- GTK_CONSTRAINT_WEIGHT_REQUIRED,
- GTK_CONSTRAINT_WEIGHT_REQUIRED,
- GTK_CONSTRAINT_WEIGHT_MEDIUM,
- GTK_CONSTRAINT_WEIGHT_MEDIUM,
- GTK_CONSTRAINT_WEIGHT_REQUIRED,
- GTK_CONSTRAINT_WEIGHT_REQUIRED,
- };
if (!guide->layout)
return;
@@ -139,12 +131,23 @@ gtk_constraint_guide_update_constraint (GtkConstraintGuide *guide,
gtk_constraint_solver_remove_constraint (solver, guide->constraints[index]);
var = gtk_constraint_layout_get_attribute (guide->layout, attr[index], "guide", NULL,
guide->bound_attributes);
- guide->constraints[index] =
- gtk_constraint_solver_add_constraint (solver,
- var,
- relation[index],
- gtk_constraint_expression_new (guide->values[index]),
- weight[index]);
+ if (relation[index] == GTK_CONSTRAINT_RELATION_EQ)
+ {
+ gtk_constraint_variable_set_value (var, guide->values[index]);
+ guide->constraints[index] =
+ gtk_constraint_solver_add_stay_variable (solver,
+ var,
+ GTK_CONSTRAINT_WEIGHT_MEDIUM);
+ }
+ else
+ {
+ guide->constraints[index] =
+ gtk_constraint_solver_add_constraint (solver,
+ var,
+ relation[index],
+ gtk_constraint_expression_new (guide->values[index]),
+ GTK_CONSTRAINT_WEIGHT_REQUIRED);
+ }
}
void
diff --git a/gtk/gtkconstraintlayout.c b/gtk/gtkconstraintlayout.c
index 75bc8b1965..7a27b962ab 100644
--- a/gtk/gtkconstraintlayout.c
+++ b/gtk/gtkconstraintlayout.c
@@ -736,12 +736,11 @@ gtk_constraint_layout_measure (GtkLayoutManager *manager,
GTK_CONSTRAINT_WEIGHT_REQUIRED);
g_ptr_array_add (size_constraints, constraint);
+ gtk_constraint_variable_set_value (width_var, nat_req.width);
constraint =
-gtk_constraint_solver_add_constraint (solver,
- width_var,
- GTK_CONSTRAINT_RELATION_EQ,
- gtk_constraint_expression_new (nat_req.width),
- GTK_CONSTRAINT_WEIGHT_MEDIUM);
+ gtk_constraint_solver_add_stay_variable (solver,
+ width_var,
+ GTK_CONSTRAINT_WEIGHT_MEDIUM);
g_ptr_array_add (size_constraints, constraint);
height_var = get_child_attribute (self, child, GTK_CONSTRAINT_ATTRIBUTE_HEIGHT);
@@ -754,12 +753,11 @@ gtk_constraint_solver_add_constraint (solver,
GTK_CONSTRAINT_WEIGHT_REQUIRED);
g_ptr_array_add (size_constraints, constraint);
+ gtk_constraint_variable_set_value (height_var, nat_req.height);
constraint =
- gtk_constraint_solver_add_constraint (solver,
- height_var,
- GTK_CONSTRAINT_RELATION_EQ,
- gtk_constraint_expression_new (nat_req.height),
- GTK_CONSTRAINT_WEIGHT_MEDIUM);
+ gtk_constraint_solver_add_stay_variable (solver,
+ height_var,
+ GTK_CONSTRAINT_WEIGHT_MEDIUM);
g_ptr_array_add (size_constraints, constraint);
}
@@ -905,12 +903,11 @@ gtk_constraint_layout_allocate (GtkLayoutManager *manager,
GTK_CONSTRAINT_WEIGHT_REQUIRED);
g_ptr_array_add (size_constraints, constraint);
+ gtk_constraint_variable_set_value (width_var, nat_req.width);
constraint =
-gtk_constraint_solver_add_constraint (solver,
- width_var,
- GTK_CONSTRAINT_RELATION_EQ,
- gtk_constraint_expression_new (nat_req.width),
- GTK_CONSTRAINT_WEIGHT_MEDIUM);
+ gtk_constraint_solver_add_stay_variable (solver,
+ width_var,
+ GTK_CONSTRAINT_WEIGHT_MEDIUM);
g_ptr_array_add (size_constraints, constraint);
height_var = get_child_attribute (self, child, GTK_CONSTRAINT_ATTRIBUTE_HEIGHT);
@@ -923,12 +920,11 @@ gtk_constraint_solver_add_constraint (solver,
GTK_CONSTRAINT_WEIGHT_REQUIRED);
g_ptr_array_add (size_constraints, constraint);
+ gtk_constraint_variable_set_value (height_var, nat_req.height);
constraint =
- gtk_constraint_solver_add_constraint (solver,
- height_var,
- GTK_CONSTRAINT_RELATION_EQ,
- gtk_constraint_expression_new (nat_req.height),
- GTK_CONSTRAINT_WEIGHT_MEDIUM);
+ gtk_constraint_solver_add_stay_variable (solver,
+ height_var,
+ GTK_CONSTRAINT_WEIGHT_MEDIUM);
g_ptr_array_add (size_constraints, constraint);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]