diff --git a/just/just.fnl b/just/just.fnl index 5fcb254..070ce42 100644 --- a/just/just.fnl +++ b/just/just.fnl @@ -159,7 +159,6 @@ progress, trough { (box:add (Gtk.Label { :label "Open tabs" })) - (each [i w (pairs tabs)] (when (> i 0) (box:pack_start @@ -172,6 +171,15 @@ progress, trough { (load-webview-thumbnail w)) false false 5))) + (box:pack_start (Gtk.Button + { + :label " + " + :width 300 + :height 200 + :on_clicked #(bus:publish $1 :new-tab) + }) + false false 5) + (scrolledwindow:add box) (scrolledwindow:show_all) )) @@ -186,13 +194,16 @@ progress, trough { (when (= num 0) (update-tab-overview bus tabs page))) }) - new-tab (fn [self child] - (let [v (or child (new-webview bus)) - i (widget:append_page v)] + add-page (fn [v] + (let [i (widget:append_page v)] (tset tabs i v) (v:show) (set widget.page i) v)) + new-tab (fn [self] + (let [v (add-page (new-webview bus))] + (v:load_uri "about:blank") + v)) tab-overview (Gtk.ScrolledWindow) current #(. tabs widget.page)] (bus:subscribe :fetch #(match (current) c (c:load_uri $2))) @@ -218,13 +229,17 @@ progress, trough { (tset tabs i nil) (update-tab-overview bus tabs tab-overview) (widget:set_current_page 0))) - (new-tab nil tab-overview) + (add-page tab-overview) { :new-tab new-tab :current-tab current :widget widget - :show-tab-overview #(widget:set_current_page 0) + :show-tab-overview (fn [] + (widget:set_current_page 0) + (bus:publish tab-overview :url-changed false) + (bus:publish tab-overview :title-changed "Open tabs")) + })) (local completions @@ -261,10 +276,6 @@ progress, trough { :on_clicked #(bus:publish $1 :stop-loading) }) (: :set_image (named-image "process-stop"))) - new-tab (Gtk.Button { - :on_clicked #(bus:publish $1 :new-tab) - :label "➕" - }) refresh (doto (Gtk.Button { :on_clicked #(bus:publish $1 :reload) }) @@ -283,7 +294,10 @@ progress, trough { (= (views:current-tab) tab))] (bus:subscribe :url-changed - #(when (visible? $1) (url:set_text $2))) + #(when (visible? $1) + (doto url + (: :set_text (or $2 "")) + (: :set_editable (and $2 true))))) (bus:subscribe :title-changed #(when (visible? $1) @@ -308,7 +322,6 @@ progress, trough { (nav-bar:pack_start stop false false 2) (nav-bar:pack_start url true true 2) (nav-bar:pack_end show-tabs false false 2) - (nav-bar:pack_end new-tab false false 2) (container:pack_start nav-bar false false 5) (container:pack_start progress-bar false false 0) diff --git a/just/shell.nix b/just/shell.nix new file mode 100644 index 0000000..a760f25 --- /dev/null +++ b/just/shell.nix @@ -0,0 +1 @@ +with import {} ; callPackage ./. {}