ref: f9ff39ba72623d7392b9388567cd9154dc97ce47
parent: dfa5cf23ef37674aadba82bb9b680f8086669374
author: Philip Silva <philip.silva@protonmail.com>
date: Thu Mar 4 16:11:34 EST 2021
Webview shouldn't be transparent
--- a/browser/browser.go
+++ b/browser/browser.go
@@ -1479,17 +1479,9 @@
b.Website.UI = &duit.Label{}}
- // Workaround to clear background to white for websites that don't use the whole window
- white, err := dui.Display.AllocImage(image.Rect(0, 0, 10, 10), draw.ARGB32, true, 0xffffffff)
- if err != nil {- log.Errorf("%v", err)- }
- tmp := dui.Background
- dui.Background = white
dui.MarkLayout(dui.Top.UI)
dui.MarkDraw(dui.Top.UI)
dui.Render()
- dui.Background = tmp
}
}
--- a/cmd/browse/main.go
+++ b/cmd/browse/main.go
@@ -1,9 +1,10 @@
package main
import (
+ "9fans.net/go/draw"
"flag"
"fmt"
-
+ "image"
"os"
"github.com/psilva261/opossum"
"github.com/psilva261/opossum/browser"
@@ -14,7 +15,6 @@
"github.com/psilva261/opossum/nodes"
"runtime/pprof"
"time"
-
"github.com/mjl-/duit"
)
@@ -35,30 +35,39 @@
logger.Quiet = flag.Bool("quiet", defaultQuietActive, "don't print info messages and non-fatal errors")}
-func render(b *browser.Browser) {+func mainView(b *browser.Browser) []*duit.Kid {+ return duit.NewKids(
+ &duit.Grid{+ Columns: 2,
+ Padding: duit.NSpace(2, duit.SpaceXY(5, 3)),
+ Halign: []duit.Halign{duit.HalignLeft, duit.HalignRight},+ Valign: []duit.Valign{duit.ValignMiddle, duit.ValignMiddle},+ Kids: duit.NewKids(
+ &duit.Button{+ Text: "Back",
+ Font: browser.Style.Font(),
+ Click: b.Back,
+ },
+ &duit.Box{+ Kids: duit.NewKids(
+ b.LocationField,
+ ),
+ },
+ ),
+ },
+ b.StatusBar,
+ b.Website,
+ )
+}
+
+func render(b *browser.Browser, kids []*duit.Kid) {+ white, err := dui.Display.AllocImage(image.Rect(0, 0, 10, 10), draw.ARGB32, true, 0xffffffff)
+ if err != nil {+ log.Errorf("%v", err)+ }
dui.Top.UI = &duit.Box{- Kids: duit.NewKids(
- &duit.Grid{- Columns: 2,
- Padding: duit.NSpace(2, duit.SpaceXY(5, 3)),
- Halign: []duit.Halign{duit.HalignLeft, duit.HalignRight},- Valign: []duit.Valign{duit.ValignMiddle, duit.ValignMiddle},- Kids: duit.NewKids(
- &duit.Button{- Text: "Back",
- Font: browser.Style.Font(),
- Click: b.Back,
- },
- &duit.Box{- Kids: duit.NewKids(
- b.LocationField,
- ),
- },
- ),
- },
- b.StatusBar,
- b.Website,
- ),
+ Kids: kids,
+ Background: white,
}
browser.PrintTree(b.Website.UI)
log.Printf("Render.....")@@ -76,45 +85,40 @@
Text: value,
}
- dui.Top.UI = &duit.Box{- Kids: duit.NewKids(
- &duit.Grid{- Columns: 3,
- Padding: duit.NSpace(3, duit.SpaceXY(5, 3)),
- Halign: []duit.Halign{duit.HalignLeft, duit.HalignLeft, duit.HalignRight},- Valign: []duit.Valign{duit.ValignMiddle, duit.ValignMiddle, duit.ValignMiddle},- Kids: duit.NewKids(
- &duit.Button{- Text: "Ok",
- Font: browser.Style.Font(),
- Click: func() (e duit.Event) {- res <- f.Text
- e.Consumed = true
- return
- },
+ kids := duit.NewKids(
+ &duit.Grid{+ Columns: 3,
+ Padding: duit.NSpace(3, duit.SpaceXY(5, 3)),
+ Halign: []duit.Halign{duit.HalignLeft, duit.HalignLeft, duit.HalignRight},+ Valign: []duit.Valign{duit.ValignMiddle, duit.ValignMiddle, duit.ValignMiddle},+ Kids: duit.NewKids(
+ &duit.Button{+ Text: "Ok",
+ Font: browser.Style.Font(),
+ Click: func() (e duit.Event) {+ res <- f.Text
+ e.Consumed = true
+ return
},
- &duit.Button{- Text: "Abort",
- Font: browser.Style.Font(),
- Click: func() (e duit.Event) {- res <- ""
- e.Consumed = true
- return
- },
+ },
+ &duit.Button{+ Text: "Abort",
+ Font: browser.Style.Font(),
+ Click: func() (e duit.Event) {+ res <- ""
+ e.Consumed = true
+ return
},
- f,
- ),
- },
- &duit.Label{- Text: text,
- },
- ),
- }
- log.Printf("Render.....")- dui.MarkLayout(dui.Top.UI)
- dui.MarkDraw(dui.Top.UI)
- dui.Render()
- log.Printf("Rendering done")+ },
+ f,
+ ),
+ },
+ &duit.Label{+ Text: text,
+ },
+ )
+
+ render(b, kids)
}
return res
@@ -138,12 +142,12 @@
go func() {<-done
dui.Call <- func() {- render(b)
+ render(b, mainView(b))
}
}()
return confirm(b, fmt.Sprintf("Download %v", b.URL()), "/download.file")}
- render(b)
+ render(b, mainView(b))
for { select {--
⑨