Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
12ec7dc8
Unverified
Commit
12ec7dc8
authored
Apr 12, 2021
by
Greg Spencer
Committed by
GitHub
Apr 12, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove a dynamic that is no longer necessary (and the TODO for it) (#80294)
parent
d2446937
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
11 additions
and
27 deletions
+11
-27
focus_manager.dart
packages/flutter/lib/src/widgets/focus_manager.dart
+9
-25
focus_scope_test.dart
packages/flutter/test/widgets/focus_scope_test.dart
+2
-2
No files found.
packages/flutter/lib/src/widgets/focus_manager.dart
View file @
12ec7dc8
...
...
@@ -55,8 +55,7 @@ enum KeyEventResult {
///
/// Returns a [KeyEventResult] that describes how, and whether, the key event
/// was handled.
// TODO(gspencergoog): Convert this from dynamic to KeyEventResult once migration is complete.
typedef
FocusOnKeyCallback
=
dynamic
Function
(
FocusNode
node
,
RawKeyEvent
event
);
typedef
FocusOnKeyCallback
=
KeyEventResult
Function
(
FocusNode
node
,
RawKeyEvent
event
);
/// An attachment point for a [FocusNode].
///
...
...
@@ -1674,33 +1673,18 @@ class FocusManager with DiagnosticableTreeMixin, ChangeNotifier {
bool
handled
=
false
;
for
(
final
FocusNode
node
in
<
FocusNode
>[
_primaryFocus
!,
...
_primaryFocus
!.
ancestors
])
{
if
(
node
.
onKey
!=
null
)
{
// TODO(gspencergoog): Convert this from dynamic to KeyEventResult once migration is complete.
final
dynamic
result
=
node
.
onKey
!(
node
,
event
);
assert
(
result
is
bool
||
result
is
KeyEventResult
,
'Value returned from onKey handler must be a non-null bool or KeyEventResult, not
${result.runtimeType}
'
,
);
if
(
result
is
KeyEventResult
)
{
switch
(
result
)
{
case
KeyEventResult
.
handled
:
assert
(
_focusDebug
(
'Node
$node
handled key event
$event
.'
));
handled
=
true
;
break
;
case
KeyEventResult
.
skipRemainingHandlers
:
assert
(
_focusDebug
(
'Node
$node
stopped key event propagation:
$event
.'
));
handled
=
false
;
break
;
case
KeyEventResult
.
ignored
:
continue
;
}
}
else
if
(
result
is
bool
){
if
(
result
)
{
final
KeyEventResult
result
=
node
.
onKey
!(
node
,
event
);
switch
(
result
)
{
case
KeyEventResult
.
handled
:
assert
(
_focusDebug
(
'Node
$node
handled key event
$event
.'
));
handled
=
true
;
break
;
}
else
{
case
KeyEventResult
.
skipRemainingHandlers
:
assert
(
_focusDebug
(
'Node
$node
stopped key event propagation:
$event
.'
));
handled
=
false
;
break
;
case
KeyEventResult
.
ignored
:
continue
;
}
}
break
;
}
...
...
packages/flutter/test/widgets/focus_scope_test.dart
View file @
12ec7dc8
...
...
@@ -1596,7 +1596,7 @@ void main() {
bool
?
keyEventHandled
;
await
tester
.
pumpWidget
(
Focus
(
onKey:
(
_
,
__
)
=>
true
,
// This one does nothing.
onKey:
(
_
,
__
)
=>
KeyEventResult
.
ignored
,
// This one does nothing.
focusNode:
focusNode
,
child:
Container
(
key:
key1
),
),
...
...
@@ -1611,7 +1611,7 @@ void main() {
Focus
(
onKey:
(
FocusNode
node
,
RawKeyEvent
event
)
{
// The updated handler handles the key.
keyEventHandled
=
true
;
return
true
;
return
KeyEventResult
.
handled
;
},
focusNode:
focusNode
,
child:
Container
(
key:
key1
),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment