[libadwaita/wip/otte/stack: 2/4] viewstack: Turn widget size into an array
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libadwaita/wip/otte/stack: 2/4] viewstack: Turn widget size into an array
- Date: Sun, 21 Nov 2021 03:58:32 +0000 (UTC)
commit 9a57eb06fdc1dc0b93c08735e7bbfbe7f41d7d97
Author: Benjamin Otte <otte redhat com>
Date: Sun Nov 21 00:52:53 2021 +0100
viewstack: Turn widget size into an array
That way, we can index it by orientation.
src/adw-view-stack.c | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
---
diff --git a/src/adw-view-stack.c b/src/adw-view-stack.c
index 15e29780..a862dd4f 100644
--- a/src/adw-view-stack.c
+++ b/src/adw-view-stack.c
@@ -148,8 +148,7 @@ struct _AdwViewStack {
GtkProgressTracker tracker;
gboolean first_frame_skipped;
- int last_visible_widget_width;
- int last_visible_widget_height;
+ int last_visible_widget_size[2];
gboolean interpolate_size;
@@ -703,8 +702,8 @@ set_visible_child (AdwViewStack *self,
if (self->visible_child && self->visible_child->widget) {
if (gtk_widget_is_visible (widget)) {
self->last_visible_child = self->visible_child;
- self->last_visible_widget_width = gtk_widget_get_width (widget);
- self->last_visible_widget_height = gtk_widget_get_height (widget);
+ self->last_visible_widget_size[GTK_ORIENTATION_HORIZONTAL] = gtk_widget_get_width (widget);
+ self->last_visible_widget_size[GTK_ORIENTATION_VERTICAL] = gtk_widget_get_height (widget);
} else {
gtk_widget_set_child_visible (self->visible_child->widget, FALSE);
}
@@ -982,14 +981,14 @@ adw_view_stack_measure (GtkWidget *widget,
if (self->last_visible_child) {
if (orientation == GTK_ORIENTATION_VERTICAL && !self->homogeneous[GTK_ORIENTATION_VERTICAL]) {
double t = self->interpolate_size ? gtk_progress_tracker_get_ease_out_cubic (&self->tracker, FALSE) :
0.0;
- *minimum = adw_lerp (*minimum, self->last_visible_widget_height, 1.0 - t);
- *natural = adw_lerp (*natural, self->last_visible_widget_height, 1.0 - t);
+ *minimum = adw_lerp (*minimum, self->last_visible_widget_size[GTK_ORIENTATION_VERTICAL], 1.0 - t);
+ *natural = adw_lerp (*natural, self->last_visible_widget_size[GTK_ORIENTATION_VERTICAL], 1.0 - t);
}
if (orientation == GTK_ORIENTATION_HORIZONTAL && !self->homogeneous[GTK_ORIENTATION_HORIZONTAL]) {
double t = self->interpolate_size ? gtk_progress_tracker_get_ease_out_cubic (&self->tracker, FALSE) :
0.0;
- *minimum = adw_lerp (*minimum, self->last_visible_widget_width, 1.0 - t);
- *natural = adw_lerp (*natural, self->last_visible_widget_width, 1.0 - t);
+ *minimum = adw_lerp (*minimum, self->last_visible_widget_size[GTK_ORIENTATION_HORIZONTAL], 1.0 - t);
+ *natural = adw_lerp (*natural, self->last_visible_widget_size[GTK_ORIENTATION_HORIZONTAL], 1.0 - t);
}
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]