Commit d99fafc
committed
Bugfix: ⌘A selects text in the Settings and viewer windows (was dead outside the main window)
⌘A did nothing in non-main windows (for example the shortcut search field in Settings > Keyboard shortcuts). "Select all" is a custom MenuItem with a ⌘A accelerator, so macOS intercepts the keystroke before the webview ever sees it — and `handle_menu_event`'s `FileScoped` focus guard then silently dropped the event because the main window wasn't focused. No path led to the text field.
- `Select all` now rides the same focus-routed exception as Cut/Copy/Paste: main window focused → `execute-command selection.selectAll` (unchanged behavior); any other window → the native `selectAll:` selector through the responder chain via `NSApplication.sendAction:to:from:`, so WKWebView does text select-all natively, exactly like a PredefinedMenuItem would.
- `send_native_clipboard_action` renamed to `send_native_edit_action` (it's no longer clipboard-only).
- `Deselect all` (⌘⇧A) intentionally keeps the plain FileScoped path: AppKit has no standard "deselect all" responder action for text fields, so there's nothing native to forward to.
- Docs: updated the `menu/CLAUDE.md` gotchas (⌘A dual routing, custom Edit MenuItems) and the `mod.rs` mapping comments.1 parent 762b395 commit d99fafc
3 files changed
Lines changed: 44 additions & 33 deletions
File tree
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
224 | 224 | | |
225 | 225 | | |
226 | 226 | | |
227 | | - | |
228 | | - | |
229 | | - | |
230 | | - | |
231 | | - | |
232 | | - | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
233 | 234 | | |
234 | | - | |
235 | | - | |
| 235 | + | |
| 236 | + | |
236 | 237 | | |
237 | 238 | | |
238 | | - | |
239 | | - | |
240 | | - | |
241 | | - | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
242 | 247 | | |
243 | 248 | | |
244 | 249 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| |||
297 | 297 | | |
298 | 298 | | |
299 | 299 | | |
300 | | - | |
| 300 | + | |
301 | 301 | | |
302 | | - | |
303 | | - | |
| 302 | + | |
| 303 | + | |
304 | 304 | | |
305 | 305 | | |
306 | | - | |
| 306 | + | |
307 | 307 | | |
308 | 308 | | |
309 | 309 | | |
310 | 310 | | |
311 | 311 | | |
312 | 312 | | |
313 | 313 | | |
| 314 | + | |
314 | 315 | | |
315 | 316 | | |
316 | 317 | | |
317 | | - | |
| 318 | + | |
318 | 319 | | |
319 | 320 | | |
320 | 321 | | |
| |||
503 | 504 | | |
504 | 505 | | |
505 | 506 | | |
506 | | - | |
507 | | - | |
508 | | - | |
509 | | - | |
510 | | - | |
511 | | - | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
512 | 515 | | |
513 | 516 | | |
514 | 517 | | |
515 | 518 | | |
516 | 519 | | |
517 | 520 | | |
518 | 521 | | |
519 | | - | |
| 522 | + | |
| 523 | + | |
520 | 524 | | |
521 | 525 | | |
522 | 526 | | |
523 | 527 | | |
524 | 528 | | |
525 | 529 | | |
526 | 530 | | |
527 | | - | |
| 531 | + | |
528 | 532 | | |
529 | | - | |
| 533 | + | |
530 | 534 | | |
531 | 535 | | |
532 | 536 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
264 | 264 | | |
265 | 265 | | |
266 | 266 | | |
267 | | - | |
268 | | - | |
269 | | - | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
270 | 270 | | |
271 | 271 | | |
272 | 272 | | |
| |||
288 | 288 | | |
289 | 289 | | |
290 | 290 | | |
| 291 | + | |
| 292 | + | |
291 | 293 | | |
292 | 294 | | |
293 | 295 | | |
| |||
0 commit comments