libadwaita/0036-carousel-Unset-scroll-timeout-ID.patch
Christian Hergert 999de975a8
1.6.8: bump patches up to 1.6.8
The release patch is cooked a bit to avoid intermediate patches.

Fixes: RHEL-94747
2025-07-08 17:53:37 -07:00

71 lines
2.0 KiB
Diff

From 29d5df78336a6c721596581facf5f2d0bec05c18 Mon Sep 17 00:00:00 2001
From: Alice Mikhaylenko <alicem@mailbox.org>
Date: Mon, 26 May 2025 23:49:30 +0400
Subject: [PATCH] carousel: Unset scroll timeout ID
Otherwise we try to to remove it when it's already gone.
While we're there, use the ID as the flag.
(cherry picked from commit ba4e47e14fb074e09bfeac648f122f46fd797c4f)
Co-authored-by: Alice Mikhaylenko <alicem@gnome.org>
(cherry picked from commit 693dd15ae0b7315b33d48ced8bf012cbac102d14)
Co-authored-by: Alice Mikhaylenko <alicem@mailbox.org>
---
src/adw-carousel.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/src/adw-carousel.c b/src/adw-carousel.c
index 1010d464..a026f3c2 100644
--- a/src/adw-carousel.c
+++ b/src/adw-carousel.c
@@ -77,7 +77,6 @@ struct _AdwCarousel
double position_shift;
guint scroll_timeout_id;
- gboolean can_scroll;
gboolean is_being_allocated;
};
@@ -468,7 +467,7 @@ update_orientation (AdwCarousel *self)
static void
scroll_timeout_cb (AdwCarousel *self)
{
- self->can_scroll = TRUE;
+ self->scroll_timeout_id = 0;
}
static gboolean
@@ -487,7 +486,7 @@ scroll_cb (AdwCarousel *self,
if (!self->allow_scroll_wheel)
return GDK_EVENT_PROPAGATE;
- if (!self->can_scroll)
+ if (self->scroll_timeout_id > 0)
return GDK_EVENT_PROPAGATE;
if (!adw_carousel_get_interactive (self))
@@ -532,7 +531,6 @@ scroll_cb (AdwCarousel *self,
scroll_to (self, adw_carousel_get_nth_page (self, index), 0);
- self->can_scroll = FALSE;
self->scroll_timeout_id =
g_timeout_add_once (SCROLL_TIMEOUT_DURATION,
(GSourceOnceFunc) scroll_timeout_cb,
@@ -1047,7 +1045,6 @@ adw_carousel_init (AdwCarousel *self)
self->orientation = GTK_ORIENTATION_HORIZONTAL;
self->reveal_duration = 0;
- self->can_scroll = TRUE;
self->tracker = adw_swipe_tracker_new (ADW_SWIPEABLE (self));
adw_swipe_tracker_set_allow_mouse_drag (self->tracker, TRUE);
--
2.47.1