From a900b3c58937b50fb6320ee624b9c75ee0ddb438 Mon Sep 17 00:00:00 2001 From: Krishna Chaitanya Balusu Date: Tue, 24 Mar 2026 22:24:07 -0400 Subject: [PATCH] fix: replace deprecated delta_x/delta_y with local_delta.x/y in examples and docs DragUpdateEvent no longer has delta_x/delta_y attributes. All solitaire tutorial examples, the gesture_detector mouse_cursors example, and the solitaire tutorial documentation now use the correct e.local_delta.x and e.local_delta.y properties from the Offset object. Fixes #6317 --- .../controls/gesture_detector/mouse_cursors.py | 4 ++-- .../solitaire/solitaire-classes/card.py | 4 ++-- .../solitaire/solitaire-drag-and-drop/step1.py | 4 ++-- .../solitaire/solitaire-drag-and-drop/step2.py | 4 ++-- .../solitaire/solitaire-drag-and-drop/step3.py | 4 ++-- .../solitaire/solitaire-drag-and-drop/step4.py | 4 ++-- .../solitaire/solitaire-fanned-piles/card.py | 4 ++-- .../solitaire/solitaire-final-part1/card.py | 4 ++-- .../tutorials/solitaire/solitaire-final/card.py | 4 ++-- .../solitaire/solitaire-game-rules/card.py | 4 ++-- .../solitaire/solitaire-game-setup/card.py | 4 ++-- .../packages/flet/docs/tutorials/solitaire.md | 16 ++++++++-------- 12 files changed, 30 insertions(+), 30 deletions(-) diff --git a/sdk/python/examples/controls/gesture_detector/mouse_cursors.py b/sdk/python/examples/controls/gesture_detector/mouse_cursors.py index 3fc1c567af..503d6af1da 100644 --- a/sdk/python/examples/controls/gesture_detector/mouse_cursors.py +++ b/sdk/python/examples/controls/gesture_detector/mouse_cursors.py @@ -5,8 +5,8 @@ def main(page: ft.Page): def on_pan_update(event: ft.DragUpdateEvent[ft.GestureDetector]): - container.top = max(0.0, container.top + event.delta_y) - container.left = max(0.0, container.left + event.delta_x) + container.top = max(0.0, container.top + event.local_delta.y) + container.left = max(0.0, container.left + event.local_delta.x) container.update() gesture_detector = ft.GestureDetector( diff --git a/sdk/python/examples/tutorials/solitaire/solitaire-classes/card.py b/sdk/python/examples/tutorials/solitaire/solitaire-classes/card.py index d774465de5..1cf4affb7d 100644 --- a/sdk/python/examples/tutorials/solitaire/solitaire-classes/card.py +++ b/sdk/python/examples/tutorials/solitaire/solitaire-classes/card.py @@ -45,8 +45,8 @@ def start_drag(self, e: ft.DragStartEvent): self.update() def drag(self, e: ft.DragUpdateEvent): - self.top = max(0, self.top + e.delta_y) - self.left = max(0, self.left + e.delta_x) + self.top = max(0, self.top + e.local_delta.y) + self.left = max(0, self.left + e.local_delta.x) self.update() def drop(self, e: ft.DragEndEvent): diff --git a/sdk/python/examples/tutorials/solitaire/solitaire-drag-and-drop/step1.py b/sdk/python/examples/tutorials/solitaire/solitaire-drag-and-drop/step1.py index e9293e5f8c..f0aa8c55b1 100644 --- a/sdk/python/examples/tutorials/solitaire/solitaire-drag-and-drop/step1.py +++ b/sdk/python/examples/tutorials/solitaire/solitaire-drag-and-drop/step1.py @@ -6,8 +6,8 @@ def main(page: ft.Page): def drag(e: ft.DragUpdateEvent): - e.control.top = max(0, e.control.top + e.delta_y) - e.control.left = max(0, e.control.left + e.delta_x) + e.control.top = max(0, e.control.top + e.local_delta.y) + e.control.left = max(0, e.control.left + e.local_delta.x) e.control.update() card = ft.GestureDetector( diff --git a/sdk/python/examples/tutorials/solitaire/solitaire-drag-and-drop/step2.py b/sdk/python/examples/tutorials/solitaire/solitaire-drag-and-drop/step2.py index d607df5556..188f78e731 100644 --- a/sdk/python/examples/tutorials/solitaire/solitaire-drag-and-drop/step2.py +++ b/sdk/python/examples/tutorials/solitaire/solitaire-drag-and-drop/step2.py @@ -28,8 +28,8 @@ def start_drag(e: ft.DragStartEvent): solitaire.start_left = e.control.left def drag(e: ft.DragUpdateEvent): - e.control.top = max(0, e.control.top + e.delta_y) - e.control.left = max(0, e.control.left + e.delta_x) + e.control.top = max(0, e.control.top + e.local_delta.y) + e.control.left = max(0, e.control.left + e.local_delta.x) e.control.update() def drop(e: ft.DragEndEvent): diff --git a/sdk/python/examples/tutorials/solitaire/solitaire-drag-and-drop/step3.py b/sdk/python/examples/tutorials/solitaire/solitaire-drag-and-drop/step3.py index e4764dc96e..2341c01f43 100644 --- a/sdk/python/examples/tutorials/solitaire/solitaire-drag-and-drop/step3.py +++ b/sdk/python/examples/tutorials/solitaire/solitaire-drag-and-drop/step3.py @@ -33,8 +33,8 @@ def start_drag(e: ft.DragStartEvent): solitaire.start_left = e.control.left def drag(e: ft.DragUpdateEvent): - e.control.top = max(0, e.control.top + e.delta_y) - e.control.left = max(0, e.control.left + e.delta_x) + e.control.top = max(0, e.control.top + e.local_delta.y) + e.control.left = max(0, e.control.left + e.local_delta.x) e.control.update() def drop(e: ft.DragEndEvent): diff --git a/sdk/python/examples/tutorials/solitaire/solitaire-drag-and-drop/step4.py b/sdk/python/examples/tutorials/solitaire/solitaire-drag-and-drop/step4.py index 557a37215b..6895735d52 100644 --- a/sdk/python/examples/tutorials/solitaire/solitaire-drag-and-drop/step4.py +++ b/sdk/python/examples/tutorials/solitaire/solitaire-drag-and-drop/step4.py @@ -35,8 +35,8 @@ def start_drag(e: ft.DragStartEvent): solitaire.start_left = e.control.left def drag(e: ft.DragUpdateEvent): - e.control.top = max(0, e.control.top + e.delta_y) - e.control.left = max(0, e.control.left + e.delta_x) + e.control.top = max(0, e.control.top + e.local_delta.y) + e.control.left = max(0, e.control.left + e.local_delta.x) e.control.update() def drop(e: ft.DragEndEvent): diff --git a/sdk/python/examples/tutorials/solitaire/solitaire-fanned-piles/card.py b/sdk/python/examples/tutorials/solitaire/solitaire-fanned-piles/card.py index 94aaeeb680..6270336bb4 100644 --- a/sdk/python/examples/tutorials/solitaire/solitaire-fanned-piles/card.py +++ b/sdk/python/examples/tutorials/solitaire/solitaire-fanned-piles/card.py @@ -74,10 +74,10 @@ def start_drag(self, e: ft.DragStartEvent): def drag(self, e: ft.DragUpdateEvent): for card in self.draggable_pile: card.top = ( - max(0, self.top + e.delta_y) + max(0, self.top + e.local_delta.y) + self.draggable_pile.index(card) * CARD_OFFSET ) - card.left = max(0, self.left + e.delta_x) + card.left = max(0, self.left + e.local_delta.x) self.solitaire.update() def drop(self, e: ft.DragEndEvent): diff --git a/sdk/python/examples/tutorials/solitaire/solitaire-final-part1/card.py b/sdk/python/examples/tutorials/solitaire/solitaire-final-part1/card.py index 78a2674510..5e28d48805 100644 --- a/sdk/python/examples/tutorials/solitaire/solitaire-final-part1/card.py +++ b/sdk/python/examples/tutorials/solitaire/solitaire-final-part1/card.py @@ -107,10 +107,10 @@ def drag(self, e: ft.DragUpdateEvent): if self.face_up: for card in self.draggable_pile: card.top = ( - max(0, self.top + e.delta_y) + max(0, self.top + e.local_delta.y) + self.draggable_pile.index(card) * CARD_OFFSET ) - card.left = max(0, self.left + e.delta_x) + card.left = max(0, self.left + e.local_delta.x) self.solitaire.update() def drop(self, e: ft.DragEndEvent): diff --git a/sdk/python/examples/tutorials/solitaire/solitaire-final/card.py b/sdk/python/examples/tutorials/solitaire/solitaire-final/card.py index 73d4aba8ff..8d9a13118d 100644 --- a/sdk/python/examples/tutorials/solitaire/solitaire-final/card.py +++ b/sdk/python/examples/tutorials/solitaire/solitaire-final/card.py @@ -59,10 +59,10 @@ def drag(self, e: ft.DragUpdateEvent): if self.can_be_moved(): i = 0 for card in self.get_cards_to_move(): - card.top = max(0, self.top + e.delta_y) + card.top = max(0, self.top + e.local_delta.y) if card.slot.type == "tableau": card.top += i * self.solitaire.card_offset - card.left = max(0, self.left + e.delta_x) + card.left = max(0, self.left + e.local_delta.x) i += 1 self.solitaire.update() diff --git a/sdk/python/examples/tutorials/solitaire/solitaire-game-rules/card.py b/sdk/python/examples/tutorials/solitaire/solitaire-game-rules/card.py index 085f3aa245..3aecced589 100644 --- a/sdk/python/examples/tutorials/solitaire/solitaire-game-rules/card.py +++ b/sdk/python/examples/tutorials/solitaire/solitaire-game-rules/card.py @@ -104,10 +104,10 @@ def drag(self, e: ft.DragUpdateEvent): if self.face_up: for card in self.draggable_pile: card.top = ( - max(0, self.top + e.delta_y) + max(0, self.top + e.local_delta.y) + self.draggable_pile.index(card) * CARD_OFFSET ) - card.left = max(0, self.left + e.delta_x) + card.left = max(0, self.left + e.local_delta.x) self.solitaire.update() def drop(self, e: ft.DragEndEvent): diff --git a/sdk/python/examples/tutorials/solitaire/solitaire-game-setup/card.py b/sdk/python/examples/tutorials/solitaire/solitaire-game-setup/card.py index 803eb78914..65e0de653d 100644 --- a/sdk/python/examples/tutorials/solitaire/solitaire-game-setup/card.py +++ b/sdk/python/examples/tutorials/solitaire/solitaire-game-setup/card.py @@ -90,10 +90,10 @@ def start_drag(self, e: ft.DragStartEvent): def drag(self, e: ft.DragUpdateEvent): for card in self.draggable_pile: card.top = ( - max(0, self.top + e.delta_y) + max(0, self.top + e.local_delta.y) + self.draggable_pile.index(card) * CARD_OFFSET ) - card.left = max(0, self.left + e.delta_x) + card.left = max(0, self.left + e.local_delta.x) self.solitaire.update() def drop(self, e: ft.DragEndEvent): diff --git a/sdk/python/packages/flet/docs/tutorials/solitaire.md b/sdk/python/packages/flet/docs/tutorials/solitaire.md index 5de3742b4d..86be33842c 100644 --- a/sdk/python/packages/flet/docs/tutorials/solitaire.md +++ b/sdk/python/packages/flet/docs/tutorials/solitaire.md @@ -105,8 +105,8 @@ import flet as ft def main(page: ft.Page): def drag(e: ft.DragUpdateEvent): - e.control.top = max(0, e.control.top + e.delta_y) - e.control.left = max(0, e.control.left + e.delta_x) + e.control.top = max(0, e.control.top + e.local_delta.y) + e.control.left = max(0, e.control.left + e.local_delta.x) e.control.update() card = ft.GestureDetector( @@ -424,8 +424,8 @@ class Card(ft.GestureDetector): self.update() def drag(self, e: ft.DragUpdateEvent): - self.top = max(0, self.top + e.delta_y) - self.left = max(0, self.left + e.delta_x) + self.top = max(0, self.top + e.local_delta.y) + self.left = max(0, self.left + e.local_delta.x) self.update() def drop(self, e: ft.DragEndEvent): @@ -585,10 +585,10 @@ positions of all the cards being dragged: def drag(self, e: ft.DragUpdateEvent): for card in self.draggable_pile: card.top = ( - max(0, self.top + e.delta_y) + max(0, self.top + e.local_delta.y) + self.draggable_pile.index(card) * CARD_OFFSET ) - card.left = max(0, self.left + e.delta_x) + card.left = max(0, self.left + e.local_delta.x) self.solitaire.update() ``` @@ -910,8 +910,8 @@ def start_drag(self, e: ft.DragStartEvent): def drag(self, e: ft.DragUpdateEvent): if self.face_up: for card in self.draggable_pile: - card.top = max(0, self.top + e.delta_y) + self.draggable_pile.index(card) * CARD_OFFSET - card.left = max(0, self.left + e.delta_x) + card.top = max(0, self.top + e.local_delta.y) + self.draggable_pile.index(card) * CARD_OFFSET + card.left = max(0, self.left + e.local_delta.x) card.solitaire.update() def drop(self, e: ft.DragEndEvent):