diff --git a/assets/webui/ofdgo.css b/assets/webui/ofdgo.css index 35e5cdf..689933a 100644 --- a/assets/webui/ofdgo.css +++ b/assets/webui/ofdgo.css @@ -285,6 +285,13 @@ body[data-hide-meta] .meta-panel { display: none; } +.page-list-panel, +.viewer-panel, +.meta-panel { + scrollbar-width: thin; + scrollbar-color: var(--line-strong) transparent; +} + .page-list-panel, .meta-panel { min-height: 0; diff --git a/assets/webui/ofdgo.js b/assets/webui/ofdgo.js index b17c3bf..b50c336 100644 --- a/assets/webui/ofdgo.js +++ b/assets/webui/ofdgo.js @@ -2517,6 +2517,7 @@ function scrollbarWidth() { probe.style.width = "100px"; probe.style.height = "100px"; probe.style.overflow = "scroll"; + probe.style.scrollbarWidth = getComputedStyle(el.viewerPanel).scrollbarWidth; probe.style.left = "-9999px"; document.body.append(probe); const width = probe.offsetWidth - probe.clientWidth; diff --git a/ofdgo_renderer_image.go b/ofdgo_renderer_image.go index e0f6ad6..a09fb2f 100644 --- a/ofdgo_renderer_image.go +++ b/ofdgo_renderer_image.go @@ -310,13 +310,15 @@ func imageWithTransparentEdge(img image.Image) (image.Image, int) { src, ok := source.(*image.NRGBA) if ok { srcBounds := src.Bounds() + hasZero = src.Pix[3] == 0 + hasVisible = !hasZero + scan: for y := srcBounds.Min.Y; y < srcBounds.Max.Y; y++ { offset := src.PixOffset(srcBounds.Min.X, y) + 3 for x := 0; x < w; x++ { - if src.Pix[offset] == 0 { - hasZero = true - } else { - hasVisible = true + if (src.Pix[offset] == 0) != hasZero { + hasZero, hasVisible = true, true + break scan } offset += 4 }