520 Commits

Author SHA1 Message Date
Jim Graham
6f6611359c
Reland "Remove obsolete drawShadow bounds workaround (#127052)" (#127231)
This workaround was created 6 years ago with no links to bug databases to track. As best we can determine, the issue is no longer present in SkPicture or DisplayList and is most likely obsolete. More importantly, though, non-rendering primitives are ignored by the DisplayList construction and so this workaround will just be ignored anyway. If a problem surfaces about this issue that we haven't discovered by a thorough code search of the current code base, then workarounds should be installed within the relevant implementation modules rather than in the framework (and documented with bugs filed in either or both of Flutter's github repos, and/or the Skia issue database).

Workaround originally created in this PR: https://github.com/flutter/flutter/pull/9654
2023-06-02 22:03:07 +00:00
LongCatIsLooong
b5df180a6f
Move shared inline widget logic to RenderInlineWidgetContainerDefaults (#127308)
- Added `InlineWidgetContainerDefaults` for deduping inline widget code
- Added a helper function `WidgetSpan.extractFromInlineSpan` for extracting `WidgetSpan`s and automatically applying text scaling (at widget level)
- Removed `TextPainter.inlinePlaceholderScales`. I'm going to deprecate the `scale` argument in `TextPainter.addPlaceholder` next, as scaling is now done at the widget level.
- Added runtime check and comments to make sure nobody is extending `PlaceholderSpan` directly (unfortunately we can't remove `PlaceholderSpan`  without moving RenderEditable and RenderParagraph to the widgets library).
2023-05-26 23:47:33 +00:00
Justin McCandless
6071f149b5
Revert "Remove obsolete drawShadow bounds workaround" (#127110)
Reverts flutter/flutter#127052, which seems to be breaking the build
because of a goldens failure.

```
The following TestFailure was thrown running a test:
Expected: one widget whose rasterized image matches golden image "shadow.PhysicalModel.enabled.png"
  Actual: _WidgetTypeFinder:<exactly one widget with type "Container" (ignoring offstage widgets):
Container(bg: Color(0xfffff59d), margin: EdgeInsets.all(150.0))>
```

See
https://ci.chromium.org/ui/p/flutter/builders/prod/Linux%20web_tests_6/11051/overview
2023-05-18 09:05:07 -07:00
Jim Graham
8089a309a9
Remove obsolete drawShadow bounds workaround (#127052)
This workaround was created 6 years ago with no links to bug databases to track. As best we can determine, the issue is no longer present in SkPicture or DisplayList and is most likely obsolete. More importantly, though, non-rendering primitives are ignored by the DisplayList construction and so this workaround will just be ignored anyway. If a problem surfaces about this issue that we haven't discovered by a thorough code search of the current code base, then workarounds should be installed within the relevant implementation modules rather than in the framework (and documented with bugs filed in either or both of Flutter's github repos, and/or the Skia issue database).

Workaround originally created in this PR: https://github.com/flutter/flutter/pull/9654
2023-05-18 00:17:33 +00:00
chunhtai
9884b5f55e
Fixes IgnorePointer and AbsorbPointer to only block user interactions… (#120619)
Fixes IgnorePointer and AbsorbPointer to only block user interactions…
2023-04-07 15:51:05 +00:00
Michael Goderbauer
fda9ecfef7
Remove 1745 decorative breaks (#123259)
Remove 1745 decorative breaks
2023-03-22 21:12:22 +00:00
Greg Price
cd125e1f71
Add test for RenderProxyBoxMixin; clarify doc, resolve TODO (#117664)
* Add test for RenderProxyBoxMixin; clarify doc, resolve TODO

The TODO comment suggested this mixin would no longer be needed once
a Dart issue on inherited constructors was fixed:
  https://github.com/dart-lang/sdk/issues/31543
That issue is now long since fixed, so I went to go carry out the TODO.

But in doing so, I realized that the mixin's documentation was more
right than the TODO comment: even with that issue fixed, there is a
legitimate use case for this mixin, namely to reuse the implementation
of RenderProxyBox in a class that also inherits from some other base
class.  Moreover, searching GitHub I found an example of a library
that makes real use of that capability.

So I think the right resolution is to accept that this separation
is useful and delete the TODO.

Then, add a test with an extremely simplified sketch of that
real-world example.  In case someone in the future attempts to
simplify this mixin away, the test will point us at the use case
that would be broken by such a change.

Also remove the only in-tree use of the mixin, which was redundant;
and expand the mixin's documentation to advise about that case.

* Tweak formatting

Co-authored-by: Michael Goderbauer <goderbauer@google.com>

* Cut comments

---------

Co-authored-by: Michael Goderbauer <goderbauer@google.com>
2023-02-08 01:17:23 +00:00
Michael Goderbauer
9837eb6fc5
Remove unnecessary null checks in flutter/rendering (#118923) 2023-01-21 01:34:50 +00:00
Jonah Williams
169b49fba7
Revert "[framework] make transform with filterQuality a rpb (#116792)" (#117095)
This reverts commit e331dcda1785982a9efbc762e08e9c617cd3f6ae.
2022-12-15 17:11:42 +00:00
Jonah Williams
e331dcda17
[framework] make transform with filterQuality a rpb (#116792)
* [framework] make transform with filterQuality a rpb

* fix tests

* ++
2022-12-12 23:30:17 +00:00
Jonah Williams
d19047d8a1
[framework] make opacity widget create a repaint boundary (#116788) 2022-12-12 18:40:13 +00:00
Ian Hickson
9fdb64b7e7
Taboo the word "simply" from our API documentation. (#116061) 2022-12-11 22:43:22 +00:00
Greg Spencer
6d67fbb92c
Add HitTestBehavior to TapRegion (#113634) 2022-10-18 20:12:57 +00:00
Greg Spencer
8c271e5cb8
Implement Material MenuBar and MenuAnchor (#112239)
This implements a MenuBar widget that can render a Material menu bar, and a MenuAnchor widget used to create a cascading menu in a region. The menus are drawn in the overlay, while the menu bar itself is in the regular widget tree. Keyboard traversal works between the two.

This implementation of the MenuBar uses MenuAnchor to create a cascading menu that contains widgets representing the menu items. These menu items can be any kind of widget, but are typically SubmenuButtons that host submenus, or MenuItemButtons that have shortcut hints (but don't actually activate the shortcuts) and don't host submenus.

Cascading menus can be created outside of a MenuBar by using a MenuAnchor. They can be either given a specific location to appear (a coordinate), or they can be located by the MenuAnchor region that wraps the control that opens them.

The developer may also create a MenuController to pass to the various menu primitives (MenuBar or MenuAnchor) to associate menus so that they can be traversed together and closed together. Creating a controller is not required.
2022-09-28 14:10:18 -07:00
yaakovschectman
4d3c122434
Use tristate checkbox engine changes (#111032)
* Introduce tests for tristate checkboxes

* Initial

* Use tristate changes in engine

* Flutter_test matchers test update

* Comments, tests

* Update packages/flutter/lib/src/semantics/semantics.dart

Co-authored-by: Chris Bracken <chris@bracken.jp>

* Assert mutual exclusivity

* Assert valid state before updating state

* Update packages/flutter/lib/src/semantics/semantics.dart

Typo fix in comment

Co-authored-by: Loïc Sharma <737941+loic-sharma@users.noreply.github.com>

Co-authored-by: Chris Bracken <chris@bracken.jp>
Co-authored-by: Loïc Sharma <737941+loic-sharma@users.noreply.github.com>
2022-09-08 17:41:54 -04:00
Jonah Williams
7e1e840999
[framework] revert removal of opacity (#111202) 2022-09-08 18:33:23 +00:00
Dan Field
eaff1562a9
Dispose Paragraph objects (#110627) 2022-09-06 20:45:55 +00:00
Tomasz Gucio
16c25caa44
Add RenderRepaintBoundary.toImageSync() method (#108280) 2022-07-27 05:17:04 +00:00
Bernardo Ferrari
22cb06b57f
Add OvalBorder and BoxShape.oval (#103833) 2022-07-20 21:29:04 +00:00
Alexandre Ardhuin
ccd33631e3
enable combinators_ordering (#107847) 2022-07-18 22:04:07 +00:00
Jonah Williams
15739345da
[framework] don't composite with a scale of 0.0 (#106982) 2022-07-07 23:30:05 +00:00
Jonah Williams
d36ecec5b9
[framework] partial removal of forced compositing from opacity (#106989) 2022-07-02 16:49:06 +00:00
Jonah Williams
c12b0de004
remove opacity layer at fully opaque (#106351) 2022-06-21 11:05:24 -07:00
Alexandre Ardhuin
0f6244fa42
Export public API types from gestures/*.dart library (#105864) 2022-06-17 20:42:05 +00:00
Bruno Leroux
58007fc64c
Fix debugPaintSize throws 'Null Check error' (#106108) 2022-06-17 06:16:06 +00:00
Zachary Anderson
ac7e29a40f
Revert "remove forced compositing from opacity" (#105489) 2022-06-07 00:43:05 -07:00
Jonah Williams
febc6a14f5
remove forced compositing from opacity (#105334) 2022-06-06 12:13:07 -07:00
Pierre-Louis
e71eb183d8
Use curly_braces_in_flow_control_structures for rendering (#104611)
* Use `curly_braces_in_flow_control_structures` for `rendering`

* fix comments

* fix dangling
2022-05-25 19:57:57 +02:00
gaaclarke
914556ea64
Started sharing SemanticsProperties between the Widget and the RenderObject (#104281) 2022-05-23 16:18:08 -07:00
Michael Goderbauer
2cbad4b3ae
Final chapter: migrate api doc samples to super-parameters (#104007) 2022-05-17 15:35:07 -07:00
Dan Field
fe87538b76
Implement paintsChild on RenderObjects that skip painting on their children (#103768) 2022-05-16 11:29:07 -07:00
Dan Field
4f96419612
Make _RenderCustomClip respect clipBehavior (#103748) 2022-05-13 17:14:07 -07:00
Jonah Williams
8147bdbb5c
partial revert of repaint boundary change (#102962) 2022-05-03 14:09:07 -07:00
Jonah Williams
fba9214d11
[framework] remove usage and deprecate physical model layer (#102274) 2022-04-26 16:14:04 -07:00
Jonah Williams
0cb5772e73
[framework] allow other RenderObjects to behave like repaint boundaries (#101952) 2022-04-26 10:19:09 -07:00
wangying
899548c48a
Assign debugCreator for more layers (#101899) 2022-04-25 10:04:07 -07:00
chunhtai
2ebc7bee9c
Adds tooltip to semantics node (#87684) 2022-04-21 12:14:09 -07:00
Michael Goderbauer
51bcdb9407
super parameters for framework (#100905) 2022-04-13 22:38:40 -07:00
Callum Moffat
30a501801a
Support trackpad gestures in framework (#89944)
* Implement trackpad gestures in framework

* Touch and Pan/Zoom pointers have separate IDs now

* Handle trackpad pointer device type

* Respect supportedDevices for pan/zoom events

* Update after rebase

* Fix check failures

* Avoid error with very short drags

* Address feedback

* Refactor drag event handler

* Address more feedback

* Add some missing punctuation
2022-04-12 19:47:01 -07:00
MrBirb
074ee4b2f4
Allow ClipRRect.borderRadius to support BorderRadiusDirectional (#101200) 2022-04-09 01:44:04 -07:00
xubaolin
f1d8e30c4b
Add HitTestBehavior property to MouseRegion (#100405) 2022-03-22 23:55:11 -07:00
Michael Goderbauer
8560d914eb
Upgrade to flutter_lints 2.0 (#99881) 2022-03-22 11:00:23 -07:00
Pierre-Louis
9d4e81678b
Fix deprecated_new_in_comment_reference for material library (#100289)
* fix deprecated_new_in_comment_reference for `material` library

in a future version of the SDK, these will be flagged, fix them now

* Update pubspec.yaml
2022-03-21 20:18:40 +01:00
Tomasz Gucio
e4351ff053
Enable use_if_null_to_convert_nulls_to_bools lint (#98753) 2022-02-22 14:39:20 -08:00
Kate Lovett
13f106b026
Allow Clip.none as a valid clipBehavior (#95593) 2022-02-02 15:32:05 -06:00
Michael Goderbauer
d290763941
enable more retained rendering opportunities for LeaderLayer (#96486) 2022-01-11 18:20:14 -08:00
Jim Graham
6ba2f526a4
Fix alignment of matrix for Transform+filterQuality when offset (#95432) 2021-12-17 18:09:14 -08:00
Michael Goderbauer
ca788d8941
Leader not always dirty (#92598) 2021-10-28 10:35:03 -07:00
Ian Hickson
7b01346c5c
Enable no_default_cases lint (#91530) 2021-10-11 10:23:04 -07:00
Ian Hickson
989f864497
Enable avoid_setters_without_getters (#91067) 2021-10-01 00:58:05 -07:00