commit 1ba470a63113adc4e72fd550ac9e6a4145ea5a59
parent 24052ac10deef63efd16c3538e14f18f47678d16
Author: Daniel Barlow <dan@telent.net>
Date: Sat, 5 Mar 2022 23:05:03 +0000
viewplex: only relay events from focused page
Diffstat:
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/just/viewplex.fnl b/just/viewplex.fnl
@@ -15,11 +15,14 @@
{
:listen (fn [_ name fun]
(if (not (. relay-events name))
- (v:listen name #(listeners:notify name $1))))
(each [_ v (pairs views)]
+ (v:listen name #(if (= v foreground-view)
+ (listeners:notify name $1)))))
(table.insert relay-events name)
(listeners:add name fun))
+
:widget widget
+
:add-view (fn [self webview]
(set foreground-view webview)
(webview.widget:show)
@@ -30,6 +33,14 @@
(tset views page webview)
(set widget.page page)
page))
+
+ :focus (fn [_ page]
+ (let [view (. views page)]
+ (set foreground-view view)
+ (each [_ prop (ipairs relay-events)]
+ (listeners:notify :uri (. view.properties prop)))
+ (set widget.page page)))
+
:visit #(and foreground-view (foreground-view:visit $2))
:stop-loading #(and foreground-view
(foreground-view:stop-loading))