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:
ZacharyZhang-NY committed 2026-09-28 04:59:11 -04:00
1 parent 012a6e3105
commit c7c4c006a7
6 files changed
+52 -10

No files matched your search

+7
View File
@@ -66,6 +66,13 @@ pub const PAGE: Page = Page {
Step::UpAt("cookies", 230.0, 84.0),
Step::HoverAt("cookies", 20.0, 20.0),
Step::Shot("cookies-choosing"),
Step::DownAt("web", 240.0, 100.0),
Step::UpAt("web", 240.0, 100.0),
Step::DownAt("converter", 24.0, 60.0),
Step::UpAt("converter", 24.0, 60.0),
Step::Key("cmd-a"),
Step::NativeKey("5"),
Step::Shot("keys-back"),
],
};
+4 -2
View File
@@ -1,6 +1,7 @@
use ely_gpui_component::misc::{IframeEmbed, WebSource, WebView};
use gpui::{App, IntoElement, ParentElement, Styled, div, px};
use crate::probe::probe;
use crate::ui::{blocked, section};
const PAGE: &str = r#"<!doctype html>
@@ -25,12 +26,13 @@ pub fn render(cx: &App) -> impl IntoElement + use<> {
"A native web view laid over its box: an address, or HTML the owner hands in, which makes it an HTML preview. It draws above everything gpui paints and follows the box each frame.",
cx,
)
.child(
.child(probe(
"web",
div()
.w(px(480.0))
.h(px(200.0))
.child(WebView::new("web", WebSource::Html(PAGE.into()))),
),
)),
)
.child(
section(