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
b8b35671
Unverified
Commit
b8b35671
authored
Dec 21, 2022
by
Michael Goderbauer
Committed by
GitHub
Dec 21, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove single-view assumption from widgets library (#117480)
parent
39fa0117
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
15 additions
and
8 deletions
+15
-8
editable_text.dart
packages/flutter/lib/src/widgets/editable_text.dart
+6
-4
scroll_physics.dart
packages/flutter/lib/src/widgets/scroll_physics.dart
+2
-1
semantics_debugger.dart
packages/flutter/lib/src/widgets/semantics_debugger.dart
+3
-2
widget_inspector.dart
packages/flutter/lib/src/widgets/widget_inspector.dart
+4
-1
No files found.
packages/flutter/lib/src/widgets/editable_text.dart
View file @
b8b35671
...
...
@@ -43,6 +43,7 @@ import 'text_editing_intents.dart';
import
'text_selection.dart'
;
import
'text_selection_toolbar_anchors.dart'
;
import
'ticker_provider.dart'
;
import
'view.dart'
;
import
'widget_span.dart'
;
export
'package:flutter/services.dart'
show
SelectionChangedCause
,
SmartDashesType
,
SmartQuotesType
,
TextEditingValue
,
TextInputType
,
TextSelection
;
...
...
@@ -3303,17 +3304,18 @@ class EditableTextState extends State<EditableText> with AutomaticKeepAliveClien
@override
void
didChangeMetrics
()
{
if
(
_lastBottomViewInset
!=
WidgetsBinding
.
instance
.
window
.
viewInsets
.
bottom
)
{
final
ui
.
FlutterView
view
=
View
.
of
(
context
);
if
(
_lastBottomViewInset
!=
view
.
viewInsets
.
bottom
)
{
SchedulerBinding
.
instance
.
addPostFrameCallback
((
Duration
_
)
{
_selectionOverlay
?.
updateForScroll
();
});
if
(
_lastBottomViewInset
<
WidgetsBinding
.
instance
.
windo
w
.
viewInsets
.
bottom
)
{
if
(
_lastBottomViewInset
<
vie
w
.
viewInsets
.
bottom
)
{
// Because the metrics change signal from engine will come here every frame
// (on both iOS and Android). So we don't need to show caret with animation.
_scheduleShowCaretOnScreen
(
withAnimation:
false
);
}
}
_lastBottomViewInset
=
WidgetsBinding
.
instance
.
windo
w
.
viewInsets
.
bottom
;
_lastBottomViewInset
=
vie
w
.
viewInsets
.
bottom
;
}
Future
<
void
>
_performSpellCheck
(
final
String
text
)
async
{
...
...
@@ -3516,7 +3518,7 @@ class EditableTextState extends State<EditableText> with AutomaticKeepAliveClien
if
(
_hasFocus
)
{
// Listen for changing viewInsets, which indicates keyboard showing up.
WidgetsBinding
.
instance
.
addObserver
(
this
);
_lastBottomViewInset
=
WidgetsBinding
.
instance
.
window
.
viewInsets
.
bottom
;
_lastBottomViewInset
=
View
.
of
(
context
)
.
viewInsets
.
bottom
;
if
(!
widget
.
readOnly
)
{
_scheduleShowCaretOnScreen
(
withAnimation:
true
);
}
...
...
packages/flutter/lib/src/widgets/scroll_physics.dart
View file @
b8b35671
...
...
@@ -13,6 +13,7 @@ import 'framework.dart';
import
'overscroll_indicator.dart'
;
import
'scroll_metrics.dart'
;
import
'scroll_simulation.dart'
;
import
'view.dart'
;
export
'package:flutter/physics.dart'
show
ScrollSpringSimulation
,
Simulation
,
Tolerance
;
...
...
@@ -251,7 +252,7 @@ class ScrollPhysics {
assert
(
metrics
!=
null
);
assert
(
context
!=
null
);
if
(
parent
==
null
)
{
final
double
maxPhysicalPixels
=
WidgetsBinding
.
instance
.
window
.
physicalSize
.
longestSide
;
final
double
maxPhysicalPixels
=
View
.
of
(
context
)
.
physicalSize
.
longestSide
;
return
velocity
.
abs
()
>
maxPhysicalPixels
;
}
return
parent
!.
recommendDeferredLoading
(
velocity
,
metrics
,
context
);
...
...
packages/flutter/lib/src/widgets/semantics_debugger.dart
View file @
b8b35671
...
...
@@ -12,6 +12,7 @@ import 'basic.dart';
import
'binding.dart'
;
import
'framework.dart'
;
import
'gesture_detector.dart'
;
import
'view.dart'
;
/// A widget that visualizes the semantics for the child.
///
...
...
@@ -96,7 +97,7 @@ class _SemanticsDebuggerState extends State<SemanticsDebugger> with WidgetsBindi
Offset
?
_lastPointerDownLocation
;
void
_handlePointerDown
(
PointerDownEvent
event
)
{
setState
(()
{
_lastPointerDownLocation
=
event
.
position
*
WidgetsBinding
.
instance
.
window
.
devicePixelRatio
;
_lastPointerDownLocation
=
event
.
position
*
View
.
of
(
context
)
.
devicePixelRatio
;
});
// TODO(ianh): Use a gesture recognizer so that we can reset the
// _lastPointerDownLocation when none of the other gesture recognizers win.
...
...
@@ -159,7 +160,7 @@ class _SemanticsDebuggerState extends State<SemanticsDebugger> with WidgetsBindi
_pipelineOwner
,
_client
.
generation
,
_lastPointerDownLocation
,
// in physical pixels
WidgetsBinding
.
instance
.
window
.
devicePixelRatio
,
View
.
of
(
context
)
.
devicePixelRatio
,
widget
.
labelStyle
,
),
child:
GestureDetector
(
...
...
packages/flutter/lib/src/widgets/widget_inspector.dart
View file @
b8b35671
...
...
@@ -10,6 +10,7 @@ import 'dart:math' as math;
import
'dart:ui'
as
ui
show
ClipOp
,
FlutterView
,
Image
,
ImageByteFormat
,
Paragraph
,
...
...
@@ -30,6 +31,7 @@ import 'debug.dart';
import
'framework.dart'
;
import
'gesture_detector.dart'
;
import
'service_extensions.dart'
;
import
'view.dart'
;
/// Signature for the builder callback used by
/// [WidgetInspector.selectButtonBuilder].
...
...
@@ -2726,7 +2728,8 @@ class _WidgetInspectorState extends State<WidgetInspector>
// on the edge of the display. If the pointer is being dragged off the edge
// of the display we do not want to select anything. A user can still select
// a widget that is only at the exact screen margin by tapping.
final
Rect
bounds
=
(
Offset
.
zero
&
(
WidgetsBinding
.
instance
.
window
.
physicalSize
/
WidgetsBinding
.
instance
.
window
.
devicePixelRatio
)).
deflate
(
_kOffScreenMargin
);
final
ui
.
FlutterView
view
=
View
.
of
(
context
);
final
Rect
bounds
=
(
Offset
.
zero
&
(
view
.
physicalSize
/
view
.
devicePixelRatio
)).
deflate
(
_kOffScreenMargin
);
if
(!
bounds
.
contains
(
_lastPointerLocation
!))
{
setState
(()
{
selection
.
clear
();
...
...
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