Skip to content

Commit b8752ac

Browse files
authored
Merge pull request akvelon#227 from akvelon/issue224_popup_horizontal_overflow
suggestion popup horizontal overflow fixed
2 parents ae149b3 + d2d2316 commit b8752ac

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

lib/src/wip/autocomplete/popup.dart

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,17 +60,18 @@ class PopupState extends State<Popup> {
6060
@override
6161
Widget build(BuildContext context) {
6262
final verticalFlipRequired = _isVerticalFlipRequired();
63-
final bool horizontalOverflow =
64-
widget.normalOffset.dx + Sizes.autocompletePopupMaxWidth >
65-
widget.editingWindowSize.width;
63+
final bool isHorizontalOverflowed = _isHorizontallyOverflowed();
6664
final double leftOffsetLimit =
6765
// TODO(nausharipov): find where 100 comes from
68-
widget.editingWindowSize.width - Sizes.autocompletePopupMaxWidth - 100;
66+
widget.editingWindowSize.width -
67+
Sizes.autocompletePopupMaxWidth +
68+
(widget.editorOffset?.dx ?? 0) -
69+
100;
6970

7071
return PageStorage(
7172
bucket: pageStorageBucket,
7273
child: Positioned(
73-
left: horizontalOverflow ? leftOffsetLimit : widget.normalOffset.dx,
74+
left: isHorizontalOverflowed ? leftOffsetLimit : widget.normalOffset.dx,
7475
top: verticalFlipRequired
7576
? widget.flippedOffset.dy
7677
: widget.normalOffset.dy,
@@ -120,6 +121,13 @@ class PopupState extends State<Popup> {
120121
return isPopupOverflowingHeight && isPopupShorterThanWindow;
121122
}
122123

124+
bool _isHorizontallyOverflowed() {
125+
return widget.normalOffset.dx -
126+
(widget.editorOffset?.dx ?? 0) +
127+
Sizes.autocompletePopupMaxWidth >
128+
widget.editingWindowSize.width;
129+
}
130+
123131
Widget _buildListItem(int index) {
124132
return Material(
125133
color: Colors.grey.withOpacity(0.1),

0 commit comments

Comments
 (0)