Showing
5 changed files
with
91 additions
and
82 deletions
| @@ -59,6 +59,7 @@ | @@ -59,6 +59,7 @@ | ||
| 59 | ignoresPersistentStateOnLaunch = "NO" | 59 | ignoresPersistentStateOnLaunch = "NO" |
| 60 | debugDocumentVersioning = "YES" | 60 | debugDocumentVersioning = "YES" |
| 61 | debugServiceExtension = "internal" | 61 | debugServiceExtension = "internal" |
| 62 | + enableGPUValidationMode = "1" | ||
| 62 | allowLocationSimulation = "YES"> | 63 | allowLocationSimulation = "YES"> |
| 63 | <BuildableProductRunnable | 64 | <BuildableProductRunnable |
| 64 | runnableDebuggingMode = "0"> | 65 | runnableDebuggingMode = "0"> |
| @@ -13,42 +13,42 @@ packages: | @@ -13,42 +13,42 @@ packages: | ||
| 13 | dependency: transitive | 13 | dependency: transitive |
| 14 | description: | 14 | description: |
| 15 | name: async | 15 | name: async |
| 16 | - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" | 16 | + sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 |
| 17 | url: "https://pub.dev" | 17 | url: "https://pub.dev" |
| 18 | source: hosted | 18 | source: hosted |
| 19 | - version: "2.11.0" | 19 | + version: "2.12.0" |
| 20 | boolean_selector: | 20 | boolean_selector: |
| 21 | dependency: transitive | 21 | dependency: transitive |
| 22 | description: | 22 | description: |
| 23 | name: boolean_selector | 23 | name: boolean_selector |
| 24 | - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" | 24 | + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" |
| 25 | url: "https://pub.dev" | 25 | url: "https://pub.dev" |
| 26 | source: hosted | 26 | source: hosted |
| 27 | - version: "2.1.1" | 27 | + version: "2.1.2" |
| 28 | characters: | 28 | characters: |
| 29 | dependency: transitive | 29 | dependency: transitive |
| 30 | description: | 30 | description: |
| 31 | name: characters | 31 | name: characters |
| 32 | - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" | 32 | + sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 |
| 33 | url: "https://pub.dev" | 33 | url: "https://pub.dev" |
| 34 | source: hosted | 34 | source: hosted |
| 35 | - version: "1.3.0" | 35 | + version: "1.4.0" |
| 36 | clock: | 36 | clock: |
| 37 | dependency: transitive | 37 | dependency: transitive |
| 38 | description: | 38 | description: |
| 39 | name: clock | 39 | name: clock |
| 40 | - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf | 40 | + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b |
| 41 | url: "https://pub.dev" | 41 | url: "https://pub.dev" |
| 42 | source: hosted | 42 | source: hosted |
| 43 | - version: "1.1.1" | 43 | + version: "1.1.2" |
| 44 | collection: | 44 | collection: |
| 45 | dependency: transitive | 45 | dependency: transitive |
| 46 | description: | 46 | description: |
| 47 | name: collection | 47 | name: collection |
| 48 | - sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf | 48 | + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" |
| 49 | url: "https://pub.dev" | 49 | url: "https://pub.dev" |
| 50 | source: hosted | 50 | source: hosted |
| 51 | - version: "1.19.0" | 51 | + version: "1.19.1" |
| 52 | cross_file: | 52 | cross_file: |
| 53 | dependency: transitive | 53 | dependency: transitive |
| 54 | description: | 54 | description: |
| @@ -77,10 +77,10 @@ packages: | @@ -77,10 +77,10 @@ packages: | ||
| 77 | dependency: transitive | 77 | dependency: transitive |
| 78 | description: | 78 | description: |
| 79 | name: fake_async | 79 | name: fake_async |
| 80 | - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" | 80 | + sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" |
| 81 | url: "https://pub.dev" | 81 | url: "https://pub.dev" |
| 82 | source: hosted | 82 | source: hosted |
| 83 | - version: "1.3.1" | 83 | + version: "1.3.2" |
| 84 | flutter: | 84 | flutter: |
| 85 | dependency: "direct main" | 85 | dependency: "direct main" |
| 86 | description: flutter | 86 | description: flutter |
| @@ -106,10 +106,10 @@ packages: | @@ -106,10 +106,10 @@ packages: | ||
| 106 | dependency: transitive | 106 | dependency: transitive |
| 107 | description: | 107 | description: |
| 108 | name: flutter_svg | 108 | name: flutter_svg |
| 109 | - sha256: "54900a1a1243f3c4a5506d853a2b5c2dbc38d5f27e52a52618a8054401431123" | 109 | + sha256: c200fd79c918a40c5cd50ea0877fa13f81bdaf6f0a5d3dbcc2a13e3285d6aa1b |
| 110 | url: "https://pub.dev" | 110 | url: "https://pub.dev" |
| 111 | source: hosted | 111 | source: hosted |
| 112 | - version: "2.0.16" | 112 | + version: "2.0.17" |
| 113 | flutter_test: | 113 | flutter_test: |
| 114 | dependency: "direct dev" | 114 | dependency: "direct dev" |
| 115 | description: flutter | 115 | description: flutter |
| @@ -126,39 +126,39 @@ packages: | @@ -126,39 +126,39 @@ packages: | ||
| 126 | path: ".." | 126 | path: ".." |
| 127 | relative: true | 127 | relative: true |
| 128 | source: path | 128 | source: path |
| 129 | - version: "1.0.6" | 129 | + version: "1.0.8" |
| 130 | http: | 130 | http: |
| 131 | dependency: transitive | 131 | dependency: transitive |
| 132 | description: | 132 | description: |
| 133 | name: http | 133 | name: http |
| 134 | - sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 | 134 | + sha256: fe7ab022b76f3034adc518fb6ea04a82387620e19977665ea18d30a1cf43442f |
| 135 | url: "https://pub.dev" | 135 | url: "https://pub.dev" |
| 136 | source: hosted | 136 | source: hosted |
| 137 | - version: "1.2.2" | 137 | + version: "1.3.0" |
| 138 | http_parser: | 138 | http_parser: |
| 139 | dependency: transitive | 139 | dependency: transitive |
| 140 | description: | 140 | description: |
| 141 | name: http_parser | 141 | name: http_parser |
| 142 | - sha256: "76d306a1c3afb33fe82e2bbacad62a61f409b5634c915fceb0d799de1a913360" | 142 | + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" |
| 143 | url: "https://pub.dev" | 143 | url: "https://pub.dev" |
| 144 | source: hosted | 144 | source: hosted |
| 145 | - version: "4.1.1" | 145 | + version: "4.1.2" |
| 146 | leak_tracker: | 146 | leak_tracker: |
| 147 | dependency: transitive | 147 | dependency: transitive |
| 148 | description: | 148 | description: |
| 149 | name: leak_tracker | 149 | name: leak_tracker |
| 150 | - sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" | 150 | + sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec |
| 151 | url: "https://pub.dev" | 151 | url: "https://pub.dev" |
| 152 | source: hosted | 152 | source: hosted |
| 153 | - version: "10.0.7" | 153 | + version: "10.0.8" |
| 154 | leak_tracker_flutter_testing: | 154 | leak_tracker_flutter_testing: |
| 155 | dependency: transitive | 155 | dependency: transitive |
| 156 | description: | 156 | description: |
| 157 | name: leak_tracker_flutter_testing | 157 | name: leak_tracker_flutter_testing |
| 158 | - sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" | 158 | + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 |
| 159 | url: "https://pub.dev" | 159 | url: "https://pub.dev" |
| 160 | source: hosted | 160 | source: hosted |
| 161 | - version: "3.0.8" | 161 | + version: "3.0.9" |
| 162 | leak_tracker_testing: | 162 | leak_tracker_testing: |
| 163 | dependency: transitive | 163 | dependency: transitive |
| 164 | description: | 164 | description: |
| @@ -179,10 +179,10 @@ packages: | @@ -179,10 +179,10 @@ packages: | ||
| 179 | dependency: transitive | 179 | dependency: transitive |
| 180 | description: | 180 | description: |
| 181 | name: matcher | 181 | name: matcher |
| 182 | - sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb | 182 | + sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 |
| 183 | url: "https://pub.dev" | 183 | url: "https://pub.dev" |
| 184 | source: hosted | 184 | source: hosted |
| 185 | - version: "0.12.16+1" | 185 | + version: "0.12.17" |
| 186 | material_color_utilities: | 186 | material_color_utilities: |
| 187 | dependency: transitive | 187 | dependency: transitive |
| 188 | description: | 188 | description: |
| @@ -195,10 +195,10 @@ packages: | @@ -195,10 +195,10 @@ packages: | ||
| 195 | dependency: transitive | 195 | dependency: transitive |
| 196 | description: | 196 | description: |
| 197 | name: meta | 197 | name: meta |
| 198 | - sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 | 198 | + sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c |
| 199 | url: "https://pub.dev" | 199 | url: "https://pub.dev" |
| 200 | source: hosted | 200 | source: hosted |
| 201 | - version: "1.15.0" | 201 | + version: "1.16.0" |
| 202 | nested: | 202 | nested: |
| 203 | dependency: transitive | 203 | dependency: transitive |
| 204 | description: | 204 | description: |
| @@ -211,10 +211,10 @@ packages: | @@ -211,10 +211,10 @@ packages: | ||
| 211 | dependency: transitive | 211 | dependency: transitive |
| 212 | description: | 212 | description: |
| 213 | name: path | 213 | name: path |
| 214 | - sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" | 214 | + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" |
| 215 | url: "https://pub.dev" | 215 | url: "https://pub.dev" |
| 216 | source: hosted | 216 | source: hosted |
| 217 | - version: "1.9.0" | 217 | + version: "1.9.1" |
| 218 | path_parsing: | 218 | path_parsing: |
| 219 | dependency: transitive | 219 | dependency: transitive |
| 220 | description: | 220 | description: |
| @@ -227,10 +227,10 @@ packages: | @@ -227,10 +227,10 @@ packages: | ||
| 227 | dependency: transitive | 227 | dependency: transitive |
| 228 | description: | 228 | description: |
| 229 | name: petitparser | 229 | name: petitparser |
| 230 | - sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 | 230 | + sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646" |
| 231 | url: "https://pub.dev" | 231 | url: "https://pub.dev" |
| 232 | source: hosted | 232 | source: hosted |
| 233 | - version: "6.0.2" | 233 | + version: "6.1.0" |
| 234 | provider: | 234 | provider: |
| 235 | dependency: transitive | 235 | dependency: transitive |
| 236 | description: | 236 | description: |
| @@ -248,50 +248,50 @@ packages: | @@ -248,50 +248,50 @@ packages: | ||
| 248 | dependency: transitive | 248 | dependency: transitive |
| 249 | description: | 249 | description: |
| 250 | name: source_span | 250 | name: source_span |
| 251 | - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" | 251 | + sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" |
| 252 | url: "https://pub.dev" | 252 | url: "https://pub.dev" |
| 253 | source: hosted | 253 | source: hosted |
| 254 | - version: "1.10.0" | 254 | + version: "1.10.1" |
| 255 | stack_trace: | 255 | stack_trace: |
| 256 | dependency: transitive | 256 | dependency: transitive |
| 257 | description: | 257 | description: |
| 258 | name: stack_trace | 258 | name: stack_trace |
| 259 | - sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" | 259 | + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" |
| 260 | url: "https://pub.dev" | 260 | url: "https://pub.dev" |
| 261 | source: hosted | 261 | source: hosted |
| 262 | - version: "1.12.0" | 262 | + version: "1.12.1" |
| 263 | stream_channel: | 263 | stream_channel: |
| 264 | dependency: transitive | 264 | dependency: transitive |
| 265 | description: | 265 | description: |
| 266 | name: stream_channel | 266 | name: stream_channel |
| 267 | - sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 | 267 | + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" |
| 268 | url: "https://pub.dev" | 268 | url: "https://pub.dev" |
| 269 | source: hosted | 269 | source: hosted |
| 270 | - version: "2.1.2" | 270 | + version: "2.1.4" |
| 271 | string_scanner: | 271 | string_scanner: |
| 272 | dependency: transitive | 272 | dependency: transitive |
| 273 | description: | 273 | description: |
| 274 | name: string_scanner | 274 | name: string_scanner |
| 275 | - sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" | 275 | + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" |
| 276 | url: "https://pub.dev" | 276 | url: "https://pub.dev" |
| 277 | source: hosted | 277 | source: hosted |
| 278 | - version: "1.3.0" | 278 | + version: "1.4.1" |
| 279 | term_glyph: | 279 | term_glyph: |
| 280 | dependency: transitive | 280 | dependency: transitive |
| 281 | description: | 281 | description: |
| 282 | name: term_glyph | 282 | name: term_glyph |
| 283 | - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 | 283 | + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" |
| 284 | url: "https://pub.dev" | 284 | url: "https://pub.dev" |
| 285 | source: hosted | 285 | source: hosted |
| 286 | - version: "1.2.1" | 286 | + version: "1.2.2" |
| 287 | test_api: | 287 | test_api: |
| 288 | dependency: transitive | 288 | dependency: transitive |
| 289 | description: | 289 | description: |
| 290 | name: test_api | 290 | name: test_api |
| 291 | - sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" | 291 | + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd |
| 292 | url: "https://pub.dev" | 292 | url: "https://pub.dev" |
| 293 | source: hosted | 293 | source: hosted |
| 294 | - version: "0.7.3" | 294 | + version: "0.7.4" |
| 295 | tuple: | 295 | tuple: |
| 296 | dependency: transitive | 296 | dependency: transitive |
| 297 | description: | 297 | description: |
| @@ -312,18 +312,18 @@ packages: | @@ -312,18 +312,18 @@ packages: | ||
| 312 | dependency: transitive | 312 | dependency: transitive |
| 313 | description: | 313 | description: |
| 314 | name: vector_graphics | 314 | name: vector_graphics |
| 315 | - sha256: "27d5fefe86fb9aace4a9f8375b56b3c292b64d8c04510df230f849850d912cb7" | 315 | + sha256: "44cc7104ff32563122a929e4620cf3efd584194eec6d1d913eb5ba593dbcf6de" |
| 316 | url: "https://pub.dev" | 316 | url: "https://pub.dev" |
| 317 | source: hosted | 317 | source: hosted |
| 318 | - version: "1.1.15" | 318 | + version: "1.1.18" |
| 319 | vector_graphics_codec: | 319 | vector_graphics_codec: |
| 320 | dependency: transitive | 320 | dependency: transitive |
| 321 | description: | 321 | description: |
| 322 | name: vector_graphics_codec | 322 | name: vector_graphics_codec |
| 323 | - sha256: "2430b973a4ca3c4dbc9999b62b8c719a160100dcbae5c819bae0cacce32c9cdb" | 323 | + sha256: "99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146" |
| 324 | url: "https://pub.dev" | 324 | url: "https://pub.dev" |
| 325 | source: hosted | 325 | source: hosted |
| 326 | - version: "1.1.12" | 326 | + version: "1.1.13" |
| 327 | vector_graphics_compiler: | 327 | vector_graphics_compiler: |
| 328 | dependency: transitive | 328 | dependency: transitive |
| 329 | description: | 329 | description: |
| @@ -344,10 +344,10 @@ packages: | @@ -344,10 +344,10 @@ packages: | ||
| 344 | dependency: transitive | 344 | dependency: transitive |
| 345 | description: | 345 | description: |
| 346 | name: vm_service | 346 | name: vm_service |
| 347 | - sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b | 347 | + sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" |
| 348 | url: "https://pub.dev" | 348 | url: "https://pub.dev" |
| 349 | source: hosted | 349 | source: hosted |
| 350 | - version: "14.3.0" | 350 | + version: "14.3.1" |
| 351 | watcher: | 351 | watcher: |
| 352 | dependency: "direct main" | 352 | dependency: "direct main" |
| 353 | description: | 353 | description: |
| @@ -373,5 +373,5 @@ packages: | @@ -373,5 +373,5 @@ packages: | ||
| 373 | source: hosted | 373 | source: hosted |
| 374 | version: "6.5.0" | 374 | version: "6.5.0" |
| 375 | sdks: | 375 | sdks: |
| 376 | - dart: ">=3.5.0 <4.0.0" | 376 | + dart: ">=3.7.0-0 <4.0.0" |
| 377 | flutter: ">=3.22.0" | 377 | flutter: ">=3.22.0" |
| @@ -3,7 +3,7 @@ import 'package:flutter/rendering.dart'; | @@ -3,7 +3,7 @@ import 'package:flutter/rendering.dart'; | ||
| 3 | 3 | ||
| 4 | class SelectableAdapter extends StatelessWidget { | 4 | class SelectableAdapter extends StatelessWidget { |
| 5 | const SelectableAdapter( | 5 | const SelectableAdapter( |
| 6 | - {super.key, required this.selectedText, required this.child}); | 6 | + {super.key, required this.child, required this.selectedText}); |
| 7 | 7 | ||
| 8 | final Widget child; | 8 | final Widget child; |
| 9 | final String selectedText; | 9 | final String selectedText; |
| @@ -17,31 +17,26 @@ class SelectableAdapter extends StatelessWidget { | @@ -17,31 +17,26 @@ class SelectableAdapter extends StatelessWidget { | ||
| 17 | return MouseRegion( | 17 | return MouseRegion( |
| 18 | cursor: SystemMouseCursors.text, | 18 | cursor: SystemMouseCursors.text, |
| 19 | child: _SelectableAdapter( | 19 | child: _SelectableAdapter( |
| 20 | - registrar: registrar, | ||
| 21 | - selectedText: selectedText, | ||
| 22 | - child: child, | ||
| 23 | - ), | 20 | + registrar: registrar, selectedText: selectedText, child: child), |
| 24 | ); | 21 | ); |
| 25 | } | 22 | } |
| 26 | } | 23 | } |
| 27 | 24 | ||
| 28 | class _SelectableAdapter extends SingleChildRenderObjectWidget { | 25 | class _SelectableAdapter extends SingleChildRenderObjectWidget { |
| 29 | - const _SelectableAdapter({ | ||
| 30 | - required this.registrar, | 26 | + const _SelectableAdapter( |
| 27 | + {required this.registrar, | ||
| 31 | required Widget child, | 28 | required Widget child, |
| 32 | - required this.selectedText, | ||
| 33 | - }) : super(child: child); | 29 | + required this.selectedText}) |
| 30 | + : super(child: child); | ||
| 34 | 31 | ||
| 35 | final SelectionRegistrar registrar; | 32 | final SelectionRegistrar registrar; |
| 36 | final String selectedText; | 33 | final String selectedText; |
| 37 | - | ||
| 38 | @override | 34 | @override |
| 39 | _RenderSelectableAdapter createRenderObject(BuildContext context) { | 35 | _RenderSelectableAdapter createRenderObject(BuildContext context) { |
| 40 | return _RenderSelectableAdapter( | 36 | return _RenderSelectableAdapter( |
| 41 | DefaultSelectionStyle.of(context).selectionColor!, | 37 | DefaultSelectionStyle.of(context).selectionColor!, |
| 42 | - selectedText, | ||
| 43 | registrar, | 38 | registrar, |
| 44 | - ); | 39 | + selectedText); |
| 45 | } | 40 | } |
| 46 | 41 | ||
| 47 | @override | 42 | @override |
| @@ -55,23 +50,23 @@ class _SelectableAdapter extends SingleChildRenderObjectWidget { | @@ -55,23 +50,23 @@ class _SelectableAdapter extends SingleChildRenderObjectWidget { | ||
| 55 | 50 | ||
| 56 | class _RenderSelectableAdapter extends RenderProxyBox | 51 | class _RenderSelectableAdapter extends RenderProxyBox |
| 57 | with Selectable, SelectionRegistrant { | 52 | with Selectable, SelectionRegistrant { |
| 58 | - String selectionText; | ||
| 59 | _RenderSelectableAdapter( | 53 | _RenderSelectableAdapter( |
| 60 | - Color selectionColor, | ||
| 61 | - this.selectionText, | ||
| 62 | - SelectionRegistrar registrar, | ||
| 63 | - ) : _selectionColor = selectionColor, | 54 | + Color selectionColor, SelectionRegistrar registrar, this.selectedText) |
| 55 | + : _selectionColor = selectionColor, | ||
| 64 | _geometry = ValueNotifier<SelectionGeometry>(_noSelection) { | 56 | _geometry = ValueNotifier<SelectionGeometry>(_noSelection) { |
| 65 | this.registrar = registrar; | 57 | this.registrar = registrar; |
| 66 | _geometry.addListener(markNeedsPaint); | 58 | _geometry.addListener(markNeedsPaint); |
| 67 | } | 59 | } |
| 68 | 60 | ||
| 69 | - static const SelectionGeometry _noSelection = | ||
| 70 | - SelectionGeometry(status: SelectionStatus.none, hasContent: true); | ||
| 71 | - final ValueNotifier<SelectionGeometry> _geometry; | 61 | + final String selectedText; |
| 72 | 62 | ||
| 63 | + static const SelectionGeometry _noSelection = SelectionGeometry( | ||
| 64 | + status: SelectionStatus.none, | ||
| 65 | + hasContent: true, | ||
| 66 | + ); | ||
| 67 | + final ValueNotifier<SelectionGeometry> _geometry; | ||
| 73 | Color get selectionColor => _selectionColor; | 68 | Color get selectionColor => _selectionColor; |
| 74 | - late Color _selectionColor; | 69 | + Color _selectionColor; |
| 75 | set selectionColor(Color value) { | 70 | set selectionColor(Color value) { |
| 76 | if (_selectionColor == value) { | 71 | if (_selectionColor == value) { |
| 77 | return; | 72 | return; |
| @@ -100,8 +95,12 @@ class _RenderSelectableAdapter extends RenderProxyBox | @@ -100,8 +95,12 @@ class _RenderSelectableAdapter extends RenderProxyBox | ||
| 100 | // Adjust this value to enlarge or shrink the selection highlight. | 95 | // Adjust this value to enlarge or shrink the selection highlight. |
| 101 | static const double _padding = 0.0; | 96 | static const double _padding = 0.0; |
| 102 | Rect _getSelectionHighlightRect() { | 97 | Rect _getSelectionHighlightRect() { |
| 103 | - return Rect.fromLTWH(0 - _padding, 0 - _padding, size.width + _padding * 2, | ||
| 104 | - size.height + _padding * 2); | 98 | + return Rect.fromLTWH( |
| 99 | + 0 - _padding, | ||
| 100 | + 0 - _padding, | ||
| 101 | + size.width + _padding * 2, | ||
| 102 | + size.height + _padding * 2, | ||
| 103 | + ); | ||
| 105 | } | 104 | } |
| 106 | 105 | ||
| 107 | Offset? _start; | 106 | Offset? _start; |
| @@ -263,10 +262,19 @@ class _RenderSelectableAdapter extends RenderProxyBox | @@ -263,10 +262,19 @@ class _RenderSelectableAdapter extends RenderProxyBox | ||
| 263 | // widget into clipboard. | 262 | // widget into clipboard. |
| 264 | @override | 263 | @override |
| 265 | SelectedContent? getSelectedContent() { | 264 | SelectedContent? getSelectedContent() { |
| 266 | - return value.hasSelection | ||
| 267 | - ? SelectedContent(plainText: selectionText) | ||
| 268 | - : null; | 265 | + return value.hasSelection ? SelectedContent(plainText: selectedText) : null; |
| 266 | + } | ||
| 267 | + | ||
| 268 | + @override | ||
| 269 | + SelectedContentRange? getSelection() { | ||
| 270 | + if (!value.hasSelection) { | ||
| 271 | + return null; | ||
| 269 | } | 272 | } |
| 273 | + return const SelectedContentRange(startOffset: 0, endOffset: 1); | ||
| 274 | + } | ||
| 275 | + | ||
| 276 | + @override | ||
| 277 | + int get contentLength => 1; | ||
| 270 | 278 | ||
| 271 | LayerLink? _startHandle; | 279 | LayerLink? _startHandle; |
| 272 | LayerLink? _endHandle; | 280 | LayerLink? _endHandle; |
| @@ -299,8 +307,7 @@ class _RenderSelectableAdapter extends RenderProxyBox | @@ -299,8 +307,7 @@ class _RenderSelectableAdapter extends RenderProxyBox | ||
| 299 | context.pushLayer( | 307 | context.pushLayer( |
| 300 | LeaderLayer( | 308 | LeaderLayer( |
| 301 | link: _startHandle!, | 309 | link: _startHandle!, |
| 302 | - offset: offset + value.startSelectionPoint!.localPosition, | ||
| 303 | - ), | 310 | + offset: offset + value.startSelectionPoint!.localPosition), |
| 304 | (PaintingContext context, Offset offset) {}, | 311 | (PaintingContext context, Offset offset) {}, |
| 305 | Offset.zero, | 312 | Offset.zero, |
| 306 | ); | 313 | ); |
| @@ -309,8 +316,7 @@ class _RenderSelectableAdapter extends RenderProxyBox | @@ -309,8 +316,7 @@ class _RenderSelectableAdapter extends RenderProxyBox | ||
| 309 | context.pushLayer( | 316 | context.pushLayer( |
| 310 | LeaderLayer( | 317 | LeaderLayer( |
| 311 | link: _endHandle!, | 318 | link: _endHandle!, |
| 312 | - offset: offset + value.endSelectionPoint!.localPosition, | ||
| 313 | - ), | 319 | + offset: offset + value.endSelectionPoint!.localPosition), |
| 314 | (PaintingContext context, Offset offset) {}, | 320 | (PaintingContext context, Offset offset) {}, |
| 315 | Offset.zero, | 321 | Offset.zero, |
| 316 | ); | 322 | ); |
| @@ -320,6 +326,8 @@ class _RenderSelectableAdapter extends RenderProxyBox | @@ -320,6 +326,8 @@ class _RenderSelectableAdapter extends RenderProxyBox | ||
| 320 | @override | 326 | @override |
| 321 | void dispose() { | 327 | void dispose() { |
| 322 | _geometry.dispose(); | 328 | _geometry.dispose(); |
| 329 | + _startHandle = null; | ||
| 330 | + _endHandle = null; | ||
| 323 | super.dispose(); | 331 | super.dispose(); |
| 324 | } | 332 | } |
| 325 | } | 333 | } |
| @@ -342,7 +342,7 @@ class IndentMd extends InlineMd { | @@ -342,7 +342,7 @@ class IndentMd extends InlineMd { | ||
| 342 | direction: config.textDirection, | 342 | direction: config.textDirection, |
| 343 | child: Padding( | 343 | child: Padding( |
| 344 | padding: const EdgeInsetsDirectional.only(start: 10.0), | 344 | padding: const EdgeInsetsDirectional.only(start: 10.0), |
| 345 | - child: Expanded(child: config.getRich(child)), | 345 | + child: config.getRich(child), |
| 346 | ), | 346 | ), |
| 347 | ), | 347 | ), |
| 348 | ), | 348 | ), |
-
Please register or login to post a comment