[gtk/wip/ebassi/constraint-layout: 58/69] constraint layout: freeze/thaw on mass ops
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/ebassi/constraint-layout: 58/69] constraint layout: freeze/thaw on mass ops
- Date: Sun, 30 Jun 2019 23:14:59 +0000 (UTC)
commit f62fc4e2f2b793f95750cc02a21f6af5793e339b
Author: Matthias Clasen <mclasen redhat com>
Date: Sat Jun 29 05:06:56 2019 +0000
constraint layout: freeze/thaw on mass ops
In measure and allocate we are potentially
changing quite a few constraints. Don't
optimize at every step.
gtk/gtkconstraintlayout.c | 6 ++++++
1 file changed, 6 insertions(+)
---
diff --git a/gtk/gtkconstraintlayout.c b/gtk/gtkconstraintlayout.c
index aa5280d8fd..a746491ccb 100644
--- a/gtk/gtkconstraintlayout.c
+++ b/gtk/gtkconstraintlayout.c
@@ -710,6 +710,7 @@ gtk_constraint_layout_measure (GtkLayoutManager *manager,
return;
size_constraints = g_ptr_array_new ();
+ gtk_constraint_solver_freeze (solver);
/* We measure each child in the layout and impose restrictions on the
* minimum and natural size, so we can solve the size of the overall
@@ -763,6 +764,8 @@ gtk_constraint_layout_measure (GtkLayoutManager *manager,
g_ptr_array_add (size_constraints, constraint);
}
+ gtk_constraint_solver_thaw (solver);
+
switch (orientation)
{
case GTK_ORIENTATION_HORIZONTAL:
@@ -879,6 +882,7 @@ gtk_constraint_layout_allocate (GtkLayoutManager *manager,
gtk_constraint_variable_get_value (layout_height)));
size_constraints = g_ptr_array_new ();
+ gtk_constraint_solver_freeze (solver);
/* We reset the constraints on the size of each child, so we are sure the
* layout is up to date
@@ -931,6 +935,8 @@ gtk_constraint_layout_allocate (GtkLayoutManager *manager,
g_ptr_array_add (size_constraints, constraint);
}
+ gtk_constraint_solver_thaw (solver);
+
for (child = _gtk_widget_get_first_child (widget);
child != NULL;
child = _gtk_widget_get_next_sibling (child))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]