Misc · Web: the web view hands the keyboard back
WKWebView takes AppKit's first responder on a press and gpui's view never asks for it back, so typed text went to the page for good. The web view now hands it back through wry's focus_parent on every press gpui gets and when its page drops. The gallery proves it with a native key after a press on the page. in_view builds only where it is used, its test covers a box that straddles the view's top, and the embed's frame takes the card's bottom corners.
This commit is contained in:
1 parent
012a6e3105
commit
c7c4c006a7
6 files changed
+52
-10
No files matched your search
@@ -201,6 +201,7 @@ Ely GPUI Component. A component library for GPUI, in light and dark.
|
||||
- A wall clock reads `Timestamp::now` and wakes its view at each whole second through a keyed task, only while the owner passes no moment; a stopwatch reads the executor's clock, so tests advance it (`misc::Clock`, `misc::Stopwatch`).
|
||||
- A number shown to so many significant digits goes through `typography::format::significant`, which rounds through Rust's exponent form, so no binary noise shows at any size (`misc::Calculator`, `misc::UnitConverter`).
|
||||
- A component that reads the host's frames reads one at a time off the main thread and passes over frames that come meanwhile; when a read ends it redraws, so the newest frame is read next (`misc::QrCodeScanner`).
|
||||
- A native view laid over the window takes AppKit's first responder on a press, and gpui's view never asks for it back, so typed text would go to the native view for good. The component hands the keyboard back on every press gpui gets and when the view leaves (`misc::WebView`, through wry's `focus_parent`); `Step::NativeKey` proves it, since gpui's own dispatch skips AppKit.
|
||||
- A map keeps places in `f64`: at zoom 19 the world is 134 million pixels across. Its wheel pans and Command or Control with the wheel zooms about the pointer, as the canvas's does. Its tiles stay in gpui's asset cache, as every `img()` picture does. Its popup is an overlay that is not modal: it takes focus when it shows, and the frame it stops showing, by any way out, hands focus back. Its layers, lines and areas unwrap across the date line and repeat on every world in view. Clustered pins gather by squares of the world, not of the view, so a pan never regroups them; a zoom may, so it hands a focused pin's or cluster's focus to the map.
|
||||
|
||||
## Decisions
|
||||
|
||||
Reference in new issue
Block a user