shithub: opossum

Download patch

ref: f00d509c3efd320c795af6964d861a73761da3e9
parent: 8970feb8e2dd65bdbda47006affff7753a7ccf60
author: Philip Silva <philip.silva@protonmail.com>
date: Mon Aug 2 10:53:45 EDT 2021

Fit overflowing tables more evenly

--- a/browser/duitx/grid.go
+++ b/browser/duitx/grid.go
@@ -90,12 +90,23 @@
 		space := spaces[col]
 		for i := col; i < len(ui.Kids); i += ui.Columns {
 			k := ui.Kids[i]
-			k.UI.Layout(dui, k, image.Pt(sizeAvail.X-width-space.Dx(), sizeAvail.Y-space.Dy()), true)
+			k.UI.Layout(dui, k, image.Pt(sizeAvail.X-space.Dx(), sizeAvail.Y-space.Dy()), true)
 			newDx = maximum(newDx, k.R.Dx()+space.Dx())
 		}
 		ui.widths[col] = newDx
 		width += ui.widths[col]
 	}
+
+	// Reduce used widths if too large
+	if width > sizeAvail.X {
+		r := float64(sizeAvail.X) / float64(width)
+		width = sizeAvail.X
+		for i := range ui.widths {
+			ui.widths[i] = int(float64(ui.widths[i])*r)
+		}
+	}
+
+	// Enable full width if activated
 	if scaledWidth < 0 && width < sizeAvail.X {
 		leftover := sizeAvail.X - width
 		given := 0