From 7223ac9de45cc306ad1defc00c16fd92814c5525 Mon Sep 17 00:00:00 2001 From: yggverse Date: Mon, 3 Feb 2025 23:53:03 +0200 Subject: [PATCH] grab focus into the `TextView` on click empty `ClampScrollable` area --- .../window/tab/item/page/content/text.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/app/browser/window/tab/item/page/content/text.rs b/src/app/browser/window/tab/item/page/content/text.rs index 41b7485d..65902ee7 100644 --- a/src/app/browser/window/tab/item/page/content/text.rs +++ b/src/app/browser/window/tab/item/page/content/text.rs @@ -24,14 +24,31 @@ impl Text { base: &Uri, gemtext: &str, ) -> Self { + // Define some local dependencies + use gtk::{prelude::WidgetExt, GestureClick}; + + // Init gemtext reader let gemini = Gemini::build(actions, base, gemtext).unwrap(); // @TODO handle + // Init container widget let clamp_scrollable = ClampScrollable::builder() .child(&gemini.text_view) .css_classes(["view"]) .maximum_size(800) .build(); + // Grab focus into the `TextView` on click empty `ClampScrollable` area + let controller = GestureClick::new(); + + controller.connect_released({ + let text_view = gemini.text_view.clone(); + move |_, _, _, _| { + text_view.grab_focus(); + } + }); + + clamp_scrollable.add_controller(controller); + Self { text_view: gemini.text_view, meta: Meta {