Skip to content

Commit 454be8f

Browse files
Fix container click event data object (#198)
1 parent 6e77f58 commit 454be8f

File tree

6 files changed

+26
-18
lines changed

6 files changed

+26
-18
lines changed

sdk/python/flet/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from flet.checkbox import Checkbox
99
from flet.circle_avatar import CircleAvatar
1010
from flet.column import Column
11-
from flet.container import Container, ContainerTapEventData
11+
from flet.container import Container, ContainerTapEvent
1212
from flet.control import Control
1313
from flet.divider import Divider
1414
from flet.drag_target import DragTarget
@@ -29,7 +29,7 @@
2929
from flet.markdown import Markdown
3030
from flet.navigation_rail import NavigationRail, NavigationRailDestination
3131
from flet.outlined_button import OutlinedButton
32-
from flet.page import KeyboardEventData, Page
32+
from flet.page import KeyboardEvent, Page
3333
from flet.popup_menu_button import PopupMenuButton, PopupMenuItem
3434
from flet.progress_bar import ProgressBar
3535
from flet.progress_ring import ProgressRing

sdk/python/flet/container.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from flet.border import Border
88
from flet.constrained_control import ConstrainedControl
99
from flet.control import BlendMode, Control, OptionalNumber
10+
from flet.control_event import ControlEvent
1011
from flet.event_handler import EventHandler
1112
from flet.gradients import Gradient
1213
from flet.image import ImageFit, ImageRepeat
@@ -102,8 +103,10 @@ def __init__(
102103
)
103104

104105
def convert_container_tap_event_data(e):
106+
if self.ink:
107+
return e
105108
d = json.loads(e.data)
106-
return ContainerTapEventData(**d)
109+
return ContainerTapEvent(**d)
107110

108111
self.__on_click = EventHandler(convert_container_tap_event_data)
109112
self._add_event_handler("click", self.__on_click.handler)
@@ -345,7 +348,7 @@ def on_hover(self, handler):
345348
self._set_attr("onHover", None)
346349

347350

348-
class ContainerTapEventData:
351+
class ContainerTapEvent(ControlEvent):
349352
def __init__(self, lx, ly, gx, gy) -> None:
350353
self.local_x: float = lx
351354
self.local_y: float = ly

sdk/python/flet/control_event.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from flet.event import Event
2+
3+
4+
class ControlEvent(Event):
5+
def __init__(self, target: str, name: str, data: str, control, page):
6+
Event.__init__(self, target=target, name=name, data=data)
7+
8+
self.control = control
9+
self.page = page

sdk/python/flet/event.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
from flet.control import Control
2-
3-
41
class Event:
52
def __init__(self, target: str, name: str, data: str):
63
self.target: str = target

sdk/python/flet/event_handler.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,13 @@ def __init__(self, result_converter=None) -> None:
66
def handler(self, e):
77
for h in self.__handlers.keys():
88
if self.__result_converter != None:
9-
h(self.__result_converter(e))
9+
r = self.__result_converter(e)
10+
r.target = e.target
11+
r.name = e.name
12+
r.data = e.data
13+
r.control = e.control
14+
r.page = e.page
15+
h(r)
1016
else:
1117
h(e)
1218

sdk/python/flet/page.py

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
OptionalNumber,
2020
ScrollMode,
2121
)
22+
from flet.control_event import ControlEvent
2223
from flet.event import Event
2324
from flet.event_handler import EventHandler
2425
from flet.floating_action_button import FloatingActionButton
@@ -76,7 +77,7 @@ def __init__(self, conn: Connection, session_id):
7677

7778
def convert_keyboard_event_data(e):
7879
d = json.loads(e.data)
79-
return KeyboardEventData(**d)
80+
return KeyboardEvent(**d)
8081

8182
self.__on_keyboard_event = EventHandler(convert_keyboard_event_data)
8283
self._add_event_handler("keyboard_event", self.__on_keyboard_event.handler)
@@ -951,16 +952,8 @@ def dialog(self, value: Optional[Control]):
951952
self.__dialog = value
952953

953954

954-
class ControlEvent(Event):
955-
def __init__(self, target: str, name: str, data: str, control: Control, page: Page):
956-
Event.__init__(self, target=target, name=name, data=data)
957-
958-
self.control: Control = control
959-
self.page: Page = page
960-
961-
962955
@dataclass
963-
class KeyboardEventData:
956+
class KeyboardEvent(ControlEvent):
964957
key: str
965958
shift: bool
966959
ctrl: bool

0 commit comments

Comments
 (0)