Skip to content

Conversation

@lucas-goldner
Copy link
Contributor

This PR aims to add a selectionColor property to the SelectableText widget. Below I have an image attached showing a SelectableText with a custom selectionColor

SelectableText(
    'Hello, world! (Selectable)',
    selectionColor: Colors.red,
)

image

Fixes #162165

Pre-launch Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

P.S. This is my first PR to the Flutter repo, so if I can improve something, please let me know 🙇🏽

@github-actions github-actions bot added a: text input Entering text in a text field or keyboard related problems framework flutter/packages/flutter repository. See also f: labels. f: material design flutter/packages/flutter/material repository. labels Jan 24, 2025
@Piinks Piinks requested a review from Renzo-Olivares January 29, 2025 19:05
Copy link
Contributor

@Renzo-Olivares Renzo-Olivares left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @lucas-goldner, thank you for your contribution! I left a few small comments but overall this looks good to me.

cursorOpacityAnimates = true;
cursorColor =
widget.cursorColor ?? selectionStyle.cursorColor ?? cupertinoTheme.primaryColor;
selectionColor =
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of updating each switch case, your selectionColor: widget.selectionColor ?? selectionColor on EditableText is sufficient.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I adjusted it thank you! Does that mean cursorColor could also be shortened here? Or am I missing something

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think for this PR we can leave it as is.

@lucas-goldner lucas-goldner force-pushed the feat/add-selection-color-to-selectable-text branch from c143b51 to 2615ce5 Compare February 8, 2025 08:17
@lucas-goldner lucas-goldner force-pushed the feat/add-selection-color-to-selectable-text branch from 2615ce5 to 4c1ac74 Compare February 11, 2025 16:35
@flutter-dashboard
Copy link

Golden file changes have been found for this pull request. Click here to view and triage (e.g. because this is an intentional change).

If you are still iterating on this change and are not ready to resolve the images on the Flutter Gold dashboard, consider marking this PR as a draft pull request above. You will still be able to view image results on the dashboard, commenting will be silenced, and the check will not try to resolve itself until marked ready for review.

For more guidance, visit Writing a golden file test for package:flutter.

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing.

Changes reported for pull request #162177 at sha 4c1ac74

@flutter-dashboard flutter-dashboard bot added the will affect goldens Changes to golden files label Feb 11, 2025
Copy link
Contributor

@Renzo-Olivares Renzo-Olivares left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, the goldens seem unrelated, maybe try doing a rebase?

@lucas-goldner lucas-goldner force-pushed the feat/add-selection-color-to-selectable-text branch from 4c1ac74 to 8e00f49 Compare February 12, 2025 16:36
@dkwingsmt dkwingsmt requested a review from justinmc February 12, 2025 19:32
Copy link
Contributor

@justinmc justinmc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with nits 👍 . Thanks for adding this!

@lucas-goldner lucas-goldner force-pushed the feat/add-selection-color-to-selectable-text branch from 8e00f49 to 644faf0 Compare February 15, 2025 16:41
Copy link
Contributor

@justinmc justinmc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Renewing my LGTM and merging 👍

@justinmc justinmc added the autosubmit Merge PR when tree becomes green via auto submit App label Feb 20, 2025
@auto-submit auto-submit bot added this pull request to the merge queue Feb 21, 2025
Merged via the queue into flutter:master with commit edc20ac Feb 21, 2025
75 checks passed
@flutter-dashboard flutter-dashboard bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Feb 21, 2025
@lucas-goldner lucas-goldner deleted the feat/add-selection-color-to-selectable-text branch February 21, 2025 01:22
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 21, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 22, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 22, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 22, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 22, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 23, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 23, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 24, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 24, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 24, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 24, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 24, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Feb 24, 2025
Manual roll Flutter from 39b4951 to 911aa75 (56 revisions)

Manual roll requested by [email protected]

flutter/flutter@39b4951...911aa75

2025-02-21 [email protected] Remove legacy scenec stuff from flutter_tool (flutter/flutter#163569)
2025-02-21 [email protected] [fuchsia] reorder tests in test_suites.yaml and update the comment (flutter/flutter#163799)
2025-02-21 [email protected] Roll Dart SDK from 7ceb3be8ed0a to c5e582f15b6c (2 revisions) (flutter/flutter#163844)
2025-02-21 [email protected] Roll Packages from a9b9172 to 5a721da (2 revisions) (flutter/flutter#163848)
2025-02-21 [email protected] Roll Dart SDK from ad642ee6f94b to 7ceb3be8ed0a (2 revisions) (flutter/flutter#163832)
2025-02-21 [email protected] Update how to use VSCode with `clangd` after the monorepo merge (flutter/flutter#163671)
2025-02-21 [email protected] Reland #163711 after #163780 (flutter/flutter#163812)
2025-02-21 [email protected] Fix incorrect function name in FlutterEngineRun documentation (flutter/flutter#163696)
2025-02-21 [email protected] Roll Dart SDK from 557cbf2c7da6 to ad642ee6f94b (5 revisions) (flutter/flutter#163794)
2025-02-21 [email protected] [canvaskit] Use `visualViewport.scale` to determine device pixel ratio. (flutter/flutter#163688)
2025-02-21 [email protected] [DisplayList] Migrate rendering tests and benchmarks to DL geometry (flutter/flutter#163766)
2025-02-21 [email protected] Make `releaseMode` explicit, inform `determineDevDependencies` entirely on the flag (flutter/flutter#163780)
2025-02-21 [email protected] Ensure `exclude_dev_dependencies_test` runs if `flutter_tools` changes. (flutter/flutter#163768)
2025-02-21 [email protected] WebKit should respect TextCapitalization.words (flutter/flutter#161027)
2025-02-21 [email protected] CupertinoSliverNavigationBar.search fidelity updates (flutter/flutter#163089)
2025-02-21 [email protected] feat: Add selectionColor property to selectable text (flutter/flutter#162177)
2025-02-20 [email protected] Restore `linux_android_emulator_tests` to CI. (flutter/flutter#163747)
2025-02-20 [email protected] introduce system color palette (flutter/flutter#163335)
2025-02-20 [email protected] [web] DRY up access to headers required for multi-threaded WebAssembly (flutter/flutter#163555)
2025-02-20 [email protected] fix(CupertinoDatePicker): font is inconsistent (flutter/flutter#162932)
2025-02-20 [email protected] Create Android-API-And-Related-Versions.md (flutter/flutter#163556)
2025-02-20 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Avoid implicitly setting `determineDevDependencies: true` (it's not a safe operation) (#163711)" (flutter/flutter#163762)
2025-02-20 [email protected] Revert "Create g3_bug.yml" (flutter/flutter#163757)
2025-02-20 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Make Flutter version information accessible at runtime (#140783)" (flutter/flutter#163753)
2025-02-20 [email protected] Skip Xcode install on mac_mokey Android tests (flutter/flutter#163685)
2025-02-20 [email protected] Roll Dart SDK from 2cecb16348e4 to 557cbf2c7da6 (3 revisions) (flutter/flutter#163705)
2025-02-20 [email protected] Add `FlutterVersion.engineCommitDate`, helps signal engine artifact SHA issues (flutter/flutter#163652)
2025-02-20 [email protected] Avoid implicitly setting `determineDevDependencies: true` (it's not a safe operation) (flutter/flutter#163711)
2025-02-20 [email protected] It is now safe to call `getBuildMode().release` (flutter/flutter#163712)
2025-02-20 [email protected] [iOS] remove Skia interfaces from iOS platform code. (flutter/flutter#163505)
2025-02-20 [email protected] Make Flutter version information accessible at runtime (flutter/flutter#140783)
2025-02-20 [email protected] [windows] Implement merged UI and platform thread (flutter/flutter#162935)
2025-02-20 [email protected] `CircularProgressIndicator` throws null exception (flutter/flutter#163356)
2025-02-20 [email protected] Fix the issue where DropdownMenu does not gain focus when tapped. (flutter/flutter#162874)
2025-02-20 [email protected] Check for tracked engine.version before overriding (flutter/flutter#163672)
2025-02-20 [email protected] showDialogs adds a `requestFocus` parameter. (flutter/flutter#162928)
2025-02-20 [email protected] Create helper method to dispatch object creation and disposal. (flutter/flutter#163637)
2025-02-20 [email protected] Redistribute iOS TESTOWNERS (flutter/flutter#163653)
2025-02-20 [email protected] enclosingElement -> enclosingElement3 (flutter/flutter#163681)
2025-02-19 [email protected] [ Widget Preview ] Move `preview_detector_test.dart` from `general.shard` to `commands.shard` (flutter/flutter#163619)
2025-02-19 [email protected] [iOS] always post new task during gesture dispatch. (flutter/flutter#163646)
2025-02-19 [email protected] Allow flutter tools to detach a running Chrome session (flutter/flutter#163349)
2025-02-19 [email protected] Reland "[Impeller] add support for rational bezier conics to Path (#63282)" (flutter/flutter#163645)
2025-02-19 [email protected] [web:a11y] wheel events switch to pointer mode (flutter/flutter#163582)
...
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 21, 2025
androidseb pushed a commit to androidseb/packages that referenced this pull request Jun 8, 2025
)

Manual roll Flutter from 39b4951 to 911aa75 (56 revisions)

Manual roll requested by [email protected]

flutter/flutter@39b4951...911aa75

2025-02-21 [email protected] Remove legacy scenec stuff from flutter_tool (flutter/flutter#163569)
2025-02-21 [email protected] [fuchsia] reorder tests in test_suites.yaml and update the comment (flutter/flutter#163799)
2025-02-21 [email protected] Roll Dart SDK from 7ceb3be8ed0a to c5e582f15b6c (2 revisions) (flutter/flutter#163844)
2025-02-21 [email protected] Roll Packages from a9b9172 to 5a721da (2 revisions) (flutter/flutter#163848)
2025-02-21 [email protected] Roll Dart SDK from ad642ee6f94b to 7ceb3be8ed0a (2 revisions) (flutter/flutter#163832)
2025-02-21 [email protected] Update how to use VSCode with `clangd` after the monorepo merge (flutter/flutter#163671)
2025-02-21 [email protected] Reland #163711 after #163780 (flutter/flutter#163812)
2025-02-21 [email protected] Fix incorrect function name in FlutterEngineRun documentation (flutter/flutter#163696)
2025-02-21 [email protected] Roll Dart SDK from 557cbf2c7da6 to ad642ee6f94b (5 revisions) (flutter/flutter#163794)
2025-02-21 [email protected] [canvaskit] Use `visualViewport.scale` to determine device pixel ratio. (flutter/flutter#163688)
2025-02-21 [email protected] [DisplayList] Migrate rendering tests and benchmarks to DL geometry (flutter/flutter#163766)
2025-02-21 [email protected] Make `releaseMode` explicit, inform `determineDevDependencies` entirely on the flag (flutter/flutter#163780)
2025-02-21 [email protected] Ensure `exclude_dev_dependencies_test` runs if `flutter_tools` changes. (flutter/flutter#163768)
2025-02-21 [email protected] WebKit should respect TextCapitalization.words (flutter/flutter#161027)
2025-02-21 [email protected] CupertinoSliverNavigationBar.search fidelity updates (flutter/flutter#163089)
2025-02-21 [email protected] feat: Add selectionColor property to selectable text (flutter/flutter#162177)
2025-02-20 [email protected] Restore `linux_android_emulator_tests` to CI. (flutter/flutter#163747)
2025-02-20 [email protected] introduce system color palette (flutter/flutter#163335)
2025-02-20 [email protected] [web] DRY up access to headers required for multi-threaded WebAssembly (flutter/flutter#163555)
2025-02-20 [email protected] fix(CupertinoDatePicker): font is inconsistent (flutter/flutter#162932)
2025-02-20 [email protected] Create Android-API-And-Related-Versions.md (flutter/flutter#163556)
2025-02-20 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Avoid implicitly setting `determineDevDependencies: true` (it's not a safe operation) (#163711)" (flutter/flutter#163762)
2025-02-20 [email protected] Revert "Create g3_bug.yml" (flutter/flutter#163757)
2025-02-20 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Make Flutter version information accessible at runtime (#140783)" (flutter/flutter#163753)
2025-02-20 [email protected] Skip Xcode install on mac_mokey Android tests (flutter/flutter#163685)
2025-02-20 [email protected] Roll Dart SDK from 2cecb16348e4 to 557cbf2c7da6 (3 revisions) (flutter/flutter#163705)
2025-02-20 [email protected] Add `FlutterVersion.engineCommitDate`, helps signal engine artifact SHA issues (flutter/flutter#163652)
2025-02-20 [email protected] Avoid implicitly setting `determineDevDependencies: true` (it's not a safe operation) (flutter/flutter#163711)
2025-02-20 [email protected] It is now safe to call `getBuildMode().release` (flutter/flutter#163712)
2025-02-20 [email protected] [iOS] remove Skia interfaces from iOS platform code. (flutter/flutter#163505)
2025-02-20 [email protected] Make Flutter version information accessible at runtime (flutter/flutter#140783)
2025-02-20 [email protected] [windows] Implement merged UI and platform thread (flutter/flutter#162935)
2025-02-20 [email protected] `CircularProgressIndicator` throws null exception (flutter/flutter#163356)
2025-02-20 [email protected] Fix the issue where DropdownMenu does not gain focus when tapped. (flutter/flutter#162874)
2025-02-20 [email protected] Check for tracked engine.version before overriding (flutter/flutter#163672)
2025-02-20 [email protected] showDialogs adds a `requestFocus` parameter. (flutter/flutter#162928)
2025-02-20 [email protected] Create helper method to dispatch object creation and disposal. (flutter/flutter#163637)
2025-02-20 [email protected] Redistribute iOS TESTOWNERS (flutter/flutter#163653)
2025-02-20 [email protected] enclosingElement -> enclosingElement3 (flutter/flutter#163681)
2025-02-19 [email protected] [ Widget Preview ] Move `preview_detector_test.dart` from `general.shard` to `commands.shard` (flutter/flutter#163619)
2025-02-19 [email protected] [iOS] always post new task during gesture dispatch. (flutter/flutter#163646)
2025-02-19 [email protected] Allow flutter tools to detach a running Chrome session (flutter/flutter#163349)
2025-02-19 [email protected] Reland "[Impeller] add support for rational bezier conics to Path (#63282)" (flutter/flutter#163645)
2025-02-19 [email protected] [web:a11y] wheel events switch to pointer mode (flutter/flutter#163582)
...
FMorschel pushed a commit to FMorschel/packages that referenced this pull request Jun 9, 2025
)

Manual roll Flutter from 39b4951 to 911aa75 (56 revisions)

Manual roll requested by [email protected]

flutter/flutter@39b4951...911aa75

2025-02-21 [email protected] Remove legacy scenec stuff from flutter_tool (flutter/flutter#163569)
2025-02-21 [email protected] [fuchsia] reorder tests in test_suites.yaml and update the comment (flutter/flutter#163799)
2025-02-21 [email protected] Roll Dart SDK from 7ceb3be8ed0a to c5e582f15b6c (2 revisions) (flutter/flutter#163844)
2025-02-21 [email protected] Roll Packages from a9b9172 to 5a721da (2 revisions) (flutter/flutter#163848)
2025-02-21 [email protected] Roll Dart SDK from ad642ee6f94b to 7ceb3be8ed0a (2 revisions) (flutter/flutter#163832)
2025-02-21 [email protected] Update how to use VSCode with `clangd` after the monorepo merge (flutter/flutter#163671)
2025-02-21 [email protected] Reland #163711 after #163780 (flutter/flutter#163812)
2025-02-21 [email protected] Fix incorrect function name in FlutterEngineRun documentation (flutter/flutter#163696)
2025-02-21 [email protected] Roll Dart SDK from 557cbf2c7da6 to ad642ee6f94b (5 revisions) (flutter/flutter#163794)
2025-02-21 [email protected] [canvaskit] Use `visualViewport.scale` to determine device pixel ratio. (flutter/flutter#163688)
2025-02-21 [email protected] [DisplayList] Migrate rendering tests and benchmarks to DL geometry (flutter/flutter#163766)
2025-02-21 [email protected] Make `releaseMode` explicit, inform `determineDevDependencies` entirely on the flag (flutter/flutter#163780)
2025-02-21 [email protected] Ensure `exclude_dev_dependencies_test` runs if `flutter_tools` changes. (flutter/flutter#163768)
2025-02-21 [email protected] WebKit should respect TextCapitalization.words (flutter/flutter#161027)
2025-02-21 [email protected] CupertinoSliverNavigationBar.search fidelity updates (flutter/flutter#163089)
2025-02-21 [email protected] feat: Add selectionColor property to selectable text (flutter/flutter#162177)
2025-02-20 [email protected] Restore `linux_android_emulator_tests` to CI. (flutter/flutter#163747)
2025-02-20 [email protected] introduce system color palette (flutter/flutter#163335)
2025-02-20 [email protected] [web] DRY up access to headers required for multi-threaded WebAssembly (flutter/flutter#163555)
2025-02-20 [email protected] fix(CupertinoDatePicker): font is inconsistent (flutter/flutter#162932)
2025-02-20 [email protected] Create Android-API-And-Related-Versions.md (flutter/flutter#163556)
2025-02-20 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Avoid implicitly setting `determineDevDependencies: true` (it's not a safe operation) (#163711)" (flutter/flutter#163762)
2025-02-20 [email protected] Revert "Create g3_bug.yml" (flutter/flutter#163757)
2025-02-20 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Make Flutter version information accessible at runtime (#140783)" (flutter/flutter#163753)
2025-02-20 [email protected] Skip Xcode install on mac_mokey Android tests (flutter/flutter#163685)
2025-02-20 [email protected] Roll Dart SDK from 2cecb16348e4 to 557cbf2c7da6 (3 revisions) (flutter/flutter#163705)
2025-02-20 [email protected] Add `FlutterVersion.engineCommitDate`, helps signal engine artifact SHA issues (flutter/flutter#163652)
2025-02-20 [email protected] Avoid implicitly setting `determineDevDependencies: true` (it's not a safe operation) (flutter/flutter#163711)
2025-02-20 [email protected] It is now safe to call `getBuildMode().release` (flutter/flutter#163712)
2025-02-20 [email protected] [iOS] remove Skia interfaces from iOS platform code. (flutter/flutter#163505)
2025-02-20 [email protected] Make Flutter version information accessible at runtime (flutter/flutter#140783)
2025-02-20 [email protected] [windows] Implement merged UI and platform thread (flutter/flutter#162935)
2025-02-20 [email protected] `CircularProgressIndicator` throws null exception (flutter/flutter#163356)
2025-02-20 [email protected] Fix the issue where DropdownMenu does not gain focus when tapped. (flutter/flutter#162874)
2025-02-20 [email protected] Check for tracked engine.version before overriding (flutter/flutter#163672)
2025-02-20 [email protected] showDialogs adds a `requestFocus` parameter. (flutter/flutter#162928)
2025-02-20 [email protected] Create helper method to dispatch object creation and disposal. (flutter/flutter#163637)
2025-02-20 [email protected] Redistribute iOS TESTOWNERS (flutter/flutter#163653)
2025-02-20 [email protected] enclosingElement -> enclosingElement3 (flutter/flutter#163681)
2025-02-19 [email protected] [ Widget Preview ] Move `preview_detector_test.dart` from `general.shard` to `commands.shard` (flutter/flutter#163619)
2025-02-19 [email protected] [iOS] always post new task during gesture dispatch. (flutter/flutter#163646)
2025-02-19 [email protected] Allow flutter tools to detach a running Chrome session (flutter/flutter#163349)
2025-02-19 [email protected] Reland "[Impeller] add support for rational bezier conics to Path (#63282)" (flutter/flutter#163645)
2025-02-19 [email protected] [web:a11y] wheel events switch to pointer mode (flutter/flutter#163582)
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

a: text input Entering text in a text field or keyboard related problems f: material design flutter/packages/flutter/material repository. framework flutter/packages/flutter repository. See also f: labels. will affect goldens Changes to golden files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SelectableText should have a selectionColor property

5 participants