[gtk/wip/ebassi/constraint-layout: 55/69] constraint layout: Use stays for natural size
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/ebassi/constraint-layout: 55/69] constraint layout: Use stays for natural size
- Date: Sun, 30 Jun 2019 23:14:44 +0000 (UTC)
commit b1f0f4478e31fb249140503bb052ceb0825a96de
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 23bf8631c6..b7ed26a435 100644
--- a/gtk/gtkconstraintlayout.c
+++ b/gtk/gtkconstraintlayout.c
@@ -737,12 +737,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);
@@ -755,12 +754,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);
}
@@ -906,12 +904,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);
@@ -924,12 +921,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]