detached 45b5ee0

Merge pull request #344 from bnema/chore/upstream-foundations

chore(deps): integrate approved upstream foundations
commit
45b5ee02d70d8fc7b30a18e2b5f30c2c77afb1f2
author
bnema · · 2026-07-14 17:16 UTC
committer
GitHub · · 2026-07-14 17:16 UTC
merge of
41933ea + a161e34 · diff against the first parent
signature
GPG UnverifiedB5690EEEBB952194 The key is unknown
921 files · +28709 -25527
M docs/first-presentation.md +5 -2
@@ -46,5 +46,8 @@ labels. Set `DUMBER_MACHINE_GPU_PROFILE` to one of `generic-gpu`,
4646 `integrated-gpu`, `discrete-gpu`, `hybrid-gpu`, `virtual-gpu`, or `unknown-gpu`;
4747 do not use a device model or other identifier. Publish only the seven reviewed
4848 JSON files to an external Gist. Raw logs and temporary XDG homes are removed and
49-must not be published. A missing or incomplete timeline, non-DMABUF backend, or
50-invalid run fails collection.
49+must not be published. `metadata.json` derives the selected
50+`github.com/bnema/purego-cef2gtk` pseudo-version and its full immutable Git
51+origin hash from Go module metadata; branch selectors or missing origin metadata
52+fail collection. A missing or incomplete timeline, non-DMABUF backend, or invalid
53+run also fails collection.
@@ -46,5 +46,8 @@ labels. Set `DUMBER_MACHINE_GPU_PROFILE` to one of `generic-gpu`,
46 `integrated-gpu`, `discrete-gpu`, `hybrid-gpu`, `virtual-gpu`, or `unknown-gpu`;46 `integrated-gpu`, `discrete-gpu`, `hybrid-gpu`, `virtual-gpu`, or `unknown-gpu`;
47 do not use a device model or other identifier. Publish only the seven reviewed47 do not use a device model or other identifier. Publish only the seven reviewed
48 JSON files to an external Gist. Raw logs and temporary XDG homes are removed and48 JSON files to an external Gist. Raw logs and temporary XDG homes are removed and
49-must not be published. A missing or incomplete timeline, non-DMABUF backend, or49+must not be published. `metadata.json` derives the selected
50-invalid run fails collection.50+`github.com/bnema/purego-cef2gtk` pseudo-version and its full immutable Git
51+origin hash from Go module metadata; branch selectors or missing origin metadata
52+fail collection. A missing or incomplete timeline, non-DMABUF backend, or invalid
53+run also fails collection.
M go.mod +5 -5
@@ -6,11 +6,11 @@ require (
66 github.com/a-h/templ v0.3.1020
77 github.com/andybalholm/brotli v1.2.2
88 github.com/bnema/purego v0.11.0-bnema.4
9- github.com/bnema/purego-cef v0.13.3
10- github.com/bnema/purego-cef2gtk v0.8.4
11- github.com/bnema/purego-pipewire v0.1.4
12- github.com/bnema/purego-sqlite v0.1.3
13- github.com/bnema/puregotk v0.7.0
9+ github.com/bnema/purego-cef v0.13.4-0.20260714140305-f0b7414af67e
10+ github.com/bnema/purego-cef2gtk v0.8.4-0.20260714160309-bbd397409ebe
11+ github.com/bnema/purego-pipewire v0.1.5-0.20260714124450-6504b9cdf02a
12+ github.com/bnema/purego-sqlite v0.1.4-0.20260714131321-3614fe683b9c
13+ github.com/bnema/puregotk v0.7.1-0.20260714170452-0b6b9b901234
1414 github.com/charmbracelet/bubbles v1.0.0
1515 github.com/charmbracelet/bubbletea v1.3.10
1616 github.com/charmbracelet/lipgloss v1.1.0
@@ -6,11 +6,11 @@ require (
6 github.com/a-h/templ v0.3.10206 github.com/a-h/templ v0.3.1020
7 github.com/andybalholm/brotli v1.2.27 github.com/andybalholm/brotli v1.2.2
8 github.com/bnema/purego v0.11.0-bnema.48 github.com/bnema/purego v0.11.0-bnema.4
9- github.com/bnema/purego-cef v0.13.39+ github.com/bnema/purego-cef v0.13.4-0.20260714140305-f0b7414af67e
10- github.com/bnema/purego-cef2gtk v0.8.410+ github.com/bnema/purego-cef2gtk v0.8.4-0.20260714160309-bbd397409ebe
11- github.com/bnema/purego-pipewire v0.1.411+ github.com/bnema/purego-pipewire v0.1.5-0.20260714124450-6504b9cdf02a
12- github.com/bnema/purego-sqlite v0.1.312+ github.com/bnema/purego-sqlite v0.1.4-0.20260714131321-3614fe683b9c
13- github.com/bnema/puregotk v0.7.013+ github.com/bnema/puregotk v0.7.1-0.20260714170452-0b6b9b901234
14 github.com/charmbracelet/bubbles v1.0.014 github.com/charmbracelet/bubbles v1.0.0
15 github.com/charmbracelet/bubbletea v1.3.1015 github.com/charmbracelet/bubbletea v1.3.10
16 github.com/charmbracelet/lipgloss v1.1.016 github.com/charmbracelet/lipgloss v1.1.0
M go.sum +12 -0 generated file: collapsed
A internal/infrastructure/persistence/sqlite/history_repo_benchmark_test.go +71 -0
@@ -0,0 +1,71 @@
1+package sqlite_test
2+
3+import (
4+ "fmt"
5+ "path/filepath"
6+ "testing"
7+
8+ "github.com/bnema/dumber/internal/domain/entity"
9+ "github.com/bnema/dumber/internal/domain/repository"
10+ "github.com/bnema/dumber/internal/infrastructure/persistence/sqlite"
11+)
12+
13+// newHistoryBenchmarkRepository creates a representative local history corpus
14+// outside the measured operation. Sidebar reads use GetRecent and omnibox
15+// history suggestions use Search.
16+func newHistoryBenchmarkRepository(b *testing.B) (repository.HistoryRepository, func()) {
17+ b.Helper()
18+
19+ ctx := historyTestCtx()
20+ db, err := sqlite.NewConnection(ctx, filepath.Join(b.TempDir(), "dumber.db"))
21+ if err != nil {
22+ b.Fatal(err)
23+ }
24+
25+ b.Cleanup(func() {
26+ if err := db.Close(); err != nil {
27+ b.Errorf("close benchmark database: %v", err)
28+ }
29+ })
30+
31+ repo := sqlite.NewHistoryRepository(db)
32+ for i := range 200 {
33+ entry := &entity.HistoryEntry{
34+ URL: fmt.Sprintf("https://example%d.test/dumber/history/%d", i%20, i),
35+ Title: fmt.Sprintf("Dumber history entry %d", i),
36+ }
37+ if err := repo.Save(ctx, entry); err != nil {
38+ b.Fatal(err)
39+ }
40+ }
41+
42+ return repo, func() {}
43+}
44+
45+func BenchmarkHistorySQLiteSidebarRecent(b *testing.B) {
46+ repo, closeDB := newHistoryBenchmarkRepository(b)
47+ defer closeDB()
48+ ctx := historyTestCtx()
49+
50+ b.ReportAllocs()
51+ b.ResetTimer()
52+ for range b.N {
53+ if _, err := repo.GetRecent(ctx, 50, 0); err != nil {
54+ b.Fatal(err)
55+ }
56+ }
57+}
58+
59+func BenchmarkHistorySQLiteOmniboxSearch(b *testing.B) {
60+ repo, closeDB := newHistoryBenchmarkRepository(b)
61+ defer closeDB()
62+ ctx := historyTestCtx()
63+
64+ b.ReportAllocs()
65+ b.ResetTimer()
66+ for range b.N {
67+ if _, err := repo.Search(ctx, "dumber history", 10); err != nil {
68+ b.Fatal(err)
69+ }
70+ }
71+}
@@ -0,0 +1,71 @@
1+package sqlite_test
2+
3+import (
4+ "fmt"
5+ "path/filepath"
6+ "testing"
7+
8+ "github.com/bnema/dumber/internal/domain/entity"
9+ "github.com/bnema/dumber/internal/domain/repository"
10+ "github.com/bnema/dumber/internal/infrastructure/persistence/sqlite"
11+)
12+
13+// newHistoryBenchmarkRepository creates a representative local history corpus
14+// outside the measured operation. Sidebar reads use GetRecent and omnibox
15+// history suggestions use Search.
16+func newHistoryBenchmarkRepository(b *testing.B) (repository.HistoryRepository, func()) {
17+ b.Helper()
18+
19+ ctx := historyTestCtx()
20+ db, err := sqlite.NewConnection(ctx, filepath.Join(b.TempDir(), "dumber.db"))
21+ if err != nil {
22+ b.Fatal(err)
23+ }
24+
25+ b.Cleanup(func() {
26+ if err := db.Close(); err != nil {
27+ b.Errorf("close benchmark database: %v", err)
28+ }
29+ })
30+
31+ repo := sqlite.NewHistoryRepository(db)
32+ for i := range 200 {
33+ entry := &entity.HistoryEntry{
34+ URL: fmt.Sprintf("https://example%d.test/dumber/history/%d", i%20, i),
35+ Title: fmt.Sprintf("Dumber history entry %d", i),
36+ }
37+ if err := repo.Save(ctx, entry); err != nil {
38+ b.Fatal(err)
39+ }
40+ }
41+
42+ return repo, func() {}
43+}
44+
45+func BenchmarkHistorySQLiteSidebarRecent(b *testing.B) {
46+ repo, closeDB := newHistoryBenchmarkRepository(b)
47+ defer closeDB()
48+ ctx := historyTestCtx()
49+
50+ b.ReportAllocs()
51+ b.ResetTimer()
52+ for range b.N {
53+ if _, err := repo.GetRecent(ctx, 50, 0); err != nil {
54+ b.Fatal(err)
55+ }
56+ }
57+}
58+
59+func BenchmarkHistorySQLiteOmniboxSearch(b *testing.B) {
60+ repo, closeDB := newHistoryBenchmarkRepository(b)
61+ defer closeDB()
62+ ctx := historyTestCtx()
63+
64+ b.ReportAllocs()
65+ b.ResetTimer()
66+ for range b.N {
67+ if _, err := repo.Search(ctx, "dumber history", 10); err != nil {
68+ b.Fatal(err)
69+ }
70+ }
71+}
M internal/logging/first_presentation_collector_test.go +132 -1
@@ -2,6 +2,7 @@ package logging
22
33 import (
44 "encoding/json"
5+ "fmt"
56 "os"
67 "os/exec"
78 "path/filepath"
@@ -143,8 +144,9 @@ func TestFirstPresentationCollectorSanitizesMachineLocalValues(t *testing.T) {
143144 }
144145 for _, required := range []string{
145146 `"measured_source_revision"`,
147+ `"version": "v0.8.4-0.20260714160309-bbd397409ebe"`,
146148 `"tag": "v0.8.4"`,
147- `"revision": "f217ece342dea3ef2a3f98671fcd16a39ad0037d"`,
149+ `"revision": "bbd397409ebed75a5979c1e4566a2ef319f6a484"`,
148150 } {
149151 require.Contains(t, artifacts.String(), required)
150152 }
@@ -166,6 +168,135 @@ func TestFirstPresentationCollectorSanitizesMachineLocalValues(t *testing.T) {
166168 require.Equal(t, "integrated-gpu", metadata.Comparison.MachineGPUProfile)
167169 }
168170
171+func TestFirstPresentationCollectorDerivesSelectedImmutableModuleProvenance(t *testing.T) {
172+ repoRoot, err := filepath.Abs(filepath.Join("..", ".."))
173+ require.NoError(t, err)
174+ temp := t.TempDir()
175+ runtime := filepath.Join(temp, "cef-147-runtime")
176+ require.NoError(t, os.Mkdir(runtime, 0o755))
177+ binary := filepath.Join(temp, "dumber")
178+ require.NoError(t, os.WriteFile(binary, collectorTestBinary(validFirstPresentationLog), 0o755))
179+
180+ // This exact pseudo-version is deliberately newer than the former v0.8.4
181+ // hardcode; the collector must report what the selected module says.
182+ const version = "v0.8.5-0.20300102030405-bbd397409ebe"
183+ const revision = "bbd397409ebed75a5979c1e4566a2ef319f6a484"
184+ goBin := collectorProvenanceGo(t, temp, version, revision, "")
185+ output := filepath.Join(temp, "artifacts")
186+ cmd := exec.Command(filepath.Join(repoRoot, "scripts", "collect_first_presentation.sh"))
187+ cmd.Dir = repoRoot
188+ cmd.Env = append(os.Environ(),
189+ "DISPLAY=:test",
190+ "DUMBER_CEF_DIR="+runtime,
191+ "DUMBER_FIRST_PRESENTATION_BIN="+binary,
192+ "DUMBER_FIRST_PRESENTATION_OUTPUT="+output,
193+ "DUMBER_FIRST_PRESENTATION_TIMEOUT_SECONDS=1",
194+ "PATH="+filepath.Dir(goBin)+":"+os.Getenv("PATH"),
195+ )
196+ result, err := cmd.CombinedOutput()
197+ require.NoErrorf(t, err, "collector failed: %s", result)
198+
199+ var metadata struct {
200+ Upstream struct {
201+ Module string `json:"module"`
202+ Version string `json:"version"`
203+ Tag string `json:"tag"`
204+ Revision string `json:"revision"`
205+ } `json:"upstream"`
206+ }
207+ contents, err := os.ReadFile(filepath.Join(output, "metadata.json"))
208+ require.NoError(t, err)
209+ require.NoError(t, json.Unmarshal(contents, &metadata))
210+ require.Equal(t, "github.com/bnema/purego-cef2gtk", metadata.Upstream.Module)
211+ require.Equal(t, version, metadata.Upstream.Version)
212+ require.Equal(t, "v0.8.5", metadata.Upstream.Tag)
213+ require.Equal(t, revision, metadata.Upstream.Revision)
214+
215+ script, err := os.ReadFile(filepath.Join(repoRoot, "scripts", "collect_first_presentation.sh"))
216+ require.NoError(t, err)
217+ require.NotContains(t, string(script), "f217ece342dea3ef2a3f98671fcd16a39ad0037d")
218+}
219+
220+func TestFirstPresentationCollectorRejectsNonImmutableModuleProvenanceWithoutLeaks(t *testing.T) {
221+ repoRoot, err := filepath.Abs(filepath.Join("..", ".."))
222+ require.NoError(t, err)
223+
224+ for _, test := range []struct {
225+ name, version, revision, ref string
226+ }{
227+ {name: "branch selector", version: "main", ref: "main"},
228+ {name: "missing origin", version: "v0.8.5-0.20300102030405-bbd397409ebe"},
229+ {name: "named origin ref", version: "v0.8.5-0.20300102030405-bbd397409ebe", revision: "bbd397409ebed75a5979c1e4566a2ef319f6a484", ref: "main"},
230+ } {
231+ t.Run(test.name, func(t *testing.T) {
232+ temp := t.TempDir()
233+ runtime := filepath.Join(temp, "cef-147-runtime")
234+ require.NoError(t, os.Mkdir(runtime, 0o755))
235+ binary := filepath.Join(temp, "dumber")
236+ require.NoError(t, os.WriteFile(binary, collectorTestBinary(validFirstPresentationLog), 0o755))
237+
238+ goBin := collectorProvenanceGo(t, temp, test.version, test.revision, test.ref)
239+ output := filepath.Join(temp, "artifacts")
240+ cmd := exec.Command(filepath.Join(repoRoot, "scripts", "collect_first_presentation.sh"))
241+ cmd.Dir = repoRoot
242+ cmd.Env = append(os.Environ(),
243+ "DISPLAY=:test",
244+ "DUMBER_CEF_DIR="+runtime,
245+ "DUMBER_FIRST_PRESENTATION_BIN="+binary,
246+ "DUMBER_FIRST_PRESENTATION_OUTPUT="+output,
247+ "PATH="+filepath.Dir(goBin)+":"+os.Getenv("PATH"),
248+ )
249+ result, runErr := cmd.CombinedOutput()
250+ require.Errorf(t, runErr, "collector accepted nonimmutable module provenance: %s", result)
251+ require.Contains(t, string(result), "immutable module provenance is unavailable")
252+ require.NotContains(t, string(result), temp)
253+ require.NoFileExists(t, filepath.Join(output, "metadata.json"))
254+ for _, name := range runArtifactNames() {
255+ require.NoFileExists(t, filepath.Join(output, name))
256+ }
257+ })
258+ }
259+}
260+
261+func collectorProvenanceGo(t *testing.T, temp, version, revision, ref string) string {
262+ t.Helper()
263+ infoPath := filepath.Join(temp, "module.info")
264+ info := map[string]any{"Version": version}
265+ if revision != "" {
266+ info["Origin"] = map[string]string{
267+ "VCS": "git", "URL": "https://github.com/bnema/purego-cef2gtk", "Hash": revision, "Ref": ref,
268+ }
269+ }
270+ infoJSON, err := json.Marshal(info)
271+ require.NoError(t, err)
272+ require.NoError(t, os.WriteFile(infoPath, infoJSON, 0o600))
273+
274+ selectedJSON, err := json.Marshal(map[string]string{
275+ "Path": "github.com/bnema/purego-cef2gtk", "Version": version,
276+ })
277+ require.NoError(t, err)
278+ downloadedJSON, err := json.Marshal(map[string]string{
279+ "Path": "github.com/bnema/purego-cef2gtk", "Version": version, "Info": infoPath,
280+ })
281+ require.NoError(t, err)
282+ binDir := filepath.Join(temp, "bin")
283+ require.NoError(t, os.Mkdir(binDir, 0o755))
284+ goBin := filepath.Join(binDir, "go")
285+ script := fmt.Sprintf(`#!/bin/sh
286+if [ "$1" = "list" ] && [ "$2" = "-m" ] && [ "$3" = "-json" ] && [ "$4" = "github.com/bnema/purego-cef2gtk" ]; then
287+ printf '%%s\n' '%s'
288+ exit 0
289+fi
290+if [ "$1" = "mod" ] && [ "$2" = "download" ] && [ "$3" = "-json" ] && [ "$4" = "github.com/bnema/purego-cef2gtk@%s" ]; then
291+ printf '%%s\n' '%s'
292+ exit 0
293+fi
294+exit 1
295+`, selectedJSON, version, downloadedJSON)
296+ require.NoError(t, os.WriteFile(goBin, []byte(script), 0o755))
297+ return goBin
298+}
299+
169300 func TestFirstPresentationCollectorDefaultsToXDGStateEvidenceDirectory(t *testing.T) {
170301 repoRoot, err := filepath.Abs(filepath.Join("..", ".."))
171302 require.NoError(t, err)
@@ -2,6 +2,7 @@ package logging
2 2
3 import (3 import (
4 "encoding/json"4 "encoding/json"
5+ "fmt"
5 "os"6 "os"
6 "os/exec"7 "os/exec"
7 "path/filepath"8 "path/filepath"
@@ -143,8 +144,9 @@ func TestFirstPresentationCollectorSanitizesMachineLocalValues(t *testing.T) {
143 }144 }
144 for _, required := range []string{145 for _, required := range []string{
145 `"measured_source_revision"`,146 `"measured_source_revision"`,
147+ `"version": "v0.8.4-0.20260714160309-bbd397409ebe"`,
146 `"tag": "v0.8.4"`,148 `"tag": "v0.8.4"`,
147- `"revision": "f217ece342dea3ef2a3f98671fcd16a39ad0037d"`,149+ `"revision": "bbd397409ebed75a5979c1e4566a2ef319f6a484"`,
148 } {150 } {
149 require.Contains(t, artifacts.String(), required)151 require.Contains(t, artifacts.String(), required)
150 }152 }
@@ -166,6 +168,135 @@ func TestFirstPresentationCollectorSanitizesMachineLocalValues(t *testing.T) {
166 require.Equal(t, "integrated-gpu", metadata.Comparison.MachineGPUProfile)168 require.Equal(t, "integrated-gpu", metadata.Comparison.MachineGPUProfile)
167 }169 }
168 170
171+func TestFirstPresentationCollectorDerivesSelectedImmutableModuleProvenance(t *testing.T) {
172+ repoRoot, err := filepath.Abs(filepath.Join("..", ".."))
173+ require.NoError(t, err)
174+ temp := t.TempDir()
175+ runtime := filepath.Join(temp, "cef-147-runtime")
176+ require.NoError(t, os.Mkdir(runtime, 0o755))
177+ binary := filepath.Join(temp, "dumber")
178+ require.NoError(t, os.WriteFile(binary, collectorTestBinary(validFirstPresentationLog), 0o755))
179+
180+ // This exact pseudo-version is deliberately newer than the former v0.8.4
181+ // hardcode; the collector must report what the selected module says.
182+ const version = "v0.8.5-0.20300102030405-bbd397409ebe"
183+ const revision = "bbd397409ebed75a5979c1e4566a2ef319f6a484"
184+ goBin := collectorProvenanceGo(t, temp, version, revision, "")
185+ output := filepath.Join(temp, "artifacts")
186+ cmd := exec.Command(filepath.Join(repoRoot, "scripts", "collect_first_presentation.sh"))
187+ cmd.Dir = repoRoot
188+ cmd.Env = append(os.Environ(),
189+ "DISPLAY=:test",
190+ "DUMBER_CEF_DIR="+runtime,
191+ "DUMBER_FIRST_PRESENTATION_BIN="+binary,
192+ "DUMBER_FIRST_PRESENTATION_OUTPUT="+output,
193+ "DUMBER_FIRST_PRESENTATION_TIMEOUT_SECONDS=1",
194+ "PATH="+filepath.Dir(goBin)+":"+os.Getenv("PATH"),
195+ )
196+ result, err := cmd.CombinedOutput()
197+ require.NoErrorf(t, err, "collector failed: %s", result)
198+
199+ var metadata struct {
200+ Upstream struct {
201+ Module string `json:"module"`
202+ Version string `json:"version"`
203+ Tag string `json:"tag"`
204+ Revision string `json:"revision"`
205+ } `json:"upstream"`
206+ }
207+ contents, err := os.ReadFile(filepath.Join(output, "metadata.json"))
208+ require.NoError(t, err)
209+ require.NoError(t, json.Unmarshal(contents, &metadata))
210+ require.Equal(t, "github.com/bnema/purego-cef2gtk", metadata.Upstream.Module)
211+ require.Equal(t, version, metadata.Upstream.Version)
212+ require.Equal(t, "v0.8.5", metadata.Upstream.Tag)
213+ require.Equal(t, revision, metadata.Upstream.Revision)
214+
215+ script, err := os.ReadFile(filepath.Join(repoRoot, "scripts", "collect_first_presentation.sh"))
216+ require.NoError(t, err)
217+ require.NotContains(t, string(script), "f217ece342dea3ef2a3f98671fcd16a39ad0037d")
218+}
219+
220+func TestFirstPresentationCollectorRejectsNonImmutableModuleProvenanceWithoutLeaks(t *testing.T) {
221+ repoRoot, err := filepath.Abs(filepath.Join("..", ".."))
222+ require.NoError(t, err)
223+
224+ for _, test := range []struct {
225+ name, version, revision, ref string
226+ }{
227+ {name: "branch selector", version: "main", ref: "main"},
228+ {name: "missing origin", version: "v0.8.5-0.20300102030405-bbd397409ebe"},
229+ {name: "named origin ref", version: "v0.8.5-0.20300102030405-bbd397409ebe", revision: "bbd397409ebed75a5979c1e4566a2ef319f6a484", ref: "main"},
230+ } {
231+ t.Run(test.name, func(t *testing.T) {
232+ temp := t.TempDir()
233+ runtime := filepath.Join(temp, "cef-147-runtime")
234+ require.NoError(t, os.Mkdir(runtime, 0o755))
235+ binary := filepath.Join(temp, "dumber")
236+ require.NoError(t, os.WriteFile(binary, collectorTestBinary(validFirstPresentationLog), 0o755))
237+
238+ goBin := collectorProvenanceGo(t, temp, test.version, test.revision, test.ref)
239+ output := filepath.Join(temp, "artifacts")
240+ cmd := exec.Command(filepath.Join(repoRoot, "scripts", "collect_first_presentation.sh"))
241+ cmd.Dir = repoRoot
242+ cmd.Env = append(os.Environ(),
243+ "DISPLAY=:test",
244+ "DUMBER_CEF_DIR="+runtime,
245+ "DUMBER_FIRST_PRESENTATION_BIN="+binary,
246+ "DUMBER_FIRST_PRESENTATION_OUTPUT="+output,
247+ "PATH="+filepath.Dir(goBin)+":"+os.Getenv("PATH"),
248+ )
249+ result, runErr := cmd.CombinedOutput()
250+ require.Errorf(t, runErr, "collector accepted nonimmutable module provenance: %s", result)
251+ require.Contains(t, string(result), "immutable module provenance is unavailable")
252+ require.NotContains(t, string(result), temp)
253+ require.NoFileExists(t, filepath.Join(output, "metadata.json"))
254+ for _, name := range runArtifactNames() {
255+ require.NoFileExists(t, filepath.Join(output, name))
256+ }
257+ })
258+ }
259+}
260+
261+func collectorProvenanceGo(t *testing.T, temp, version, revision, ref string) string {
262+ t.Helper()
263+ infoPath := filepath.Join(temp, "module.info")
264+ info := map[string]any{"Version": version}
265+ if revision != "" {
266+ info["Origin"] = map[string]string{
267+ "VCS": "git", "URL": "https://github.com/bnema/purego-cef2gtk", "Hash": revision, "Ref": ref,
268+ }
269+ }
270+ infoJSON, err := json.Marshal(info)
271+ require.NoError(t, err)
272+ require.NoError(t, os.WriteFile(infoPath, infoJSON, 0o600))
273+
274+ selectedJSON, err := json.Marshal(map[string]string{
275+ "Path": "github.com/bnema/purego-cef2gtk", "Version": version,
276+ })
277+ require.NoError(t, err)
278+ downloadedJSON, err := json.Marshal(map[string]string{
279+ "Path": "github.com/bnema/purego-cef2gtk", "Version": version, "Info": infoPath,
280+ })
281+ require.NoError(t, err)
282+ binDir := filepath.Join(temp, "bin")
283+ require.NoError(t, os.Mkdir(binDir, 0o755))
284+ goBin := filepath.Join(binDir, "go")
285+ script := fmt.Sprintf(`#!/bin/sh
286+if [ "$1" = "list" ] && [ "$2" = "-m" ] && [ "$3" = "-json" ] && [ "$4" = "github.com/bnema/purego-cef2gtk" ]; then
287+ printf '%%s\n' '%s'
288+ exit 0
289+fi
290+if [ "$1" = "mod" ] && [ "$2" = "download" ] && [ "$3" = "-json" ] && [ "$4" = "github.com/bnema/purego-cef2gtk@%s" ]; then
291+ printf '%%s\n' '%s'
292+ exit 0
293+fi
294+exit 1
295+`, selectedJSON, version, downloadedJSON)
296+ require.NoError(t, os.WriteFile(goBin, []byte(script), 0o755))
297+ return goBin
298+}
299+
169 func TestFirstPresentationCollectorDefaultsToXDGStateEvidenceDirectory(t *testing.T) {300 func TestFirstPresentationCollectorDefaultsToXDGStateEvidenceDirectory(t *testing.T) {
170 repoRoot, err := filepath.Abs(filepath.Join("..", ".."))301 repoRoot, err := filepath.Abs(filepath.Join("..", ".."))
171 require.NoError(t, err)302 require.NoError(t, err)
M scripts/collect_first_presentation.sh +78 -9
@@ -31,8 +31,78 @@ else
3131 fi
3232 readonly output
3333 readonly upstream_module="github.com/bnema/purego-cef2gtk"
34-readonly upstream_tag="v0.8.4"
35-readonly upstream_revision="f217ece342dea3ef2a3f98671fcd16a39ad0037d"
34+
35+# Resolve the version selected by this checkout, then obtain its immutable VCS
36+# origin from Go's cached module metadata. Do not infer a revision from a tag,
37+# a branch, or a truncated pseudo-version suffix.
38+resolve_upstream_provenance() {
39+ local selected_metadata selected_version downloaded_metadata
40+
41+ selected_metadata="$(go list -m -json "$upstream_module" 2>/dev/null)" || {
42+ echo "first-presentation: immutable module provenance is unavailable" >&2
43+ exit 2
44+ }
45+ selected_version="$(python3 - "$upstream_module" "$selected_metadata" <<'PY'
46+import json, sys
47+try:
48+ metadata = json.loads(sys.argv[2])
49+ if metadata.get("Path") != sys.argv[1] or not isinstance(metadata.get("Version"), str):
50+ raise ValueError
51+ print(metadata["Version"])
52+except (AttributeError, TypeError, ValueError, json.JSONDecodeError):
53+ raise SystemExit("first-presentation: immutable module provenance is unavailable")
54+PY
55+)" || exit $?
56+ downloaded_metadata="$(go mod download -json "$upstream_module@$selected_version" 2>/dev/null)" || {
57+ echo "first-presentation: immutable module provenance is unavailable" >&2
58+ exit 2
59+ }
60+
61+ python3 - "$upstream_module" "$selected_metadata" "$downloaded_metadata" <<'PY'
62+import json, re, sys
63+
64+module, selected_raw, downloaded_raw = sys.argv[1:]
65+
66+def fail():
67+ # Do not expose Go cache locations or other machine-local values.
68+ raise SystemExit("first-presentation: immutable module provenance is unavailable")
69+
70+try:
71+ selected = json.loads(selected_raw)
72+ downloaded = json.loads(downloaded_raw)
73+ version = selected["Version"]
74+ if selected.get("Path") != module or downloaded.get("Path") != module:
75+ fail()
76+ if downloaded.get("Version") != version:
77+ fail()
78+ # A selected pseudo-version is an exact immutable selector, never a branch.
79+ match = re.fullmatch(r"(v\d+\.\d+\.\d+)-0\.\d{14}-([0-9a-f]{12})", version)
80+ if not match:
81+ fail()
82+ info_path = downloaded.get("Info")
83+ if not isinstance(info_path, str) or not info_path:
84+ fail()
85+ with open(info_path, encoding="utf-8") as info_file:
86+ info = json.load(info_file)
87+ origin = info.get("Origin") or downloaded.get("Origin")
88+ if info.get("Version") != version or not isinstance(origin, dict):
89+ fail()
90+ revision = origin.get("Hash")
91+ if origin.get("VCS") != "git" or origin.get("URL") != "https://github.com/bnema/purego-cef2gtk":
92+ fail()
93+ if not isinstance(revision, str) or not re.fullmatch(r"[0-9a-f]{40}", revision):
94+ fail()
95+ if not revision.startswith(match.group(2)):
96+ fail()
97+ # A named ref can move. Only the immutable hash itself is acceptable.
98+ if origin.get("Ref") not in (None, "", revision):
99+ fail()
100+except (AttributeError, KeyError, OSError, TypeError, ValueError, json.JSONDecodeError):
101+ fail()
102+
103+print("\t".join((version, match.group(1), revision)))
104+PY
105+}
36106
37107 # The artifact destination is caller-controlled. Never empty or recursively
38108 # clear it: collection only writes to a newly-created directory whose parent is
@@ -66,10 +136,9 @@ prepare_output
66136 [[ -x "$binary" ]] || { echo "first-presentation: executable not found: $binary" >&2; exit 2; }
67137 [[ -d "$runtime" ]] || { echo "first-presentation: CEF runtime not found: $runtime" >&2; exit 2; }
68138 [[ -n "${WAYLAND_DISPLAY:-}${DISPLAY:-}" ]] || { echo "first-presentation: a current Wayland/X11 display is required" >&2; exit 2; }
69-[[ "$(go list -m -f '{{.Version}}' "$upstream_module")" == "$upstream_tag" ]] || {
70- echo "first-presentation: expected $upstream_module@$upstream_tag" >&2
71- exit 2
72-}
139+upstream_provenance="$(resolve_upstream_provenance)" || exit $?
140+IFS=$'\t' read -r upstream_version upstream_tag upstream_revision <<<"$upstream_provenance"
141+readonly upstream_version upstream_tag upstream_revision
73142
74143 # Raw logs and temporary XDG homes may contain machine-local paths. Keep them
75144 # outside the committed artifact directory and always remove them.
@@ -80,9 +149,9 @@ cleanup_work_root() {
80149 rm -rf -- "$work_root"
81150 }
82151 trap cleanup_work_root EXIT
83-python3 - "$output/metadata.json" "$binary" "$timeout_seconds" "$upstream_module" "$upstream_tag" "$upstream_revision" <<'PY'
152+python3 - "$output/metadata.json" "$binary" "$timeout_seconds" "$upstream_module" "$upstream_version" "$upstream_tag" "$upstream_revision" <<'PY'
84153 import hashlib, json, os, platform, subprocess, sys
85-path, binary, timeout, upstream_module, upstream_tag, upstream_revision = sys.argv[1:]
154+path, binary, timeout, upstream_module, upstream_version, upstream_tag, upstream_revision = sys.argv[1:]
86155 with open(binary, "rb") as candidate:
87156 binary_sha256 = hashlib.file_digest(candidate, "sha256").hexdigest()
88157
@@ -102,7 +171,7 @@ json.dump({
102171 "binary": {"label": "dumber", "sha256": binary_sha256},
103172 "timeout_seconds": int(timeout),
104173 "measured_source_revision": subprocess.check_output(["git", "-c", f"safe.directory={os.getcwd()}", "rev-parse", "HEAD"], text=True).strip(),
105- "upstream": {"module": upstream_module, "tag": upstream_tag, "revision": upstream_revision},
174+ "upstream": {"module": upstream_module, "version": upstream_version, "tag": upstream_tag, "revision": upstream_revision},
106175 "comparison": {"os": os_label, "architecture": architecture, "display_protocol": display_protocol, "machine_gpu_profile": gpu_profile},
107176 "render_configuration": {"backend": "gdk-dmabuf", "buffer_sharing": "dmabuf", "renderer": "vulkan"}
108177 }, open(path, "w"), indent=2, sort_keys=True)
@@ -31,8 +31,78 @@ else
31 fi31 fi
32 readonly output32 readonly output
33 readonly upstream_module="github.com/bnema/purego-cef2gtk"33 readonly upstream_module="github.com/bnema/purego-cef2gtk"
34-readonly upstream_tag="v0.8.4"34+
35-readonly upstream_revision="f217ece342dea3ef2a3f98671fcd16a39ad0037d"35+# Resolve the version selected by this checkout, then obtain its immutable VCS
36+# origin from Go's cached module metadata. Do not infer a revision from a tag,
37+# a branch, or a truncated pseudo-version suffix.
38+resolve_upstream_provenance() {
39+ local selected_metadata selected_version downloaded_metadata
40+
41+ selected_metadata="$(go list -m -json "$upstream_module" 2>/dev/null)" || {
42+ echo "first-presentation: immutable module provenance is unavailable" >&2
43+ exit 2
44+ }
45+ selected_version="$(python3 - "$upstream_module" "$selected_metadata" <<'PY'
46+import json, sys
47+try:
48+ metadata = json.loads(sys.argv[2])
49+ if metadata.get("Path") != sys.argv[1] or not isinstance(metadata.get("Version"), str):
50+ raise ValueError
51+ print(metadata["Version"])
52+except (AttributeError, TypeError, ValueError, json.JSONDecodeError):
53+ raise SystemExit("first-presentation: immutable module provenance is unavailable")
54+PY
55+)" || exit $?
56+ downloaded_metadata="$(go mod download -json "$upstream_module@$selected_version" 2>/dev/null)" || {
57+ echo "first-presentation: immutable module provenance is unavailable" >&2
58+ exit 2
59+ }
60+
61+ python3 - "$upstream_module" "$selected_metadata" "$downloaded_metadata" <<'PY'
62+import json, re, sys
63+
64+module, selected_raw, downloaded_raw = sys.argv[1:]
65+
66+def fail():
67+ # Do not expose Go cache locations or other machine-local values.
68+ raise SystemExit("first-presentation: immutable module provenance is unavailable")
69+
70+try:
71+ selected = json.loads(selected_raw)
72+ downloaded = json.loads(downloaded_raw)
73+ version = selected["Version"]
74+ if selected.get("Path") != module or downloaded.get("Path") != module:
75+ fail()
76+ if downloaded.get("Version") != version:
77+ fail()
78+ # A selected pseudo-version is an exact immutable selector, never a branch.
79+ match = re.fullmatch(r"(v\d+\.\d+\.\d+)-0\.\d{14}-([0-9a-f]{12})", version)
80+ if not match:
81+ fail()
82+ info_path = downloaded.get("Info")
83+ if not isinstance(info_path, str) or not info_path:
84+ fail()
85+ with open(info_path, encoding="utf-8") as info_file:
86+ info = json.load(info_file)
87+ origin = info.get("Origin") or downloaded.get("Origin")
88+ if info.get("Version") != version or not isinstance(origin, dict):
89+ fail()
90+ revision = origin.get("Hash")
91+ if origin.get("VCS") != "git" or origin.get("URL") != "https://github.com/bnema/purego-cef2gtk":
92+ fail()
93+ if not isinstance(revision, str) or not re.fullmatch(r"[0-9a-f]{40}", revision):
94+ fail()
95+ if not revision.startswith(match.group(2)):
96+ fail()
97+ # A named ref can move. Only the immutable hash itself is acceptable.
98+ if origin.get("Ref") not in (None, "", revision):
99+ fail()
100+except (AttributeError, KeyError, OSError, TypeError, ValueError, json.JSONDecodeError):
101+ fail()
102+
103+print("\t".join((version, match.group(1), revision)))
104+PY
105+}
36 106
37 # The artifact destination is caller-controlled. Never empty or recursively107 # The artifact destination is caller-controlled. Never empty or recursively
38 # clear it: collection only writes to a newly-created directory whose parent is108 # clear it: collection only writes to a newly-created directory whose parent is
@@ -66,10 +136,9 @@ prepare_output
66 [[ -x "$binary" ]] || { echo "first-presentation: executable not found: $binary" >&2; exit 2; }136 [[ -x "$binary" ]] || { echo "first-presentation: executable not found: $binary" >&2; exit 2; }
67 [[ -d "$runtime" ]] || { echo "first-presentation: CEF runtime not found: $runtime" >&2; exit 2; }137 [[ -d "$runtime" ]] || { echo "first-presentation: CEF runtime not found: $runtime" >&2; exit 2; }
68 [[ -n "${WAYLAND_DISPLAY:-}${DISPLAY:-}" ]] || { echo "first-presentation: a current Wayland/X11 display is required" >&2; exit 2; }138 [[ -n "${WAYLAND_DISPLAY:-}${DISPLAY:-}" ]] || { echo "first-presentation: a current Wayland/X11 display is required" >&2; exit 2; }
69-[[ "$(go list -m -f '{{.Version}}' "$upstream_module")" == "$upstream_tag" ]] || {139+upstream_provenance="$(resolve_upstream_provenance)" || exit $?
70- echo "first-presentation: expected $upstream_module@$upstream_tag" >&2140+IFS=$'\t' read -r upstream_version upstream_tag upstream_revision <<<"$upstream_provenance"
71- exit 2141+readonly upstream_version upstream_tag upstream_revision
72-}
73 142
74 # Raw logs and temporary XDG homes may contain machine-local paths. Keep them143 # Raw logs and temporary XDG homes may contain machine-local paths. Keep them
75 # outside the committed artifact directory and always remove them.144 # outside the committed artifact directory and always remove them.
@@ -80,9 +149,9 @@ cleanup_work_root() {
80 rm -rf -- "$work_root"149 rm -rf -- "$work_root"
81 }150 }
82 trap cleanup_work_root EXIT151 trap cleanup_work_root EXIT
83-python3 - "$output/metadata.json" "$binary" "$timeout_seconds" "$upstream_module" "$upstream_tag" "$upstream_revision" <<'PY'152+python3 - "$output/metadata.json" "$binary" "$timeout_seconds" "$upstream_module" "$upstream_version" "$upstream_tag" "$upstream_revision" <<'PY'
84 import hashlib, json, os, platform, subprocess, sys153 import hashlib, json, os, platform, subprocess, sys
85-path, binary, timeout, upstream_module, upstream_tag, upstream_revision = sys.argv[1:]154+path, binary, timeout, upstream_module, upstream_version, upstream_tag, upstream_revision = sys.argv[1:]
86 with open(binary, "rb") as candidate:155 with open(binary, "rb") as candidate:
87 binary_sha256 = hashlib.file_digest(candidate, "sha256").hexdigest()156 binary_sha256 = hashlib.file_digest(candidate, "sha256").hexdigest()
88 157
@@ -102,7 +171,7 @@ json.dump({
102 "binary": {"label": "dumber", "sha256": binary_sha256},171 "binary": {"label": "dumber", "sha256": binary_sha256},
103 "timeout_seconds": int(timeout),172 "timeout_seconds": int(timeout),
104 "measured_source_revision": subprocess.check_output(["git", "-c", f"safe.directory={os.getcwd()}", "rev-parse", "HEAD"], text=True).strip(),173 "measured_source_revision": subprocess.check_output(["git", "-c", f"safe.directory={os.getcwd()}", "rev-parse", "HEAD"], text=True).strip(),
105- "upstream": {"module": upstream_module, "tag": upstream_tag, "revision": upstream_revision},174+ "upstream": {"module": upstream_module, "version": upstream_version, "tag": upstream_tag, "revision": upstream_revision},
106 "comparison": {"os": os_label, "architecture": architecture, "display_protocol": display_protocol, "machine_gpu_profile": gpu_profile},175 "comparison": {"os": os_label, "architecture": architecture, "display_protocol": display_protocol, "machine_gpu_profile": gpu_profile},
107 "render_configuration": {"backend": "gdk-dmabuf", "buffer_sharing": "dmabuf", "renderer": "vulkan"}176 "render_configuration": {"backend": "gdk-dmabuf", "buffer_sharing": "dmabuf", "renderer": "vulkan"}
108 }, open(path, "w"), indent=2, sort_keys=True)177 }, open(path, "w"), indent=2, sort_keys=True)
M vendor/github.com/bnema/purego-cef/cef/bridge.go +8 -13 generated file: collapsed
M vendor/github.com/bnema/purego-cef2gtk/internal/cefadapter/accelerated_paint.go +34 -37 generated file: collapsed
M vendor/github.com/bnema/purego-cef2gtk/internal/dmabuf/frame.go +38 -19 generated file: collapsed
M vendor/github.com/bnema/purego-cef2gtk/internal/gtkgdk/renderer.go +89 -69
@@ -96,29 +96,10 @@ type ownedFrame struct {
9696 SourceSize dmabuf.Size
9797 Format dmabuf.FourCC
9898 Modifier uint64
99- Planes []ownedPlane
99+ Plane ownedPlane
100100 onError func(error)
101101 }
102102
103-func (f *ownedFrame) borrowed() dmabuf.BorrowedFrame {
104- if f == nil {
105- return dmabuf.BorrowedFrame{}
106- }
107- planes := make([]dmabuf.Plane, len(f.Planes))
108- for i, plane := range f.Planes {
109- planes[i] = dmabuf.Plane{FD: plane.FD, Stride: plane.Stride, Offset: plane.Offset, Size: plane.Size}
110- }
111- return dmabuf.BorrowedFrame{
112- CodedSize: f.CodedSize,
113- VisibleRect: f.VisibleRect,
114- ContentRect: f.ContentRect,
115- SourceSize: f.SourceSize,
116- Format: f.Format,
117- Modifier: f.Modifier,
118- Planes: planes,
119- }
120-}
121-
122103 // Renderer owns a GtkPicture presenter and imports callback-scoped CEF DMABUFs
123104 // as GdkDmabufTexture instances. The initial implementation supports only
124105 // single-plane RGB frames. Duplicated FDs are handed to GTK with a native
@@ -132,7 +113,9 @@ type Renderer struct {
132113 formats dmabufFormatSet
133114 builder dmabufTextureBuilder
134115 current *ownedTexture
135- retired []*ownedTexture
116+ retired [retiredTextureLimit]*ownedTexture
117+ retiredStart int
118+ retiredCount int
136119 pictureSetPaintable func(*gdk.Texture)
137120 firstTextureSwapMu sync.Mutex
138121 firstTextureSwap func()
@@ -367,11 +350,11 @@ func (r *Renderer) ImportAndQueueAsync(info *cef.AcceleratedPaintInfo, onError f
367350 if r == nil {
368351 return ErrNilRenderer
369352 }
370- frame, err := cefadapter.BorrowedFrameFromAcceleratedPaint(info)
353+ frame, err := cefadapter.SinglePlaneFrameFromAcceleratedPaint(info)
371354 if err != nil {
372355 return err
373356 }
374- owned, err := r.duplicateFrame(frame)
357+ owned, err := r.duplicateSinglePlaneFrame(frame)
375358 if err != nil {
376359 return err
377360 }
@@ -385,11 +368,11 @@ func (r *Renderer) ImportAndQueueAsync(info *cef.AcceleratedPaintInfo, onError f
385368 // on the GTK main loop.
386369 func (r *Renderer) ImportAndQueueOnGTKThread(info *cef.AcceleratedPaintInfo) (queued gtkgl.QueuedFrame, retErr error) {
387370 start := time.Now()
388- frame, err := cefadapter.BorrowedFrameFromAcceleratedPaint(info)
371+ frame, err := cefadapter.SinglePlaneFrameFromAcceleratedPaint(info)
389372 if err != nil {
390373 return gtkgl.QueuedFrame{}, err
391374 }
392- owned, err := r.duplicateFrame(frame)
375+ owned, err := r.duplicateSinglePlaneFrame(frame)
393376 if err != nil {
394377 return gtkgl.QueuedFrame{}, err
395378 }
@@ -535,7 +518,24 @@ func (r *Renderer) importAndSwapOwnedFrame(frame *ownedFrame) error {
535518 return nil
536519 }
537520
538-func (r *Renderer) duplicateFrame(frame dmabuf.BorrowedFrame) (_ *ownedFrame, retErr error) {
521+// duplicateFrame keeps the slice-backed compatibility path for callers outside
522+// the GDK import hot path.
523+func (r *Renderer) duplicateFrame(frame dmabuf.BorrowedFrame) (*ownedFrame, error) {
524+ if err := frame.Validate(); err != nil {
525+ return nil, err
526+ }
527+ return r.duplicateSinglePlaneFrame(dmabuf.SinglePlaneFrame{
528+ CodedSize: frame.CodedSize,
529+ VisibleRect: frame.VisibleRect,
530+ ContentRect: frame.ContentRect,
531+ SourceSize: frame.SourceSize,
532+ Format: frame.Format,
533+ Modifier: frame.Modifier,
534+ Plane: frame.Planes[0],
535+ })
536+}
537+
538+func (r *Renderer) duplicateSinglePlaneFrame(frame dmabuf.SinglePlaneFrame) (_ *ownedFrame, retErr error) {
539539 if r == nil {
540540 return nil, ErrNilRenderer
541541 }
@@ -553,24 +553,19 @@ func (r *Renderer) duplicateFrame(frame dmabuf.BorrowedFrame) (_ *ownedFrame, re
553553 SourceSize: frame.SourceSize,
554554 Format: frame.Format,
555555 Modifier: frame.Modifier,
556- Planes: make([]ownedPlane, len(frame.Planes)),
557- }
558- for i := range owned.Planes {
559- owned.Planes[i].FD = -1
556+ Plane: ownedPlane{FD: -1},
560557 }
561558 defer func() {
562559 if retErr != nil {
563560 r.releaseOwnedFrame(owned)
564561 }
565562 }()
566- for i, plane := range frame.Planes {
567- ownedFD, err := dup(plane.FD)
568- if err != nil {
569- r.recordFDDupFailure()
570- return nil, err
571- }
572- owned.Planes[i] = ownedPlane{FD: ownedFD, Stride: plane.Stride, Offset: plane.Offset, Size: plane.Size}
563+ ownedFD, err := dup(frame.Plane.FD)
564+ if err != nil {
565+ r.recordFDDupFailure()
566+ return nil, err
573567 }
568+ owned.Plane = ownedPlane{FD: ownedFD, Stride: frame.Plane.Stride, Offset: frame.Plane.Offset, Size: frame.Plane.Size}
574569 return owned, nil
575570 }
576571
@@ -584,27 +579,26 @@ func (r *Renderer) buildTextureFromOwnedFrame(frame *ownedFrame) (built *ownedTe
584579 if frame == nil {
585580 return nil, dmabuf.ErrInvalidPlaneFD
586581 }
587- borrowed := frame.borrowed()
588- if err := borrowed.Validate(); err != nil {
582+ if err := frame.validate(); err != nil {
589583 return nil, err
590584 }
591- gdkFormat := gdkTextureFormat(borrowed.Format)
592- if r.formats != nil && !r.formats.Contains(uint32(gdkFormat), borrowed.Modifier) {
585+ gdkFormat := gdkTextureFormat(frame.Format)
586+ if r.formats != nil && !r.formats.Contains(uint32(gdkFormat), frame.Modifier) {
593587 r.recordUnsupportedFormat()
594- return nil, fmt.Errorf("%w: %s as %s modifier 0x%x", ErrUnsupportedFormat, borrowed.Format, gdkFormat, borrowed.Modifier)
588+ return nil, fmt.Errorf("%w: %s as %s modifier 0x%x", ErrUnsupportedFormat, frame.Format, gdkFormat, frame.Modifier)
595589 }
596- r.traceFrame(borrowed, gdkFormat)
590+ r.traceFrame(frame, gdkFormat)
597591 closeFD := r.closeFD
598592 if closeFD == nil {
599593 closeFD = unix.Close
600594 }
601595
602- ownedFD := borrowed.Planes[0].FD
596+ ownedFD := frame.Plane.FD
603597 textureOwnsFD := false
604598 defer func() {
605599 if !textureOwnsFD {
606600 _ = closeFD(ownedFD)
607- frame.Planes[0].FD = -1
601+ frame.Plane.FD = -1
608602 }
609603 }()
610604 destroyNotify, destroyNotifyErr := resolveDestroyNotify()
@@ -613,11 +607,11 @@ func (r *Renderer) buildTextureFromOwnedFrame(frame *ownedFrame) (built *ownedTe
613607 return nil, fmt.Errorf("%w: native close GDestroyNotify unavailable: %w", ErrTextureBuildFailed, destroyNotifyErr)
614608 }
615609
616- plane := borrowed.Planes[0]
617- r.builder.SetWidth(uint(borrowed.CodedSize.Width))
618- r.builder.SetHeight(uint(borrowed.CodedSize.Height))
610+ plane := frame.Plane
611+ r.builder.SetWidth(uint(frame.CodedSize.Width))
612+ r.builder.SetHeight(uint(frame.CodedSize.Height))
619613 r.builder.SetFourcc(uint32(gdkFormat))
620- r.builder.SetModifier(borrowed.Modifier)
614+ r.builder.SetModifier(frame.Modifier)
621615 r.builder.SetPremultiplied(false)
622616 r.builder.SetNPlanes(1)
623617 if r.display != nil {
@@ -653,9 +647,9 @@ func (r *Renderer) buildTextureFromOwnedFrame(frame *ownedFrame) (built *ownedTe
653647 return nil, ErrTextureBuildFailed
654648 }
655649 textureOwnsFD = true
656- frame.Planes[0].FD = -1
650+ frame.Plane.FD = -1
657651 r.recordTextureBuilt()
658- r.traceTexturePresent(borrowed, gdkFormat, texture)
652+ r.traceTexturePresent(frame, gdkFormat, texture)
659653 return &ownedTexture{texture: texture}, nil
660654 }
661655
@@ -698,6 +692,22 @@ func (r *Renderer) releaseOwnedFrame(frame *ownedFrame) {
698692 closeOwnedFrame(frame, closeFD)
699693 }
700694
695+func (f *ownedFrame) validate() error {
696+ if f == nil {
697+ return dmabuf.ErrInvalidPlaneFD
698+ }
699+ return (dmabuf.SinglePlaneFrame{
700+ CodedSize: f.CodedSize,
701+ Format: f.Format,
702+ Plane: dmabuf.Plane{
703+ FD: f.Plane.FD,
704+ Stride: f.Plane.Stride,
705+ Offset: f.Plane.Offset,
706+ Size: f.Plane.Size,
707+ },
708+ }).Validate()
709+}
710+
701711 func closeOwnedFrame(frame *ownedFrame, closeFD func(int) error) {
702712 if frame == nil {
703713 return
@@ -705,11 +715,9 @@ func closeOwnedFrame(frame *ownedFrame, closeFD func(int) error) {
705715 if closeFD == nil {
706716 closeFD = unix.Close
707717 }
708- for i := range frame.Planes {
709- if frame.Planes[i].FD >= 0 {
710- _ = closeFD(frame.Planes[i].FD)
711- frame.Planes[i].FD = -1
712- }
718+ if frame.Plane.FD >= 0 {
719+ _ = closeFD(frame.Plane.FD)
720+ frame.Plane.FD = -1
713721 }
714722 }
715723
@@ -717,25 +725,37 @@ func (r *Renderer) retireOwnedTexture(owned *ownedTexture) {
717725 if r == nil || owned == nil {
718726 return
719727 }
720- r.retired = append(r.retired, owned)
721- for len(r.retired) > retiredTextureLimit {
722- oldest := r.retired[0]
723- copy(r.retired, r.retired[1:])
724- r.retired[len(r.retired)-1] = nil
725- r.retired = r.retired[:len(r.retired)-1]
728+ if r.retiredCount == retiredTextureLimit {
729+ oldest := r.retired[r.retiredStart]
730+ r.retired[r.retiredStart] = owned
731+ r.retiredStart = (r.retiredStart + 1) % retiredTextureLimit
726732 r.releaseOwnedTexture(oldest)
733+ return
734+ }
735+ index := (r.retiredStart + r.retiredCount) % retiredTextureLimit
736+ r.retired[index] = owned
737+ r.retiredCount++
738+}
739+
740+func (r *Renderer) retiredAt(offset int) *ownedTexture {
741+ if r == nil || offset < 0 || offset >= r.retiredCount {
742+ return nil
727743 }
744+ return r.retired[(r.retiredStart+offset)%retiredTextureLimit]
728745 }
729746
730747 func (r *Renderer) releaseRetiredTextures() {
731748 if r == nil {
732749 return
733750 }
734- for _, owned := range r.retired {
735- r.releaseOwnedTexture(owned)
751+ for r.retiredCount > 0 {
752+ index := r.retiredStart
753+ r.releaseOwnedTexture(r.retired[index])
754+ r.retired[index] = nil
755+ r.retiredStart = (r.retiredStart + 1) % retiredTextureLimit
756+ r.retiredCount--
736757 }
737- clear(r.retired)
738- r.retired = nil
758+ r.retiredStart = 0
739759 }
740760
741761 func (r *Renderer) releaseOwnedTexture(owned *ownedTexture) {
@@ -762,11 +782,11 @@ func gdkTextureFormat(format dmabuf.FourCC) dmabuf.FourCC {
762782 }
763783 }
764784
765-func (r *Renderer) traceFrame(frame dmabuf.BorrowedFrame, gdkFormat dmabuf.FourCC) {
785+func (r *Renderer) traceFrame(frame *ownedFrame, gdkFormat dmabuf.FourCC) {
766786 if os.Getenv("PUREGO_CEF2GTK_GDK_TRACE") == "" || r == nil || r.frameTraces.Add(1) > 8 {
767787 return
768788 }
769- plane := frame.Planes[0]
789+ plane := frame.Plane
770790 fmt.Fprintf(os.Stderr,
771791 "cef2gtk-gdk-dmabuf frame coded=%dx%d visible=%dx%d+%d+%d content=%dx%d+%d+%d source=%dx%d cef_format=%s gdk_format=%s modifier=0x%x fd=%d stride=%d offset=%d size=%d\n",
772792 frame.CodedSize.Width, frame.CodedSize.Height,
@@ -776,7 +796,7 @@ func (r *Renderer) traceFrame(frame dmabuf.BorrowedFrame, gdkFormat dmabuf.FourC
776796 frame.Format, gdkFormat, frame.Modifier, plane.FD, plane.Stride, plane.Offset, plane.Size)
777797 }
778798
779-func (r *Renderer) traceTexturePresent(frame dmabuf.BorrowedFrame, gdkFormat dmabuf.FourCC, texture *gdk.Texture) {
799+func (r *Renderer) traceTexturePresent(frame *ownedFrame, gdkFormat dmabuf.FourCC, texture *gdk.Texture) {
780800 if os.Getenv("PUREGO_CEF2GTK_GDK_TRACE") == "" || r == nil || r.textureTraces.Add(1) > 8 {
781801 return
782802 }
@@ -96,29 +96,10 @@ type ownedFrame struct {
96 SourceSize dmabuf.Size96 SourceSize dmabuf.Size
97 Format dmabuf.FourCC97 Format dmabuf.FourCC
98 Modifier uint6498 Modifier uint64
99- Planes []ownedPlane99+ Plane ownedPlane
100 onError func(error)100 onError func(error)
101 }101 }
102 102
103-func (f *ownedFrame) borrowed() dmabuf.BorrowedFrame {
104- if f == nil {
105- return dmabuf.BorrowedFrame{}
106- }
107- planes := make([]dmabuf.Plane, len(f.Planes))
108- for i, plane := range f.Planes {
109- planes[i] = dmabuf.Plane{FD: plane.FD, Stride: plane.Stride, Offset: plane.Offset, Size: plane.Size}
110- }
111- return dmabuf.BorrowedFrame{
112- CodedSize: f.CodedSize,
113- VisibleRect: f.VisibleRect,
114- ContentRect: f.ContentRect,
115- SourceSize: f.SourceSize,
116- Format: f.Format,
117- Modifier: f.Modifier,
118- Planes: planes,
119- }
120-}
121-
122 // Renderer owns a GtkPicture presenter and imports callback-scoped CEF DMABUFs103 // Renderer owns a GtkPicture presenter and imports callback-scoped CEF DMABUFs
123 // as GdkDmabufTexture instances. The initial implementation supports only104 // as GdkDmabufTexture instances. The initial implementation supports only
124 // single-plane RGB frames. Duplicated FDs are handed to GTK with a native105 // single-plane RGB frames. Duplicated FDs are handed to GTK with a native
@@ -132,7 +113,9 @@ type Renderer struct {
132 formats dmabufFormatSet113 formats dmabufFormatSet
133 builder dmabufTextureBuilder114 builder dmabufTextureBuilder
134 current *ownedTexture115 current *ownedTexture
135- retired []*ownedTexture116+ retired [retiredTextureLimit]*ownedTexture
117+ retiredStart int
118+ retiredCount int
136 pictureSetPaintable func(*gdk.Texture)119 pictureSetPaintable func(*gdk.Texture)
137 firstTextureSwapMu sync.Mutex120 firstTextureSwapMu sync.Mutex
138 firstTextureSwap func()121 firstTextureSwap func()
@@ -367,11 +350,11 @@ func (r *Renderer) ImportAndQueueAsync(info *cef.AcceleratedPaintInfo, onError f
367 if r == nil {350 if r == nil {
368 return ErrNilRenderer351 return ErrNilRenderer
369 }352 }
370- frame, err := cefadapter.BorrowedFrameFromAcceleratedPaint(info)353+ frame, err := cefadapter.SinglePlaneFrameFromAcceleratedPaint(info)
371 if err != nil {354 if err != nil {
372 return err355 return err
373 }356 }
374- owned, err := r.duplicateFrame(frame)357+ owned, err := r.duplicateSinglePlaneFrame(frame)
375 if err != nil {358 if err != nil {
376 return err359 return err
377 }360 }
@@ -385,11 +368,11 @@ func (r *Renderer) ImportAndQueueAsync(info *cef.AcceleratedPaintInfo, onError f
385 // on the GTK main loop.368 // on the GTK main loop.
386 func (r *Renderer) ImportAndQueueOnGTKThread(info *cef.AcceleratedPaintInfo) (queued gtkgl.QueuedFrame, retErr error) {369 func (r *Renderer) ImportAndQueueOnGTKThread(info *cef.AcceleratedPaintInfo) (queued gtkgl.QueuedFrame, retErr error) {
387 start := time.Now()370 start := time.Now()
388- frame, err := cefadapter.BorrowedFrameFromAcceleratedPaint(info)371+ frame, err := cefadapter.SinglePlaneFrameFromAcceleratedPaint(info)
389 if err != nil {372 if err != nil {
390 return gtkgl.QueuedFrame{}, err373 return gtkgl.QueuedFrame{}, err
391 }374 }
392- owned, err := r.duplicateFrame(frame)375+ owned, err := r.duplicateSinglePlaneFrame(frame)
393 if err != nil {376 if err != nil {
394 return gtkgl.QueuedFrame{}, err377 return gtkgl.QueuedFrame{}, err
395 }378 }
@@ -535,7 +518,24 @@ func (r *Renderer) importAndSwapOwnedFrame(frame *ownedFrame) error {
535 return nil518 return nil
536 }519 }
537 520
538-func (r *Renderer) duplicateFrame(frame dmabuf.BorrowedFrame) (_ *ownedFrame, retErr error) {521+// duplicateFrame keeps the slice-backed compatibility path for callers outside
522+// the GDK import hot path.
523+func (r *Renderer) duplicateFrame(frame dmabuf.BorrowedFrame) (*ownedFrame, error) {
524+ if err := frame.Validate(); err != nil {
525+ return nil, err
526+ }
527+ return r.duplicateSinglePlaneFrame(dmabuf.SinglePlaneFrame{
528+ CodedSize: frame.CodedSize,
529+ VisibleRect: frame.VisibleRect,
530+ ContentRect: frame.ContentRect,
531+ SourceSize: frame.SourceSize,
532+ Format: frame.Format,
533+ Modifier: frame.Modifier,
534+ Plane: frame.Planes[0],
535+ })
536+}
537+
538+func (r *Renderer) duplicateSinglePlaneFrame(frame dmabuf.SinglePlaneFrame) (_ *ownedFrame, retErr error) {
539 if r == nil {539 if r == nil {
540 return nil, ErrNilRenderer540 return nil, ErrNilRenderer
541 }541 }
@@ -553,24 +553,19 @@ func (r *Renderer) duplicateFrame(frame dmabuf.BorrowedFrame) (_ *ownedFrame, re
553 SourceSize: frame.SourceSize,553 SourceSize: frame.SourceSize,
554 Format: frame.Format,554 Format: frame.Format,
555 Modifier: frame.Modifier,555 Modifier: frame.Modifier,
556- Planes: make([]ownedPlane, len(frame.Planes)),556+ Plane: ownedPlane{FD: -1},
557- }
558- for i := range owned.Planes {
559- owned.Planes[i].FD = -1
560 }557 }
561 defer func() {558 defer func() {
562 if retErr != nil {559 if retErr != nil {
563 r.releaseOwnedFrame(owned)560 r.releaseOwnedFrame(owned)
564 }561 }
565 }()562 }()
566- for i, plane := range frame.Planes {563+ ownedFD, err := dup(frame.Plane.FD)
567- ownedFD, err := dup(plane.FD)564+ if err != nil {
568- if err != nil {565+ r.recordFDDupFailure()
569- r.recordFDDupFailure()566+ return nil, err
570- return nil, err
571- }
572- owned.Planes[i] = ownedPlane{FD: ownedFD, Stride: plane.Stride, Offset: plane.Offset, Size: plane.Size}
573 }567 }
568+ owned.Plane = ownedPlane{FD: ownedFD, Stride: frame.Plane.Stride, Offset: frame.Plane.Offset, Size: frame.Plane.Size}
574 return owned, nil569 return owned, nil
575 }570 }
576 571
@@ -584,27 +579,26 @@ func (r *Renderer) buildTextureFromOwnedFrame(frame *ownedFrame) (built *ownedTe
584 if frame == nil {579 if frame == nil {
585 return nil, dmabuf.ErrInvalidPlaneFD580 return nil, dmabuf.ErrInvalidPlaneFD
586 }581 }
587- borrowed := frame.borrowed()582+ if err := frame.validate(); err != nil {
588- if err := borrowed.Validate(); err != nil {
589 return nil, err583 return nil, err
590 }584 }
591- gdkFormat := gdkTextureFormat(borrowed.Format)585+ gdkFormat := gdkTextureFormat(frame.Format)
592- if r.formats != nil && !r.formats.Contains(uint32(gdkFormat), borrowed.Modifier) {586+ if r.formats != nil && !r.formats.Contains(uint32(gdkFormat), frame.Modifier) {
593 r.recordUnsupportedFormat()587 r.recordUnsupportedFormat()
594- return nil, fmt.Errorf("%w: %s as %s modifier 0x%x", ErrUnsupportedFormat, borrowed.Format, gdkFormat, borrowed.Modifier)588+ return nil, fmt.Errorf("%w: %s as %s modifier 0x%x", ErrUnsupportedFormat, frame.Format, gdkFormat, frame.Modifier)
595 }589 }
596- r.traceFrame(borrowed, gdkFormat)590+ r.traceFrame(frame, gdkFormat)
597 closeFD := r.closeFD591 closeFD := r.closeFD
598 if closeFD == nil {592 if closeFD == nil {
599 closeFD = unix.Close593 closeFD = unix.Close
600 }594 }
601 595
602- ownedFD := borrowed.Planes[0].FD596+ ownedFD := frame.Plane.FD
603 textureOwnsFD := false597 textureOwnsFD := false
604 defer func() {598 defer func() {
605 if !textureOwnsFD {599 if !textureOwnsFD {
606 _ = closeFD(ownedFD)600 _ = closeFD(ownedFD)
607- frame.Planes[0].FD = -1601+ frame.Plane.FD = -1
608 }602 }
609 }()603 }()
610 destroyNotify, destroyNotifyErr := resolveDestroyNotify()604 destroyNotify, destroyNotifyErr := resolveDestroyNotify()
@@ -613,11 +607,11 @@ func (r *Renderer) buildTextureFromOwnedFrame(frame *ownedFrame) (built *ownedTe
613 return nil, fmt.Errorf("%w: native close GDestroyNotify unavailable: %w", ErrTextureBuildFailed, destroyNotifyErr)607 return nil, fmt.Errorf("%w: native close GDestroyNotify unavailable: %w", ErrTextureBuildFailed, destroyNotifyErr)
614 }608 }
615 609
616- plane := borrowed.Planes[0]610+ plane := frame.Plane
617- r.builder.SetWidth(uint(borrowed.CodedSize.Width))611+ r.builder.SetWidth(uint(frame.CodedSize.Width))
618- r.builder.SetHeight(uint(borrowed.CodedSize.Height))612+ r.builder.SetHeight(uint(frame.CodedSize.Height))
619 r.builder.SetFourcc(uint32(gdkFormat))613 r.builder.SetFourcc(uint32(gdkFormat))
620- r.builder.SetModifier(borrowed.Modifier)614+ r.builder.SetModifier(frame.Modifier)
621 r.builder.SetPremultiplied(false)615 r.builder.SetPremultiplied(false)
622 r.builder.SetNPlanes(1)616 r.builder.SetNPlanes(1)
623 if r.display != nil {617 if r.display != nil {
@@ -653,9 +647,9 @@ func (r *Renderer) buildTextureFromOwnedFrame(frame *ownedFrame) (built *ownedTe
653 return nil, ErrTextureBuildFailed647 return nil, ErrTextureBuildFailed
654 }648 }
655 textureOwnsFD = true649 textureOwnsFD = true
656- frame.Planes[0].FD = -1650+ frame.Plane.FD = -1
657 r.recordTextureBuilt()651 r.recordTextureBuilt()
658- r.traceTexturePresent(borrowed, gdkFormat, texture)652+ r.traceTexturePresent(frame, gdkFormat, texture)
659 return &ownedTexture{texture: texture}, nil653 return &ownedTexture{texture: texture}, nil
660 }654 }
661 655
@@ -698,6 +692,22 @@ func (r *Renderer) releaseOwnedFrame(frame *ownedFrame) {
698 closeOwnedFrame(frame, closeFD)692 closeOwnedFrame(frame, closeFD)
699 }693 }
700 694
695+func (f *ownedFrame) validate() error {
696+ if f == nil {
697+ return dmabuf.ErrInvalidPlaneFD
698+ }
699+ return (dmabuf.SinglePlaneFrame{
700+ CodedSize: f.CodedSize,
701+ Format: f.Format,
702+ Plane: dmabuf.Plane{
703+ FD: f.Plane.FD,
704+ Stride: f.Plane.Stride,
705+ Offset: f.Plane.Offset,
706+ Size: f.Plane.Size,
707+ },
708+ }).Validate()
709+}
710+
701 func closeOwnedFrame(frame *ownedFrame, closeFD func(int) error) {711 func closeOwnedFrame(frame *ownedFrame, closeFD func(int) error) {
702 if frame == nil {712 if frame == nil {
703 return713 return
@@ -705,11 +715,9 @@ func closeOwnedFrame(frame *ownedFrame, closeFD func(int) error) {
705 if closeFD == nil {715 if closeFD == nil {
706 closeFD = unix.Close716 closeFD = unix.Close
707 }717 }
708- for i := range frame.Planes {718+ if frame.Plane.FD >= 0 {
709- if frame.Planes[i].FD >= 0 {719+ _ = closeFD(frame.Plane.FD)
710- _ = closeFD(frame.Planes[i].FD)720+ frame.Plane.FD = -1
711- frame.Planes[i].FD = -1
712- }
713 }721 }
714 }722 }
715 723
@@ -717,25 +725,37 @@ func (r *Renderer) retireOwnedTexture(owned *ownedTexture) {
717 if r == nil || owned == nil {725 if r == nil || owned == nil {
718 return726 return
719 }727 }
720- r.retired = append(r.retired, owned)728+ if r.retiredCount == retiredTextureLimit {
721- for len(r.retired) > retiredTextureLimit {729+ oldest := r.retired[r.retiredStart]
722- oldest := r.retired[0]730+ r.retired[r.retiredStart] = owned
723- copy(r.retired, r.retired[1:])731+ r.retiredStart = (r.retiredStart + 1) % retiredTextureLimit
724- r.retired[len(r.retired)-1] = nil
725- r.retired = r.retired[:len(r.retired)-1]
726 r.releaseOwnedTexture(oldest)732 r.releaseOwnedTexture(oldest)
733+ return
734+ }
735+ index := (r.retiredStart + r.retiredCount) % retiredTextureLimit
736+ r.retired[index] = owned
737+ r.retiredCount++
738+}
739+
740+func (r *Renderer) retiredAt(offset int) *ownedTexture {
741+ if r == nil || offset < 0 || offset >= r.retiredCount {
742+ return nil
727 }743 }
744+ return r.retired[(r.retiredStart+offset)%retiredTextureLimit]
728 }745 }
729 746
730 func (r *Renderer) releaseRetiredTextures() {747 func (r *Renderer) releaseRetiredTextures() {
731 if r == nil {748 if r == nil {
732 return749 return
733 }750 }
734- for _, owned := range r.retired {751+ for r.retiredCount > 0 {
735- r.releaseOwnedTexture(owned)752+ index := r.retiredStart
753+ r.releaseOwnedTexture(r.retired[index])
754+ r.retired[index] = nil
755+ r.retiredStart = (r.retiredStart + 1) % retiredTextureLimit
756+ r.retiredCount--
736 }757 }
737- clear(r.retired)758+ r.retiredStart = 0
738- r.retired = nil
739 }759 }
740 760
741 func (r *Renderer) releaseOwnedTexture(owned *ownedTexture) {761 func (r *Renderer) releaseOwnedTexture(owned *ownedTexture) {
@@ -762,11 +782,11 @@ func gdkTextureFormat(format dmabuf.FourCC) dmabuf.FourCC {
762 }782 }
763 }783 }
764 784
765-func (r *Renderer) traceFrame(frame dmabuf.BorrowedFrame, gdkFormat dmabuf.FourCC) {785+func (r *Renderer) traceFrame(frame *ownedFrame, gdkFormat dmabuf.FourCC) {
766 if os.Getenv("PUREGO_CEF2GTK_GDK_TRACE") == "" || r == nil || r.frameTraces.Add(1) > 8 {786 if os.Getenv("PUREGO_CEF2GTK_GDK_TRACE") == "" || r == nil || r.frameTraces.Add(1) > 8 {
767 return787 return
768 }788 }
769- plane := frame.Planes[0]789+ plane := frame.Plane
770 fmt.Fprintf(os.Stderr,790 fmt.Fprintf(os.Stderr,
771 "cef2gtk-gdk-dmabuf frame coded=%dx%d visible=%dx%d+%d+%d content=%dx%d+%d+%d source=%dx%d cef_format=%s gdk_format=%s modifier=0x%x fd=%d stride=%d offset=%d size=%d\n",791 "cef2gtk-gdk-dmabuf frame coded=%dx%d visible=%dx%d+%d+%d content=%dx%d+%d+%d source=%dx%d cef_format=%s gdk_format=%s modifier=0x%x fd=%d stride=%d offset=%d size=%d\n",
772 frame.CodedSize.Width, frame.CodedSize.Height,792 frame.CodedSize.Width, frame.CodedSize.Height,
@@ -776,7 +796,7 @@ func (r *Renderer) traceFrame(frame dmabuf.BorrowedFrame, gdkFormat dmabuf.FourC
776 frame.Format, gdkFormat, frame.Modifier, plane.FD, plane.Stride, plane.Offset, plane.Size)796 frame.Format, gdkFormat, frame.Modifier, plane.FD, plane.Stride, plane.Offset, plane.Size)
777 }797 }
778 798
779-func (r *Renderer) traceTexturePresent(frame dmabuf.BorrowedFrame, gdkFormat dmabuf.FourCC, texture *gdk.Texture) {799+func (r *Renderer) traceTexturePresent(frame *ownedFrame, gdkFormat dmabuf.FourCC, texture *gdk.Texture) {
780 if os.Getenv("PUREGO_CEF2GTK_GDK_TRACE") == "" || r == nil || r.textureTraces.Add(1) > 8 {800 if os.Getenv("PUREGO_CEF2GTK_GDK_TRACE") == "" || r == nil || r.textureTraces.Add(1) > 8 {
781 return801 return
782 }802 }
M vendor/github.com/bnema/purego-pipewire/internal/core/player.go +5 -0 generated file: collapsed
M vendor/github.com/bnema/purego-pipewire/internal/core/player_rt.go +10 -6 generated file: collapsed
M vendor/github.com/bnema/purego-pipewire/internal/core/pwbuffer.go +66 -32 generated file: collapsed
M vendor/github.com/bnema/purego-sqlite/driver/driver.go +268 -63 generated file: collapsed
M vendor/github.com/bnema/purego-sqlite/internal/core/db.go +8 -0 generated file: collapsed
M vendor/github.com/bnema/purego-sqlite/internal/core/rows.go +13 -0 generated file: collapsed
M vendor/github.com/bnema/purego-sqlite/internal/loader/loader.go +23 -5 generated file: collapsed
M vendor/github.com/bnema/purego-sqlite/internal/ports/in/ports_gen.go +3 -0 generated file: collapsed
M vendor/github.com/bnema/puregotk/internal/core/core.go +197 -4 generated file: collapsed
M vendor/github.com/bnema/puregotk/pkg/core/core.go +10 -0 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-about-dialog.go +99 -64 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-about-window.go +95 -62 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-accent-color.go +7 -15 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-action-row.go +33 -29 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-alert-dialog.go +66 -47 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-animation-target.go +10 -27 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-animation-util.go +4 -12 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-animation.go +24 -26 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-application-window.go +14 -22 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-application.go +3 -15 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-avatar.go +22 -25 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-banner.go +23 -26 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-bin.go +5 -16 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-bottom-sheet.go +47 -38 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-breakpoint-bin.go +10 -19 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-breakpoint.go +33 -37 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-button-content.go +18 -22 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-button-row.go +10 -18 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-carousel-indicator-dots.go +5 -16 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-carousel-indicator-lines.go +5 -16 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-carousel.go +47 -37 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-clamp-layout.go +14 -20 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-clamp-scrollable.go +17 -22 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-clamp.go +17 -22 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-combo-row.go +34 -33 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-dialog.go +45 -38 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-easing.go +3 -13 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-entry-row.go +40 -33 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-enum-list-model.go +13 -22 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-expander-row.go +40 -33 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-flap.go +61 -48 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-fold-threshold-policy.go +10 -1 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-header-bar.go +36 -33 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-inline-view-switcher.go +18 -24 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-layout-slot.go +4 -15 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-layout.go +7 -17 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-leaflet.go +69 -56 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-length-unit.go +5 -14 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-main.go +5 -15 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-message-dialog.go +63 -44 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-multi-layout-view.go +17 -23 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-navigation-direction.go +10 -1 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-navigation-split-view.go +36 -32 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-navigation-view.go +60 -49 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-overlay-split-view.go +48 -38 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-password-entry-row.go +2 -13 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-preferences-dialog.go +23 -25 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-preferences-group.go +24 -26 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-preferences-page.go +38 -33 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-preferences-row.go +18 -22 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-preferences-window.go +31 -29 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-shortcut-label.go +10 -18 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-shortcuts-dialog.go +4 -15 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-shortcuts-item.go +23 -25 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-shortcuts-section.go +8 -17 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-sidebar-item.go +45 -37 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-sidebar-section.go +24 -27 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-sidebar.go +41 -39 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-spin-row.go +40 -34 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-spinner-paintable.go +5 -16 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-spinner.go +2 -13 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-split-button.go +39 -34 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-spring-animation.go +34 -30 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-spring-params.go +17 -21 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-squeezer.go +49 -44 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-status-page.go +20 -24 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-style-manager.go +25 -28 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-swipe-tracker.go +33 -30 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-swipeable.go +33 -21 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-switch-row.go +6 -16 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-tab-bar.go +35 -32 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-tab-button.go +5 -16 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-tab-overview.go +45 -37 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-tab-view.go +123 -87 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-timed-animation.go +30 -28 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-toast-overlay.go +9 -18 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-toast.go +41 -36 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-toggle-group.go +64 -51 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-toolbar-view.go +40 -35 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-version.go +7 -16 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-view-stack.go +78 -62 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-view-switcher-bar.go +9 -18 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-view-switcher-sidebar.go +15 -22 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-view-switcher-title.go +19 -23 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-view-switcher.go +10 -20 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-window-title.go +10 -18 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-window.go +14 -22 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-wrap-box.go +66 -46 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/adw/adw-wrap-layout.go +57 -46 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/cairo/main.go +36 -79 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkapplaunchcontext.go +10 -17 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkcairo.go +12 -16 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkcairocontext.go +3 -13 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkcicpparams.go +20 -25 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkclipboard.go +34 -32 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkcolorstate.go +12 -16 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkcontentdeserializer.go +26 -27 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkcontentformats.go +28 -31 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkcontentprovider.go +23 -28 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkcontentserializer.go +26 -27 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkcursor.go +12 -21 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkdevice.go +36 -33 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkdevicepad.go +27 -22 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkdevicetool.go +10 -18 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkdisplay.go +51 -43 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkdisplaymanager.go +10 -20 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkdmabuftexture.go +3 -13 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkdmabuftexturebuilder.go +53 -41 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkdrag.go +20 -28 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkdragsurface.go +6 -14 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkdragsurfacesize.go +3 -13 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkdrawcontext.go +11 -18 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkdrop.go +19 -24 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkenums.go +21 -1 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkevents.go +120 -118 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkframeclock.go +22 -24 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkframetimings.go +17 -20 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkglcontext.go +40 -36 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkgltexture.go +4 -15 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkgltexturebuilder.go +41 -35 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkkeys.go +19 -22 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkmemorytexture.go +2 -13 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkmemorytexturebuilder.go +42 -35 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkmonitor.go +27 -27 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkpaintable.go +63 -33 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkpango.go +4 -12 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkpixbuf.go +2 -12 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkpopup.go +47 -26 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkpopuplayout.go +36 -32 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkrgba.go +19 -21 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkseat.go +11 -20 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdksnapshot.go +7 -0 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdksurface.go +46 -40 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdktexture.go +27 -31 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdktoplevel.go +157 -66 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdktoplevellayout.go +24 -25 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdktoplevelsize.go +9 -16 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdktypes.go +95 -72 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdk/gdkvulkancontext.go +3 -13 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdkpixbuf/gdk-pixbuf-animation.go +26 -32 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdkpixbuf/gdk-pixbuf-core.go +9 -0 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdkpixbuf/gdk-pixbuf-io.go +25 -23 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdkpixbuf/gdk-pixbuf-loader.go +13 -22 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdkpixbuf/gdk-pixbuf-simple-anim.go +8 -17 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdkpixbuf/gdk-pixbuf-transform.go +11 -1 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdkpixbuf/gdk-pixbuf.go +102 -79 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gdkpixbuf/main.go +5 -17 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gaction.go +59 -31 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gactiongroup.go +96 -39 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gactionmap.go +33 -21 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gappinfo.go +244 -116 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gapplication.go +79 -55 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gapplicationcommandline.go +31 -27 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gasyncinitable.go +25 -22 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gasyncresult.go +26 -19 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gbufferedinputstream.go +26 -29 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gbufferedoutputstream.go +11 -18 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gbytesicon.go +4 -15 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gcancellable.go +26 -27 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gcharsetconverter.go +8 -17 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gcontenttype.go +30 -26 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gconverter.go +23 -20 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gconverterinputstream.go +3 -14 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gconverteroutputstream.go +3 -14 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gcredentials.go +12 -21 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdatagrambased.go +45 -30 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdatainputstream.go +31 -35 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdataoutputstream.go +14 -23 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdbusactiongroup.go +2 -13 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdbusaddress.go +10 -17 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdbusauthobserver.go +6 -16 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdbusconnection.go +77 -66 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdbuserror.go +16 -18 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdbusinterface.go +26 -19 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdbusinterfaceskeleton.go +25 -24 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdbusintrospection.go +54 -56 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdbusmenumodel.go +2 -13 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdbusmessage.go +88 -64 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdbusmethodinvocation.go +35 -30 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdbusnameowning.go +10 -15 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdbusnamewatching.go +10 -15 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdbusobject.go +19 -17 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdbusobjectmanager.go +26 -19 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdbusobjectmanagerclient.go +16 -23 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdbusobjectmanagerserver.go +13 -20 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdbusobjectproxy.go +3 -15 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdbusobjectskeleton.go +12 -18 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdbusproxy.go +42 -38 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdbusserver.go +14 -20 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdbusutils.go +24 -22 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdebugcontroller.go +12 -16 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdebugcontrollerdbus.go +4 -14 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdrive.go +214 -82 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdtlsclientconnection.go +34 -24 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdtlsconnection.go +207 -80 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gdtlsserverconnection.go +2 -13 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gemblem.go +6 -17 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gemblemedicon.go +9 -18 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gfile.go +1148 -450 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gfileattribute.go +13 -19 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gfileenumerator.go +34 -35 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gfileicon.go +3 -15 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gfileinfo.go +138 -84 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gfileinputstream.go +17 -23 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gfileiostream.go +23 -27 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gfilemonitor.go +9 -15 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gfilenamecompleter.go +8 -16 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gfileoutputstream.go +23 -27 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gfilterinputstream.go +6 -14 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gfilteroutputstream.go +6 -14 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gicon.go +32 -25 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/ginetaddress.go +40 -34 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/ginetaddressmask.go +14 -21 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/ginetsocketaddress.go +10 -19 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/ginitable.go +11 -18 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/ginputstream.go +52 -48 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gioenums.go +90 -1 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gioerror.go +6 -13 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/giomodule.go +26 -29 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gioscheduler.go +4 -12 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/giostream.go +25 -29 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/giotypes.go +70 -60 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/giptosmessage.go +6 -16 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gipv6tclassmessage.go +6 -16 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/glistmodel.go +33 -21 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gliststore.go +22 -24 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gloadableicon.go +27 -23 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gmemoryinputstream.go +8 -17 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gmemorymonitor.go +2 -12 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gmemoryoutputstream.go +13 -19 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gmenu.go +62 -50 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gmenumodel.go +31 -33 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gmount.go +215 -86 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gmountoperation.go +40 -32 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gnativesocketaddress.go +2 -13 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gnativevolumemonitor.go +7 -0 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gnetworkaddress.go +11 -21 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gnetworking.go +3 -14 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gnetworkmonitor.go +49 -31 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gnetworkservice.go +12 -19 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gnotification.go +26 -26 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/goutputstream.go +86 -72 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gpermission.go +33 -33 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gpollableinputstream.go +30 -22 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gpollableoutputstream.go +41 -27 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gpollableutils.go +7 -15 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gpowerprofilemonitor.go +7 -16 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gpropertyaction.go +2 -13 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gproxy.go +35 -27 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gproxyaddress.go +16 -21 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gproxyaddressenumerator.go +7 -0 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gproxyresolver.go +35 -27 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gremoteactiongroup.go +12 -15 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gresolver.go +75 -67 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gresource.go +19 -23 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gseekable.go +41 -27 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gsettings.go +99 -67 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gsettingsbackend.go +19 -24 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gsettingsschema.go +48 -43 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gsimpleaction.go +9 -18 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gsimpleactiongroup.go +9 -18 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gsimpleasyncresult.go +46 -40 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gsimpleiostream.go +2 -13 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gsimplepermission.go +2 -13 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gsimpleproxyresolver.go +8 -16 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gsocket.go +87 -72 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gsocketaddress.go +11 -19 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gsocketaddressenumerator.go +13 -20 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gsocketclient.go +54 -44 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gsocketconnectable.go +19 -17 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gsocketconnection.go +14 -21 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gsocketcontrolmessage.go +10 -17 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gsocketlistener.go +18 -25 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gsocketservice.go +8 -16 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gsrvtarget.go +2 -11 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gsubprocess.go +40 -39 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gsubprocesslauncher.go +34 -31 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gtask.go +70 -52 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gtcpconnection.go +5 -14 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gtcpwrapperconnection.go +3 -15 generated file: collapsed
M vendor/github.com/bnema/puregotk/v4/gio/gtestdbus.go +16 -22 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gio/gthemedicon.go +10 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gio/gthreadedresolver.go +7 -0 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gio/gthreadedsocketservice.go +2 -12 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gio/gtlsbackend.go +69 -33 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gio/gtlscertificate.go +25 -29 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gio/gtlsclientconnection.go +55 -29 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gio/gtlsconnection.go +56 -46 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gio/gtlsdatabase.go +51 -48 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gio/gtlsfiledatabase.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gio/gtlsinteraction.go +27 -31 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gio/gtlspassword.go +20 -22 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gio/gtlsserverconnection.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gio/gunixconnection.go +11 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gio/gunixcredentialsmessage.go +6 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gio/gunixfdlist.go +11 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gio/gunixsocketaddress.go +14 -22 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gio/gvfs.go +18 -24 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gio/gvolume.go +143 -58 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gio/gvolumemonitor.go +11 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gio/gzlibcompressor.go +9 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gio/gzlibdecompressor.go +3 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gio/main.go +2 -11 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gallocator.go +32 -28 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/garray.go +82 -59 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gasyncqueue.go +56 -39 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gatomic.go +43 -34 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gbacktrace.go +5 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gbase64.go +13 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gbitlock.go +23 -24 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gbookmarkfile.go +69 -61 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gcache.go +10 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gcharset.go +13 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gchecksum.go +23 -25 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gcompletion.go +14 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gconvert.go +25 -28 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gdataset.go +36 -28 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gdate.go +103 -65 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gdatetime.go +107 -66 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gdir.go +12 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/genviron.go +17 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gerror.go +30 -29 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gfileutils.go +45 -38 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/ggettext.go +13 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/ghash.go +81 -53 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/ghmac.go +21 -24 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/ghook.go +28 -26 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/ghostutils.go +11 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/giochannel.go +83 -67 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gkeyfile.go +72 -62 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/glib-types.go +4 -12 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/glist.go +2 -11 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gmain.go +181 -117 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gmappedfile.go +15 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gmarkup.go +51 -43 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gmem.go +44 -31 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gmessages.go +70 -45 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gnode.go +50 -35 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/goption.go +57 -43 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gpathbuf.go +26 -24 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gpattern.go +19 -23 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gpoll.go +3 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gprimes.go +3 -14 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gprintf.go +15 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gqsort.go +5 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gquark.go +13 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gqueue.go +84 -52 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/grand.go +33 -30 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/grcbox.go +29 -27 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/grefcount.go +17 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/grefstring.go +15 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gregex.go +72 -57 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/grel.go +20 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gscanner.go +40 -30 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gsequence.go +74 -49 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gshell.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gslice.go +17 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gslist.go +2 -11 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gspawn.go +12 -23 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gstdio.go +33 -27 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gstrfuncs.go +115 -71 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gstring.go +77 -51 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gstringchunk.go +10 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gstrvbuilder.go +19 -22 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gtestutils.go +132 -80 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gthread.go +146 -97 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gthreadpool.go +26 -25 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gtimer.go +18 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gtimezone.go +27 -26 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gtrashstack.go +8 -14 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gtree.go +63 -45 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gtypes.go +4 -12 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gunicode.go +132 -85 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/guri.go +63 -50 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gutils.go +62 -41 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/guuid.go +5 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gvariant-parser.go +3 -14 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gvariant.go +242 -143 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gvarianttype.go +63 -45 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/gversion.go +3 -14 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/glib/main.go +31 -28 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gmodule/gmodule.go +14 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gmodule/main.go +2 -11 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gobject/gbinding.go +14 -22 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gobject/gbindinggroup.go +11 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gobject/gboxed.go +6 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gobject/gclosure.go +37 -31 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gobject/genums.go +24 -22 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gobject/glib-types.go +2 -11 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gobject/gmarshal.go +45 -35 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gobject/gobject.go +116 -82 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gobject/gparam.go +54 -43 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gobject/gparamspecs.go +46 -79 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gobject/gsignal.go +79 -50 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gobject/gsignalgroup.go +21 -24 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gobject/gsourceclosure.go +4 -12 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gobject/gtype.go +136 -82 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gobject/gtypemodule.go +15 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gobject/gtypeplugin.go +26 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gobject/gvalue.go +141 -85 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gobject/gvaluearray.go +21 -23 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gobject/gvaluetypes.go +6 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gobject/main.go +10 -1 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gobject/more.go +8 -1 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/graphene/graphene-box.go +61 -44 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/graphene/graphene-euler.go +43 -34 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/graphene/graphene-frustum.go +21 -23 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/graphene/graphene-matrix.go +135 -80 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/graphene/graphene-plane.go +29 -27 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/graphene/graphene-point.go +23 -25 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/graphene/graphene-point3d.go +35 -31 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/graphene/graphene-quad.go +17 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/graphene/graphene-quaternion.go +49 -37 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/graphene/graphene-ray.go +37 -31 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/graphene/graphene-rect.go +67 -46 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/graphene/graphene-size.go +17 -22 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/graphene/graphene-sphere.go +27 -26 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/graphene/graphene-triangle.go +33 -29 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/graphene/graphene-vec2.go +53 -40 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/graphene/graphene-vec3.go +69 -48 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/graphene/graphene-vec4.go +69 -48 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskblendnode.go +6 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskblurnode.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskbordernode.go +8 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskbroadwayrenderer.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskcaironode.go +6 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskcairorenderer.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskclipnode.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskcolormatrixnode.go +7 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskcolornode.go +4 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskcomponenttransfer.go +3 -14 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskcomponenttransfernode.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskcompositenode.go +6 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskconicgradientnode.go +12 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskcontainernode.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskcopynode.go +3 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskcrossfadenode.go +6 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskdebugnode.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskenums.go +24 -1 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskfillnode.go +7 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskglrenderer.go +4 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskglshader.go +65 -50 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskglshadernode.go +8 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskinsetshadownode.go +14 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskisolationnode.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gsklineargradientnode.go +12 -22 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskmasknode.go +6 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskopacitynode.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskoutsetshadownode.go +14 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskpastenode.go +4 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskpath.go +4 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskpathpoint.go +19 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskradialgradientnode.go +18 -25 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskrenderer.go +12 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskrendernode.go +26 -29 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskrepeatnode.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskroundedclipnode.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskroundedrect.go +20 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskshadownode.go +7 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskstroke.go +3 -14 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskstrokenode.go +7 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gsksubsurfacenode.go +5 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gsktextnode.go +13 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gsktexturenode.go +3 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gsktexturescalenode.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gsktransform.go +3 -14 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gsktransformnode.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gsktypes.go +237 -153 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gsk/gskvulkanrenderer.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkaboutdialog.go +70 -51 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkaccelgroup.go +18 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkaccessible.go +159 -66 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkaccessiblehypertext.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkaccessiblerange.go +7 -0 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkaccessibletext.go +21 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkactionable.go +40 -23 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkactionbar.go +15 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkadjustment.go +32 -28 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkalertdialog.go +31 -29 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkappchooser.go +19 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkappchooserbutton.go +24 -25 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkappchooserdialog.go +8 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkappchooserwidget.go +26 -26 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkapplication.go +27 -29 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkapplicationwindow.go +11 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkaspectframe.go +21 -24 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkassistant.go +48 -43 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkatcontext.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkbinlayout.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkbitset.go +15 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkbookmarklist.go +14 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkboolfilter.go +9 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkborder.go +7 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkbox.go +28 -27 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkboxlayout.go +18 -22 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkbuildable.go +28 -28 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkbuilder.go +35 -41 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkbuilderlistitemfactory.go +8 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkbuilderscope.go +14 -23 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkbutton.go +28 -28 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcalendar.go +40 -33 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcellarea.go +87 -59 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcellareabox.go +10 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcellareacontext.go +20 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcelleditable.go +19 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcelllayout.go +68 -31 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcellrenderer.go +56 -42 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcellrendereraccel.go +3 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcellrenderercombo.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcellrendererpixbuf.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcellrendererprogress.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcellrendererspin.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcellrendererspinner.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcellrenderertext.go +4 -14 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcellrenderertoggle.go +14 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcellview.go +21 -26 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcenterbox.go +19 -24 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcenterlayout.go +23 -26 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcheckbutton.go +25 -26 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcolorbutton.go +11 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcolorchooser.go +33 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcolorchooserdialog.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcolorchooserwidget.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcolordialog.go +17 -22 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcolordialogbutton.go +9 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcolorutils.go +5 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcolumnview.go +47 -39 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcolumnviewcell.go +13 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcolumnviewcolumn.go +36 -33 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcolumnviewrow.go +26 -25 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcolumnviewsorter.go +7 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcombobox.go +51 -40 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcomboboxtext.go +21 -24 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkconstraint.go +24 -28 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkconstraintguide.go +22 -24 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkconstraintlayout.go +20 -27 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcsserror.go +4 -12 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcssprovider.go +18 -22 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcsssection.go +22 -24 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcustomfilter.go +4 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcustomlayout.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkcustomsorter.go +4 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkdebug.go +5 -14 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkdialog.go +21 -28 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkdialogerror.go +3 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkdirectorylist.go +21 -24 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkdragicon.go +8 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkdragsource.go +14 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkdrawingarea.go +12 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkdropcontrollermotion.go +7 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkdropdown.go +35 -34 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkdroptarget.go +22 -25 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkdroptargetasync.go +12 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkeditable.go +173 -65 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkeditablelabel.go +8 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkemojichooser.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkentry.go +119 -76 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkentrybuffer.go +22 -23 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkentrycompletion.go +45 -37 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkenums.go +70 -147 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkeventcontroller.go +24 -25 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkeventcontrollerfocus.go +6 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkeventcontrollerkey.go +9 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkeventcontrollerlegacy.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkeventcontrollermotion.go +6 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkeventcontrollerscroll.go +9 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkexpander.go +29 -29 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkexpression.go +50 -67 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkfilechooser.go +177 -68 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkfilechooserdialog.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkfilechoosernative.go +10 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkfilechooserwidget.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkfiledialog.go +54 -46 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkfilefilter.go +21 -24 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkfilelauncher.go +19 -24 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkfilter.go +9 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkfilterlistmodel.go +18 -23 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkfixed.go +14 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkfixedlayout.go +7 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkflattenlistmodel.go +6 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkflowbox.go +79 -57 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkfontbutton.go +19 -23 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkfontchooser.go +132 -51 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkfontchooserdialog.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkfontchooserwidget.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkfontdialog.go +32 -32 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkfontdialogbutton.go +30 -30 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkframe.go +16 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkgesture.go +33 -29 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkgestureclick.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkgesturedrag.go +6 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkgesturelongpress.go +6 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkgesturepan.go +6 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkgesturerotate.go +4 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkgesturesingle.go +17 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkgesturestylus.go +13 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkgestureswipe.go +4 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkgesturezoom.go +4 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkglarea.go +39 -32 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkgraphicsoffload.go +14 -22 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkgrid.go +45 -36 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkgridlayout.go +43 -37 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkgridview.go +30 -29 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkheaderbar.go +23 -25 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkiconpaintable.go +7 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkicontheme.go +34 -37 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkiconview.go +123 -78 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkimage.go +37 -37 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkimcontext.go +31 -26 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkimcontextsimple.go +6 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkimmulticontext.go +6 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkinfobar.go +32 -30 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkinscription.go +45 -37 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtklabel.go +98 -64 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtklayoutchild.go +3 -14 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtklayoutmanager.go +11 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtklevelbar.go +29 -28 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtklinkbutton.go +11 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtklistbase.go +7 -0 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtklistbox.go +88 -63 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtklistheader.go +11 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtklistitem.go +29 -27 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtklistitemfactory.go +7 -0 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkliststore.go +41 -34 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtklistview.go +29 -29 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtklockbutton.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkmain.go +16 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkmaplistmodel.go +9 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkmediacontrols.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkmediafile.go +18 -24 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkmediastream.go +69 -45 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkmenubutton.go +53 -41 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkmessagedialog.go +11 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkmountoperation.go +10 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkmultifilter.go +9 -22 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkmultiselection.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkmultisorter.go +6 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtknative.go +34 -24 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtknativedialog.go +20 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtknoselection.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtknotebook.go +87 -64 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtknumericsorter.go +9 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkorientable.go +12 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkoverlay.go +17 -22 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkoverlaylayout.go +11 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkpadcontroller.go +7 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkpagesetup.go +47 -40 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkpagesetupunixdialog.go +8 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkpaned.go +32 -30 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkpapersize.go +50 -39 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkpasswordentry.go +9 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkpasswordentrybuffer.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkpicture.go +39 -36 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkpopover.go +41 -33 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkpopoverbin.go +19 -24 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkpopovermenu.go +14 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkpopovermenubar.go +9 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkprintcontext.go +19 -23 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkprintdialog.go +36 -37 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkprinter.go +48 -40 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkprintjob.go +57 -44 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkprintoperation.go +65 -54 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkprintoperationpreview.go +19 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkprintsettings.go +145 -89 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkprintunixdialog.go +33 -31 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkprogressbar.go +28 -27 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkrange.go +44 -33 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkrecentmanager.go +65 -54 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkrender.go +24 -22 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkrevealer.go +20 -25 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkroot.go +19 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkscale.go +28 -27 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkscalebutton.go +20 -24 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkscrollable.go +61 -29 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkscrollbar.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkscrolledwindow.go +61 -49 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtksearchbar.go +18 -23 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtksearchentry.go +21 -24 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtksectionmodel.go +12 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkselectionfiltermodel.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkselectionmodel.go +75 -33 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkseparator.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtksettings.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkshortcut.go +13 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkshortcutaction.go +25 -47 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkshortcutcontroller.go +15 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkshortcutlabel.go +10 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkshortcutmanager.go +7 -0 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkshortcutsgroup.go +3 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkshortcutssection.go +3 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkshortcutsshortcut.go +8 -0 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkshortcutswindow.go +3 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkshortcuttrigger.go +34 -46 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkshow.go +5 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtksignallistitemfactory.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtksingleselection.go +18 -23 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtksizegroup.go +12 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtksizerequest.go +2 -11 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkslicelistmodel.go +13 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtksnapshot.go +112 -71 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtksorter.go +9 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtksortlistmodel.go +17 -23 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkspinbutton.go +56 -45 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkspinner.go +10 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkstack.go +68 -55 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkstacksidebar.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkstackswitcher.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkstatusbar.go +12 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkstringfilter.go +18 -24 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkstringlist.go +18 -26 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkstringsorter.go +14 -22 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkstylecontext.go +43 -35 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkstyleprovider.go +10 -1 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtksvg.go +41 -39 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkswitch.go +10 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtksymbolicpaintable.go +12 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktestatcontext.go +17 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktestutils.go +9 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktext.go +69 -49 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktextbuffer.go +138 -85 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktextchild.go +7 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktextiter.go +179 -104 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktextmark.go +13 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktexttag.go +8 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktexttagtable.go +11 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktextview.go +145 -92 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktogglebutton.go +12 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktooltip.go +15 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktreednd.go +34 -27 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktreeexpander.go +21 -25 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktreelistmodel.go +26 -32 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktreelistrowsorter.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktreemodel.go +261 -113 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktreemodelfilter.go +20 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktreemodelsort.go +17 -22 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktreeselection.go +40 -32 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktreesortable.go +40 -23 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktreestore.go +45 -36 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktreeview.go +176 -105 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktreeviewcolumn.go +102 -68 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtktypes.go +74 -53 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkurilauncher.go +11 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkversion.go +13 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkvideo.go +28 -30 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkviewport.go +11 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkvolumebutton.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkwidget.go +357 -207 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkwidgetpaintable.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkwindow.go +121 -79 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkwindowcontrols.go +16 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkwindowgroup.go +8 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/gtkwindowhandle.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/gtk/main.go +2 -11 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/javascriptcore/JSCClass.go +15 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/javascriptcore/JSCContext.go +32 -35 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/javascriptcore/JSCException.go +23 -27 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/javascriptcore/JSCOptions.go +32 -26 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/javascriptcore/JSCValue.go +93 -73 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/javascriptcore/JSCVersion.go +7 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/javascriptcore/JSCVirtualMachine.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/javascriptcore/JSCWeakValue.go +3 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/layershell/gtk4-layer-shell.go +52 -38 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/main.go +2 -11 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-attributes.go +160 -108 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-bidi-type.go +9 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-break.go +10 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-color.go +11 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-context.go +45 -37 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-coverage.go +16 -25 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-direction.go +10 -1 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-font.go +153 -112 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-fontmap.go +13 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-fontset-simple.go +6 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-fontset.go +6 -14 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-glyph-item.go +26 -27 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-glyph.go +32 -31 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-gravity.go +10 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-item.go +19 -23 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-language.go +6 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-layout.go +201 -131 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-markup.go +4 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-matrix.go +27 -25 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-renderer.go +39 -32 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-script.go +14 -22 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-tabs.go +34 -32 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-types.go +17 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/pango/pango-utils.go +38 -29 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-auth-basic.go +10 -1 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-auth-digest.go +10 -1 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-auth-domain-basic.go +4 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-auth-domain-digest.go +6 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-auth-domain.go +19 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-auth-manager.go +5 -14 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-auth-negotiate.go +3 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-auth-ntlm.go +10 -1 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-auth.go +32 -28 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-cache.go +16 -23 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-content-decoder.go +7 -0 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-content-sniffer.go +4 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-cookie-jar-db.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-cookie-jar-text.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-cookie-jar.go +29 -28 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-cookie.go +15 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-date-utils.go +5 -14 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-form.go +12 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-headers.go +30 -25 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-hsts-enforcer-db.go +2 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-hsts-enforcer.go +14 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-logger.go +13 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-message-body.go +30 -29 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-message-headers.go +68 -52 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-message.go +90 -64 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-multipart-input-stream.go +8 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-multipart.go +19 -22 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-server-message.go +42 -35 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-server.go +46 -40 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-session-feature.go +7 -0 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-session.go +74 -60 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-status.go +4 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-tld.go +6 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-types.go +113 -75 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-uri-utils.go +7 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-version.go +9 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-websocket-connection.go +39 -33 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-websocket-extension-deflate.go +7 -0 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-websocket-extension-manager.go +7 -0 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-websocket-extension.go +20 -25 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/soup/soup-websocket.go +13 -25 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitApplicationInfo.go +17 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitAuthenticationRequest.go +32 -31 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitAutomationSession.go +10 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitBackForwardList.go +17 -24 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitBackForwardListItem.go +9 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitClipboardPermissionRequest.go +11 -0 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitColorChooserRequest.go +13 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitContextMenu.go +31 -33 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitContextMenuActions.go +13 -1 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitContextMenuItem.go +20 -28 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitCookieManager.go +27 -33 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitCredential.go +23 -24 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitDeviceInfoPermissionRequest.go +11 -0 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitDownload.go +22 -26 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitEditorState.go +16 -23 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitError.go +32 -39 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitFaviconDatabase.go +13 -23 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitFeature.go +29 -28 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitFileChooserRequest.go +14 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitFindController.go +21 -26 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitFormSubmissionRequest.go +7 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitGeolocationManager.go +26 -30 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitGeolocationPermissionRequest.go +11 -0 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitHitTestResult.go +28 -29 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitImage.go +11 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitInputMethodContext.go +38 -38 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitMediaKeySystemPermissionRequest.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitMemoryPressureSettings.go +29 -25 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitNavigationAction.go +21 -22 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitNavigationPolicyDecision.go +5 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitNetworkProxySettings.go +12 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitNetworkSession.go +34 -36 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitNotification.go +15 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitNotificationPermissionRequest.go +11 -0 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitOptionMenu.go +14 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitOptionMenuItem.go +19 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitPermissionRequest.go +14 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitPermissionStateQuery.go +14 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitPointerLockPermissionRequest.go +11 -0 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitPolicyDecision.go +11 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitPrintOperation.go +15 -25 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitResponsePolicyDecision.go +9 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitScriptDialog.go +20 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitSecurityManager.go +27 -27 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitSecurityOrigin.go +19 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitSettings.go +255 -146 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitURIRequest.go +12 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitURIResponse.go +15 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitURISchemeRequest.go +21 -25 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitURISchemeResponse.go +10 -20 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitURIUtilities.go +5 -13 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitUserContent.go +30 -36 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitUserContentFilterStore.go +22 -28 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitUserContentManager.go +39 -37 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitUserMediaPermissionRequest.go +9 -18 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitUserMessage.go +15 -26 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitVersion.go +9 -15 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitWebContext.go +41 -40 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitWebExtension.go +50 -41 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitWebExtensionMatchPattern.go +34 -31 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitWebInspector.go +20 -24 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitWebResource.go +9 -19 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitWebView.go +159 -118 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitWebViewBase.go +11 -0 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitWebViewGtk4.go +13 -1 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitWebViewSessionState.go +11 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitWebsiteData.go +13 -16 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitWebsiteDataAccessPermissionRequest.go +7 -17 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitWebsiteDataManager.go +47 -46 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitWebsitePolicies.go +8 -21 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitWindowProperties.go +19 -23 collapsed to keep the page light
M vendor/github.com/bnema/puregotk/v4/webkit/WebKitXRPermissionRequest.go +21 -27 collapsed to keep the page light
M vendor/modules.txt +5 -5 collapsed to keep the page light

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 8

Tags 42

↑↓ moveenter openesc close