Skip to content

Commit f6fc61f

Browse files
committed
Fix tapback focus not toggling reliably on subsequent uses
Explicitly set tapbackFocused = false before re-focusing with a brief delay so SwiftUI processes the state change. Prevents the onChange from being silently skipped when the focus state was stale.
1 parent 7ddb512 commit f6fc61f

3 files changed

Lines changed: 151 additions & 145 deletions

File tree

Meshtastic/Resources/images/image_manifest.json

Lines changed: 129 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -1,211 +1,211 @@
11
{
22
"files": {
3-
"pico.svg": {
4-
"etag": "\"25eaff431def69b7bf838a2e312c1032\""
5-
},
6-
"tdeck_pro.svg": {
7-
"etag": "\"b55287ed57a297631de99e024c8e4ab2\""
3+
"wio_tracker_l1_eink.svg": {
4+
"etag": "\"87446ec40a3c65f81a28e5c3309f4067\""
85
},
9-
"wio_tracker_l1_case.svg": {
10-
"etag": "\"0b7c6f0940dc247e407937a81525e5cf\""
6+
"heltec-v3.svg": {
7+
"etag": "\"98fd45f8aed4f3cf9c59037755309362\""
118
},
129
"t-echo_plus.svg": {
1310
"etag": "\"62d23557949092b77fd24a94abe16678\""
1411
},
15-
"thinknode_m4.svg": {
16-
"etag": "\"9e9d7390e3ee50ef5fbb0e9670252ec3\""
12+
"heltec-mesh-solar.svg": {
13+
"etag": "\"80ee3e192cc4aeb6f6ec4bf54deebbce\""
1714
},
18-
"heltec-vision-master-t190.svg": {
19-
"etag": "\"9b85f16d85e5589816d45f1b865f7132\""
15+
"crowpanel_7_0.svg": {
16+
"etag": "\"d41e7b3abca1955c6e7038517a0d9623\""
2017
},
21-
"wio-tracker-wm1110.svg": {
22-
"etag": "\"97e3dea651a4f60f08ded179035ac8dd\""
18+
"crowpanel_3_5.svg": {
19+
"etag": "\"59675dc1a08a4c485becd29a3e8d9db8\""
2320
},
24-
"heltec-v3.svg": {
25-
"etag": "\"98fd45f8aed4f3cf9c59037755309362\""
21+
"heltec-v3-case.svg": {
22+
"etag": "\"5319a951380495a93daab78d33ebc9a1\""
2623
},
27-
"diy.svg": {
28-
"etag": "\"c06a4d66579f4c69c5f362918cd36da5\""
24+
"rak11200.svg": {
25+
"etag": "\"7d2051c84c073becece5a6fada9a4cfc\""
2926
},
30-
"seeed_solar.svg": {
31-
"etag": "\"1b517a452f66e0e5b1b7323dfce89fbc\""
27+
"heltec-vision-master-e290.svg": {
28+
"etag": "\"50a5e52466ea3a5ef3ff6c87ff6b5b24\""
3229
},
33-
"tbeam-s3-core.svg": {
34-
"etag": "\"d233dcce52944ab5fb01410c5d58a4ae\""
30+
"thinknode_m1.svg": {
31+
"etag": "\"4f1ffbb8c2cbd39ef57660a2b227003e\""
3532
},
36-
"heltec_mesh_pocket.svg": {
37-
"etag": "\"4a7af4be3e7a829cd83017f05fa11f9a\""
33+
"heltec-wsl-v3.svg": {
34+
"etag": "\"676b33b3d89eb109f5ff984db6041605\""
3835
},
39-
"heltec-vision-master-e213.svg": {
40-
"etag": "\"48c2615afa32e5236ded7dea74aa0a66\""
36+
"rpipicow.svg": {
37+
"etag": "\"63d5265a14db854a409aa8d2c02b6df7\""
4138
},
42-
"seeed-sensecap-indicator.svg": {
43-
"etag": "\"26a69d9484d3c5f39c96e8c6081f1829\""
39+
"rak11310.svg": {
40+
"etag": "\"ddbea703ff2b2481a46c1b56ebbd0b44\""
4441
},
45-
"thinknode_m3.svg": {
46-
"etag": "\"85966b6aae7d961c9b390f2a4d1e8b0c\""
42+
"crowpanel_2_8.svg": {
43+
"etag": "\"78955180f4e0b1a4bfc1efe8d6b953ad\""
4744
},
48-
"m5_c6l.svg": {
49-
"etag": "\"e84fff6641461d595b2f180ddeaeeaa6\""
45+
"heltec-vision-master-t190.svg": {
46+
"etag": "\"9b85f16d85e5589816d45f1b865f7132\""
5047
},
51-
"meteor_pro.svg": {
52-
"etag": "\"db5044328b825421851b963479fab9ca\""
48+
"tbeam-1w.svg": {
49+
"etag": "\"ffb9d18fb8c98f231a610c58a1d1e865\""
5350
},
5451
"heltec-mesh-node-t114.svg": {
5552
"etag": "\"5a183e933a9886ed38b258c7923b3105\""
5653
},
57-
"seeed-xiao-s3.svg": {
58-
"etag": "\"6475faad5c2459af8d133bf4956e8ba4\""
59-
},
60-
"crowpanel_7_0.svg": {
61-
"etag": "\"d41e7b3abca1955c6e7038517a0d9623\""
62-
},
63-
"rak-wismeshtap.svg": {
64-
"etag": "\"d808e95fe31048bdfc3fbb0b574c9dc6\""
54+
"rak3401.svg": {
55+
"etag": "\"d05f088f4b14eb7235678c5d84c1dde8\""
6556
},
66-
"tbeam.svg": {
67-
"etag": "\"df4f996aed77c59eb57d1ae0edeed549\""
57+
"nano-g2-ultra.svg": {
58+
"etag": "\"c655b6154835204b5b60e947c64a3c43\""
6859
},
6960
"tracker-t1000-e.svg": {
7061
"etag": "\"f04f6744865fcc7aab2527b2eb31d57c\""
7162
},
72-
"tbeam-1w.svg": {
73-
"etag": "\"ffb9d18fb8c98f231a610c58a1d1e865\""
63+
"seeed_solar.svg": {
64+
"etag": "\"1b517a452f66e0e5b1b7323dfce89fbc\""
7465
},
75-
"heltec_v4.svg": {
76-
"etag": "\"57666cd119ac01e74716bef5f785e2df\""
66+
"heltec-vision-master-e213.svg": {
67+
"etag": "\"48c2615afa32e5236ded7dea74aa0a66\""
7768
},
78-
"heltec-ht62-esp32c3-sx1262.svg": {
79-
"etag": "\"e71d389dc4571952283b1d2e69f1fc54\""
69+
"tlora-t3s3-v1.svg": {
70+
"etag": "\"bbf44e526676ad298698d1387af57c15\""
8071
},
81-
"lilygo-tlora-pager.svg": {
82-
"etag": "\"ea8a22cd8e3436caebd4cc1ea981d6d6\""
72+
"tlora-v2-1-1_6.svg": {
73+
"etag": "\"31b910b6a06249a6850cd2485617fb1a\""
8374
},
84-
"heltec-mesh-solar.svg": {
85-
"etag": "\"80ee3e192cc4aeb6f6ec4bf54deebbce\""
75+
"rak2560.svg": {
76+
"etag": "\"e425adc49058399a2a7f8517093192f0\""
8677
},
87-
"crowpanel_2_8.svg": {
88-
"etag": "\"78955180f4e0b1a4bfc1efe8d6b953ad\""
78+
"thinknode_m6.svg": {
79+
"etag": "\"d2cc380005e0d8ea839cc32104b14813\""
8980
},
90-
"crowpanel_5_0.svg": {
91-
"etag": "\"9e4795bf9f644fc071d78f291f6ff510\""
81+
"muzi_base.svg": {
82+
"etag": "\"be887c289c63af434835279b75f0879e\""
9283
},
93-
"crowpanel_3_5.svg": {
94-
"etag": "\"59675dc1a08a4c485becd29a3e8d9db8\""
84+
"lilygo-tlora-pager.svg": {
85+
"etag": "\"ea8a22cd8e3436caebd4cc1ea981d6d6\""
9586
},
96-
"t5s3_epaper.svg": {
97-
"etag": "\"423640c486cc7c4480f194bc02481ea5\""
87+
"meteor_pro.svg": {
88+
"etag": "\"db5044328b825421851b963479fab9ca\""
89+
},
90+
"rak4631.svg": {
91+
"etag": "\"cd9d48fd9e38ccb769268681547339e8\""
92+
},
93+
"seeed_xiao_nrf52_kit.svg": {
94+
"etag": "\"c73c0f939e9f6ad244a36d4a3e3da289\""
9895
},
9996
"m5stack_cardputer.svg": {
10097
"etag": "\"3b483e95371895fbaf5d22a289a9a48e\""
10198
},
102-
"heltec-mesh-node-t114-case.svg": {
103-
"etag": "\"3d7eae010a7cd6fdd25e83c6abfec91c\""
99+
"wio-tracker-wm1110.svg": {
100+
"etag": "\"97e3dea651a4f60f08ded179035ac8dd\""
104101
},
105-
"t-watch-s3.svg": {
106-
"etag": "\"b2c26bdc010a6f78855a1fb1905c9397\""
102+
"techo_lite.svg": {
103+
"etag": "\"c8218fb723d7e92b71cf38c17b1118c8\""
107104
},
108-
"crowpanel_2_4.svg": {
109-
"etag": "\"29194e5a415e5aee034b2d4a3ba2e398\""
105+
"thinknode_m2.svg": {
106+
"etag": "\"fa007f18567fb18c9d137dae88350a4a\""
110107
},
111-
"thinknode_m1.svg": {
112-
"etag": "\"4f1ffbb8c2cbd39ef57660a2b227003e\""
108+
"rak_wismesh_tag.svg": {
109+
"etag": "\"d0fe0072bdfd0c3671ed8be8339708fa\""
113110
},
114-
"techo_lite.svg": {
115-
"etag": "\"c8218fb723d7e92b71cf38c17b1118c8\""
111+
"heltec_v4.svg": {
112+
"etag": "\"57666cd119ac01e74716bef5f785e2df\""
116113
},
117-
"rak_3312.svg": {
118-
"etag": "\"8db94664189df83d099b726cd21045b4\""
114+
"t-watch-s3.svg": {
115+
"etag": "\"b2c26bdc010a6f78855a1fb1905c9397\""
119116
},
120-
"heltec-wireless-paper.svg": {
121-
"etag": "\"09dff671cae6a64033c5160c62b1a6cb\""
117+
"tdeck_pro.svg": {
118+
"etag": "\"b55287ed57a297631de99e024c8e4ab2\""
122119
},
123-
"heltec-vision-master-e290.svg": {
124-
"etag": "\"50a5e52466ea3a5ef3ff6c87ff6b5b24\""
120+
"tbeam.svg": {
121+
"etag": "\"df4f996aed77c59eb57d1ae0edeed549\""
125122
},
126123
"station-g2.svg": {
127124
"etag": "\"5527898bfd96b94c05251f8c8876dbec\""
128125
},
126+
"rak_3312.svg": {
127+
"etag": "\"8db94664189df83d099b726cd21045b4\""
128+
},
129+
"tlora-v2-1-1_8.svg": {
130+
"etag": "\"31b910b6a06249a6850cd2485617fb1a\""
131+
},
129132
"heltec-wireless-tracker.svg": {
130133
"etag": "\"cc8148848b4097c555396bb0794a2cd2\""
131134
},
132-
"rpipicow.svg": {
133-
"etag": "\"63d5265a14db854a409aa8d2c02b6df7\""
135+
"rak-wismesh-tap-v2.svg": {
136+
"etag": "\"0f5bdd7e2d770dc19fe6caa64051f9d6\""
134137
},
135-
"tlora-t3s3-v1.svg": {
136-
"etag": "\"bbf44e526676ad298698d1387af57c15\""
138+
"thinknode_m4.svg": {
139+
"etag": "\"9e9d7390e3ee50ef5fbb0e9670252ec3\""
137140
},
138-
"thinknode_m6.svg": {
139-
"etag": "\"d2cc380005e0d8ea839cc32104b14813\""
141+
"t-deck.svg": {
142+
"etag": "\"8b10a3d59ee362ea0190b6612c9e695e\""
140143
},
141-
"t-echo.svg": {
142-
"etag": "\"aaa20e725876f408d28ba4dd1c632ebc\""
144+
"heltec-wireless-paper.svg": {
145+
"etag": "\"09dff671cae6a64033c5160c62b1a6cb\""
143146
},
144-
"rak_wismesh_tag.svg": {
145-
"etag": "\"d0fe0072bdfd0c3671ed8be8339708fa\""
147+
"wio_tracker_l1_case.svg": {
148+
"etag": "\"0b7c6f0940dc247e407937a81525e5cf\""
146149
},
147-
"rak4631.svg": {
148-
"etag": "\"cd9d48fd9e38ccb769268681547339e8\""
150+
"promicro.svg": {
151+
"etag": "\"c54c8757f3c95185d2243fdf3da84992\""
149152
},
150-
"rak-wismesh-tap-v2.svg": {
151-
"etag": "\"0f5bdd7e2d770dc19fe6caa64051f9d6\""
153+
"seeed-xiao-s3.svg": {
154+
"etag": "\"6475faad5c2459af8d133bf4956e8ba4\""
152155
},
153-
"seeed_xiao_nrf52_kit.svg": {
154-
"etag": "\"c73c0f939e9f6ad244a36d4a3e3da289\""
156+
"heltec-ht62-esp32c3-sx1262.svg": {
157+
"etag": "\"e71d389dc4571952283b1d2e69f1fc54\""
155158
},
156-
"muzi_base.svg": {
157-
"etag": "\"be887c289c63af434835279b75f0879e\""
159+
"t-echo.svg": {
160+
"etag": "\"aaa20e725876f408d28ba4dd1c632ebc\""
158161
},
159-
"heltec-wsl-v3.svg": {
160-
"etag": "\"676b33b3d89eb109f5ff984db6041605\""
162+
"thinknode_m3.svg": {
163+
"etag": "\"85966b6aae7d961c9b390f2a4d1e8b0c\""
161164
},
162-
"thinknode_m2.svg": {
163-
"etag": "\"fa007f18567fb18c9d137dae88350a4a\""
165+
"pico.svg": {
166+
"etag": "\"25eaff431def69b7bf838a2e312c1032\""
164167
},
165-
"heltec-v3-case.svg": {
166-
"etag": "\"5319a951380495a93daab78d33ebc9a1\""
168+
"tlora-t3s3-epaper.svg": {
169+
"etag": "\"7aa92389d32074449bf4ce92b8ea5fad\""
167170
},
168-
"rak11200.svg": {
169-
"etag": "\"7d2051c84c073becece5a6fada9a4cfc\""
171+
"crowpanel_5_0.svg": {
172+
"etag": "\"9e4795bf9f644fc071d78f291f6ff510\""
170173
},
171-
"tlora-v2-1-1_8.svg": {
172-
"etag": "\"31b910b6a06249a6850cd2485617fb1a\""
174+
"m5_c6l.svg": {
175+
"etag": "\"e84fff6641461d595b2f180ddeaeeaa6\""
176+
},
177+
"t5s3_epaper.svg": {
178+
"etag": "\"423640c486cc7c4480f194bc02481ea5\""
173179
},
174180
"rak4631_case.svg": {
175181
"etag": "\"fdb5ee0ba5fb97d3f2c45ebec1629af2\""
176182
},
177-
"nano-g2-ultra.svg": {
178-
"etag": "\"c655b6154835204b5b60e947c64a3c43\""
179-
},
180-
"rak3401.svg": {
181-
"etag": "\"d05f088f4b14eb7235678c5d84c1dde8\""
182-
},
183-
"promicro.svg": {
184-
"etag": "\"c54c8757f3c95185d2243fdf3da84992\""
183+
"heltec_wireless_tracker_v2.svg": {
184+
"etag": "\"7a6b4a5c152ec91cc9f746da978bdfbc\""
185185
},
186-
"wio_tracker_l1_eink.svg": {
187-
"etag": "\"87446ec40a3c65f81a28e5c3309f4067\""
186+
"tbeam-s3-core.svg": {
187+
"etag": "\"d233dcce52944ab5fb01410c5d58a4ae\""
188188
},
189-
"tlora-t3s3-epaper.svg": {
190-
"etag": "\"7aa92389d32074449bf4ce92b8ea5fad\""
189+
"heltec-mesh-node-t114-case.svg": {
190+
"etag": "\"3d7eae010a7cd6fdd25e83c6abfec91c\""
191191
},
192-
"rak2560.svg": {
193-
"etag": "\"e425adc49058399a2a7f8517093192f0\""
192+
"heltec_mesh_pocket.svg": {
193+
"etag": "\"4a7af4be3e7a829cd83017f05fa11f9a\""
194194
},
195-
"muzi_r1_neo.svg": {
196-
"etag": "\"bb4bbf8fb998eb671d61c5a7796581ba\""
195+
"rak-wismeshtap.svg": {
196+
"etag": "\"d808e95fe31048bdfc3fbb0b574c9dc6\""
197197
},
198-
"t-deck.svg": {
199-
"etag": "\"8b10a3d59ee362ea0190b6612c9e695e\""
198+
"crowpanel_2_4.svg": {
199+
"etag": "\"29194e5a415e5aee034b2d4a3ba2e398\""
200200
},
201-
"rak11310.svg": {
202-
"etag": "\"ddbea703ff2b2481a46c1b56ebbd0b44\""
201+
"seeed-sensecap-indicator.svg": {
202+
"etag": "\"26a69d9484d3c5f39c96e8c6081f1829\""
203203
},
204-
"tlora-v2-1-1_6.svg": {
205-
"etag": "\"31b910b6a06249a6850cd2485617fb1a\""
204+
"diy.svg": {
205+
"etag": "\"c06a4d66579f4c69c5f362918cd36da5\""
206206
},
207-
"heltec_wireless_tracker_v2.svg": {
208-
"etag": "\"7a6b4a5c152ec91cc9f746da978bdfbc\""
207+
"muzi_r1_neo.svg": {
208+
"etag": "\"bb4bbf8fb998eb671d61c5a7796581ba\""
209209
}
210210
},
211211
"api_hash": "da281fe426e5989c17ce8933916f4c7367f90a5e15a1672f4b0b53f541c016be"

Meshtastic/Views/Messages/ChannelMessageList.swift

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -130,18 +130,21 @@ struct ChannelMessageList: View {
130130
scrollView: scrollView,
131131
onInteractionComplete: handleInteractionComplete,
132132
onTapback: { message in
133+
tapbackFocused = false
133134
tapbackTargetMessage = message
134-
tapbackFocused = true
135-
#if targetEnvironment(macCatalyst)
136-
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
137-
if let nsApp = NSClassFromString("NSApplication")?.value(forKeyPath: "sharedApplication") as? NSObject {
138-
let selector = NSSelectorFromString("orderFrontCharacterPalette:")
139-
if nsApp.responds(to: selector) {
140-
nsApp.perform(selector, with: nil)
135+
DispatchQueue.main.asyncAfter(deadline: .now() + 0.05) {
136+
tapbackFocused = true
137+
#if targetEnvironment(macCatalyst)
138+
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
139+
if let nsApp = NSClassFromString("NSApplication")?.value(forKeyPath: "sharedApplication") as? NSObject {
140+
let selector = NSSelectorFromString("orderFrontCharacterPalette:")
141+
if nsApp.responds(to: selector) {
142+
nsApp.perform(selector, with: nil)
143+
}
141144
}
142145
}
146+
#endif
143147
}
144-
#endif
145148
}
146149
)
147150
.onAppear {

0 commit comments

Comments
 (0)