Showing
5 changed files
with
96 additions
and
87 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, | ||
31 | - required Widget child, | ||
32 | - required this.selectedText, | ||
33 | - }) : super(child: child); | 26 | + const _SelectableAdapter( |
27 | + {required this.registrar, | ||
28 | + required Widget 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!, | ||
42 | - selectedText, | ||
43 | - registrar, | ||
44 | - ); | 37 | + DefaultSelectionStyle.of(context).selectionColor!, |
38 | + registrar, | ||
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,11 +262,20 @@ class _RenderSelectableAdapter extends RenderProxyBox | @@ -263,11 +262,20 @@ 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; |
269 | } | 266 | } |
270 | 267 | ||
268 | + @override | ||
269 | + SelectedContentRange? getSelection() { | ||
270 | + if (!value.hasSelection) { | ||
271 | + return null; | ||
272 | + } | ||
273 | + return const SelectedContentRange(startOffset: 0, endOffset: 1); | ||
274 | + } | ||
275 | + | ||
276 | + @override | ||
277 | + int get contentLength => 1; | ||
278 | + | ||
271 | LayerLink? _startHandle; | 279 | LayerLink? _startHandle; |
272 | LayerLink? _endHandle; | 280 | LayerLink? _endHandle; |
273 | 281 | ||
@@ -298,9 +306,8 @@ class _RenderSelectableAdapter extends RenderProxyBox | @@ -298,9 +306,8 @@ class _RenderSelectableAdapter extends RenderProxyBox | ||
298 | if (_startHandle != null) { | 306 | if (_startHandle != null) { |
299 | context.pushLayer( | 307 | context.pushLayer( |
300 | LeaderLayer( | 308 | LeaderLayer( |
301 | - link: _startHandle!, | ||
302 | - offset: offset + value.startSelectionPoint!.localPosition, | ||
303 | - ), | 309 | + link: _startHandle!, |
310 | + offset: offset + value.startSelectionPoint!.localPosition), | ||
304 | (PaintingContext context, Offset offset) {}, | 311 | (PaintingContext context, Offset offset) {}, |
305 | Offset.zero, | 312 | Offset.zero, |
306 | ); | 313 | ); |
@@ -308,9 +315,8 @@ class _RenderSelectableAdapter extends RenderProxyBox | @@ -308,9 +315,8 @@ class _RenderSelectableAdapter extends RenderProxyBox | ||
308 | if (_endHandle != null) { | 315 | if (_endHandle != null) { |
309 | context.pushLayer( | 316 | context.pushLayer( |
310 | LeaderLayer( | 317 | LeaderLayer( |
311 | - link: _endHandle!, | ||
312 | - offset: offset + value.endSelectionPoint!.localPosition, | ||
313 | - ), | 318 | + link: _endHandle!, |
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