detached 802dc32

refactor(deps): drop puregotk-webkit and update purego stack

commit
802dc3211d82ba86e65b626c16009f94c436a445
author
brice · · 2026-04-16 03:18 UTC
parent
70e775c
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
28 files · +57 -57
M go.mod +6 -9
@@ -3,16 +3,15 @@ module github.com/bnema/dumber
33 go 1.26.1
44
55 require (
6- github.com/bnema/purego-cef v0.8.1
7- github.com/bnema/purego-ffmpeg v0.3.0
8- github.com/bnema/purego-pipewire v0.1.1
9- github.com/bnema/purego-sqlite v0.1.1
10- github.com/bnema/puregotk v0.4.0
11- github.com/bnema/puregotk-webkit v0.0.16
6+ github.com/bnema/purego v0.11.0-bnema.2
7+ github.com/bnema/purego-cef v0.8.2
8+ github.com/bnema/purego-ffmpeg v0.3.1
9+ github.com/bnema/purego-pipewire v0.1.2
10+ github.com/bnema/purego-sqlite v0.1.2
11+ github.com/bnema/puregotk v0.5.1
1212 github.com/charmbracelet/bubbles v1.0.0
1313 github.com/charmbracelet/bubbletea v1.3.10
1414 github.com/charmbracelet/lipgloss v1.1.0
15- github.com/ebitengine/purego v0.10.0
1615 github.com/fsnotify/fsnotify v1.9.0
1716 github.com/godbus/dbus/v5 v5.2.2
1817 github.com/google/uuid v1.6.0
@@ -70,5 +69,3 @@ require (
7069 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
7170 modernc.org/sqlite v1.47.0 // indirect
7271 )
73-
74-replace github.com/ebitengine/purego => github.com/bnema/purego v0.0.0-20260413043705-7850e384cde9
@@ -3,16 +3,15 @@ module github.com/bnema/dumber
3 go 1.26.13 go 1.26.1
4 4
5 require (5 require (
6- github.com/bnema/purego-cef v0.8.16+ github.com/bnema/purego v0.11.0-bnema.2
7- github.com/bnema/purego-ffmpeg v0.3.07+ github.com/bnema/purego-cef v0.8.2
8- github.com/bnema/purego-pipewire v0.1.18+ github.com/bnema/purego-ffmpeg v0.3.1
9- github.com/bnema/purego-sqlite v0.1.19+ github.com/bnema/purego-pipewire v0.1.2
10- github.com/bnema/puregotk v0.4.010+ github.com/bnema/purego-sqlite v0.1.2
11- github.com/bnema/puregotk-webkit v0.0.1611+ github.com/bnema/puregotk v0.5.1
12 github.com/charmbracelet/bubbles v1.0.012 github.com/charmbracelet/bubbles v1.0.0
13 github.com/charmbracelet/bubbletea v1.3.1013 github.com/charmbracelet/bubbletea v1.3.10
14 github.com/charmbracelet/lipgloss v1.1.014 github.com/charmbracelet/lipgloss v1.1.0
15- github.com/ebitengine/purego v0.10.0
16 github.com/fsnotify/fsnotify v1.9.015 github.com/fsnotify/fsnotify v1.9.0
17 github.com/godbus/dbus/v5 v5.2.216 github.com/godbus/dbus/v5 v5.2.2
18 github.com/google/uuid v1.6.017 github.com/google/uuid v1.6.0
@@ -70,5 +69,3 @@ require (
70 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect69 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
71 modernc.org/sqlite v1.47.0 // indirect70 modernc.org/sqlite v1.47.0 // indirect
72 )71 )
73-
74-replace github.com/ebitengine/purego => github.com/bnema/purego v0.0.0-20260413043705-7850e384cde9
M go.sum +14 -16
@@ -4,20 +4,18 @@ github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiE
44 github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
55 github.com/aymanbagabas/go-udiff v0.3.1 h1:LV+qyBQ2pqe0u42ZsUEtPiCaUoqgA9gYRDs3vj1nolY=
66 github.com/aymanbagabas/go-udiff v0.3.1/go.mod h1:G0fsKmG+P6ylD0r6N/KgQD/nWzgfnl8ZBcNLgcbrw8E=
7-github.com/bnema/purego v0.0.0-20260413043705-7850e384cde9 h1:uY4oWlNAXh+5KArWcF7bjHaDwNoT9H3cr2zPa1vBvyI=
8-github.com/bnema/purego v0.0.0-20260413043705-7850e384cde9/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
9-github.com/bnema/purego-cef v0.8.1 h1:BtzCcKSuCZ/dS/LROi2eildY9zaZ8Axagy5dNzj6hV4=
10-github.com/bnema/purego-cef v0.8.1/go.mod h1:8XatJEof+SzApTWd8MSar1Vdkkivln/WH7yH++rcf5o=
11-github.com/bnema/purego-ffmpeg v0.3.0 h1:GRwW5RS2flUBvgZbluJkM5dKF0gvyUszMb5gDbvofzk=
12-github.com/bnema/purego-ffmpeg v0.3.0/go.mod h1:AU9ZBsUMq7G//DcP1u1qcLFmJw7HegS+wpk3QFycKac=
13-github.com/bnema/purego-pipewire v0.1.1 h1:1AflvkG08caOLJH9Y7h7Y7YM/Ttdi6nZ0wwgIg1/n5w=
14-github.com/bnema/purego-pipewire v0.1.1/go.mod h1:m+Ej80mItox2TRasF6m8L3fPXQaCgYHHY80LrC2kJLk=
15-github.com/bnema/purego-sqlite v0.1.1 h1:lH/F6/xxaI+LwWNHv3zof83bDJWQnib9OlNnBo/JnII=
16-github.com/bnema/purego-sqlite v0.1.1/go.mod h1:nRVrkBt8dFOlSGGOOFM/ynlk34TOU1RlOvH4T9KM91s=
17-github.com/bnema/puregotk v0.4.0 h1:YAcBC2ML6tvFy46EHtCj0b8sw1l9OrrOq7GIpz+0oTg=
18-github.com/bnema/puregotk v0.4.0/go.mod h1:Sl24sbCl02M/HLCNUgaYVCckkYcGOi8yxMuGuQVWsL8=
19-github.com/bnema/puregotk-webkit v0.0.16 h1:fYYtRLK3N4YgYmPkHpGZT6W+Mxu4EPu5I25H8nUv9oY=
20-github.com/bnema/puregotk-webkit v0.0.16/go.mod h1:5qlQ44TexU9UUyIR7PlEHmQZl3yARAWhqG+XWO5uv74=
7+github.com/bnema/purego v0.11.0-bnema.2 h1:7pzcdOJ8bGtLrCz6V582oyleP6css1ICQoGgj+/Ve4o=
8+github.com/bnema/purego v0.11.0-bnema.2/go.mod h1:5BnOIUj+0fvk/vwv45iottFoGfkDT7cnLXnpM2s6Hng=
9+github.com/bnema/purego-cef v0.8.2 h1:MOyKiR0wwq2koI8We77rx+Fw/u/LsSU/XqvckGJKVYc=
10+github.com/bnema/purego-cef v0.8.2/go.mod h1:AIW4lrXr4f2vesO4WnMDN49yAyfivYHV4x6hxpu5SmM=
11+github.com/bnema/purego-ffmpeg v0.3.1 h1:BWqRQvRXH3Lu7atem71Ai//fOYdNwuFofVF7uz/0XF0=
12+github.com/bnema/purego-ffmpeg v0.3.1/go.mod h1:0/PCk5gYU0Dl1taBgiJd8ttR7A3SFSJXeNJBljeqFGc=
13+github.com/bnema/purego-pipewire v0.1.2 h1:U057iOlpQatwlis6nfrZQJVrT3aGDFdagRLUz+ll7Ik=
14+github.com/bnema/purego-pipewire v0.1.2/go.mod h1:kchW7Bkfjc+NkX2IZw3LnlYfQxk6jxhl32Id88u04y8=
15+github.com/bnema/purego-sqlite v0.1.2 h1:dhqfe3KfNRBh7tlrwxL7bf4FPZk2VCajdBESMbrvmoE=
16+github.com/bnema/purego-sqlite v0.1.2/go.mod h1:fCvocfke59pjLrm5+y7aCQ3D5ZkiZbygLLJHkoezmRI=
17+github.com/bnema/puregotk v0.5.1 h1:Qgk12PHu1P5bsVD3tZ0io2a9wn3+dN60qZvKnkXASY0=
18+github.com/bnema/puregotk v0.5.1/go.mod h1:k9obstQtCopDsU4677xV9xJcMXMLbESRD5re7NAi7BM=
2119 github.com/charmbracelet/bubbles v1.0.0 h1:12J8/ak/uCZEMQ6KU7pcfwceyjLlWsDLAxB5fXonfvc=
2220 github.com/charmbracelet/bubbles v1.0.0/go.mod h1:9d/Zd5GdnauMI5ivUIVisuEm3ave1XwXtD1ckyV6r3E=
2321 github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw=
@@ -59,8 +57,8 @@ github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlnd
5957 github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
6058 github.com/godbus/dbus/v5 v5.2.2 h1:TUR3TgtSVDmjiXOgAAyaZbYmIeP3DPkld3jgKGV8mXQ=
6159 github.com/godbus/dbus/v5 v5.2.2/go.mod h1:3AAv2+hPq5rdnr5txxxRwiGjPXamgoIHgz9FPBfOp3c=
62-github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
63-github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
60+github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
61+github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
6462 github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
6563 github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
6664 github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
@@ -4,20 +4,18 @@ github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiE
4 github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=4 github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
5 github.com/aymanbagabas/go-udiff v0.3.1 h1:LV+qyBQ2pqe0u42ZsUEtPiCaUoqgA9gYRDs3vj1nolY=5 github.com/aymanbagabas/go-udiff v0.3.1 h1:LV+qyBQ2pqe0u42ZsUEtPiCaUoqgA9gYRDs3vj1nolY=
6 github.com/aymanbagabas/go-udiff v0.3.1/go.mod h1:G0fsKmG+P6ylD0r6N/KgQD/nWzgfnl8ZBcNLgcbrw8E=6 github.com/aymanbagabas/go-udiff v0.3.1/go.mod h1:G0fsKmG+P6ylD0r6N/KgQD/nWzgfnl8ZBcNLgcbrw8E=
7-github.com/bnema/purego v0.0.0-20260413043705-7850e384cde9 h1:uY4oWlNAXh+5KArWcF7bjHaDwNoT9H3cr2zPa1vBvyI=7+github.com/bnema/purego v0.11.0-bnema.2 h1:7pzcdOJ8bGtLrCz6V582oyleP6css1ICQoGgj+/Ve4o=
8-github.com/bnema/purego v0.0.0-20260413043705-7850e384cde9/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=8+github.com/bnema/purego v0.11.0-bnema.2/go.mod h1:5BnOIUj+0fvk/vwv45iottFoGfkDT7cnLXnpM2s6Hng=
9-github.com/bnema/purego-cef v0.8.1 h1:BtzCcKSuCZ/dS/LROi2eildY9zaZ8Axagy5dNzj6hV4=9+github.com/bnema/purego-cef v0.8.2 h1:MOyKiR0wwq2koI8We77rx+Fw/u/LsSU/XqvckGJKVYc=
10-github.com/bnema/purego-cef v0.8.1/go.mod h1:8XatJEof+SzApTWd8MSar1Vdkkivln/WH7yH++rcf5o=10+github.com/bnema/purego-cef v0.8.2/go.mod h1:AIW4lrXr4f2vesO4WnMDN49yAyfivYHV4x6hxpu5SmM=
11-github.com/bnema/purego-ffmpeg v0.3.0 h1:GRwW5RS2flUBvgZbluJkM5dKF0gvyUszMb5gDbvofzk=11+github.com/bnema/purego-ffmpeg v0.3.1 h1:BWqRQvRXH3Lu7atem71Ai//fOYdNwuFofVF7uz/0XF0=
12-github.com/bnema/purego-ffmpeg v0.3.0/go.mod h1:AU9ZBsUMq7G//DcP1u1qcLFmJw7HegS+wpk3QFycKac=12+github.com/bnema/purego-ffmpeg v0.3.1/go.mod h1:0/PCk5gYU0Dl1taBgiJd8ttR7A3SFSJXeNJBljeqFGc=
13-github.com/bnema/purego-pipewire v0.1.1 h1:1AflvkG08caOLJH9Y7h7Y7YM/Ttdi6nZ0wwgIg1/n5w=13+github.com/bnema/purego-pipewire v0.1.2 h1:U057iOlpQatwlis6nfrZQJVrT3aGDFdagRLUz+ll7Ik=
14-github.com/bnema/purego-pipewire v0.1.1/go.mod h1:m+Ej80mItox2TRasF6m8L3fPXQaCgYHHY80LrC2kJLk=14+github.com/bnema/purego-pipewire v0.1.2/go.mod h1:kchW7Bkfjc+NkX2IZw3LnlYfQxk6jxhl32Id88u04y8=
15-github.com/bnema/purego-sqlite v0.1.1 h1:lH/F6/xxaI+LwWNHv3zof83bDJWQnib9OlNnBo/JnII=15+github.com/bnema/purego-sqlite v0.1.2 h1:dhqfe3KfNRBh7tlrwxL7bf4FPZk2VCajdBESMbrvmoE=
16-github.com/bnema/purego-sqlite v0.1.1/go.mod h1:nRVrkBt8dFOlSGGOOFM/ynlk34TOU1RlOvH4T9KM91s=16+github.com/bnema/purego-sqlite v0.1.2/go.mod h1:fCvocfke59pjLrm5+y7aCQ3D5ZkiZbygLLJHkoezmRI=
17-github.com/bnema/puregotk v0.4.0 h1:YAcBC2ML6tvFy46EHtCj0b8sw1l9OrrOq7GIpz+0oTg=17+github.com/bnema/puregotk v0.5.1 h1:Qgk12PHu1P5bsVD3tZ0io2a9wn3+dN60qZvKnkXASY0=
18-github.com/bnema/puregotk v0.4.0/go.mod h1:Sl24sbCl02M/HLCNUgaYVCckkYcGOi8yxMuGuQVWsL8=18+github.com/bnema/puregotk v0.5.1/go.mod h1:k9obstQtCopDsU4677xV9xJcMXMLbESRD5re7NAi7BM=
19-github.com/bnema/puregotk-webkit v0.0.16 h1:fYYtRLK3N4YgYmPkHpGZT6W+Mxu4EPu5I25H8nUv9oY=
20-github.com/bnema/puregotk-webkit v0.0.16/go.mod h1:5qlQ44TexU9UUyIR7PlEHmQZl3yARAWhqG+XWO5uv74=
21 github.com/charmbracelet/bubbles v1.0.0 h1:12J8/ak/uCZEMQ6KU7pcfwceyjLlWsDLAxB5fXonfvc=19 github.com/charmbracelet/bubbles v1.0.0 h1:12J8/ak/uCZEMQ6KU7pcfwceyjLlWsDLAxB5fXonfvc=
22 github.com/charmbracelet/bubbles v1.0.0/go.mod h1:9d/Zd5GdnauMI5ivUIVisuEm3ave1XwXtD1ckyV6r3E=20 github.com/charmbracelet/bubbles v1.0.0/go.mod h1:9d/Zd5GdnauMI5ivUIVisuEm3ave1XwXtD1ckyV6r3E=
23 github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw=21 github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw=
@@ -59,8 +57,8 @@ github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlnd
59 github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=57 github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
60 github.com/godbus/dbus/v5 v5.2.2 h1:TUR3TgtSVDmjiXOgAAyaZbYmIeP3DPkld3jgKGV8mXQ=58 github.com/godbus/dbus/v5 v5.2.2 h1:TUR3TgtSVDmjiXOgAAyaZbYmIeP3DPkld3jgKGV8mXQ=
61 github.com/godbus/dbus/v5 v5.2.2/go.mod h1:3AAv2+hPq5rdnr5txxxRwiGjPXamgoIHgz9FPBfOp3c=59 github.com/godbus/dbus/v5 v5.2.2/go.mod h1:3AAv2+hPq5rdnr5txxxRwiGjPXamgoIHgz9FPBfOp3c=
62-github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=60+github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
63-github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=61+github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
64 github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=62 github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
65 github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=63 github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
66 github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=64 github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
M internal/infrastructure/cef/gl_loader.go +1 -1
@@ -4,7 +4,7 @@ import (
44 "fmt"
55 "unsafe"
66
7- "github.com/ebitengine/purego"
7+ "github.com/bnema/purego"
88 )
99
1010 // OpenGL constants for PBO-based texture rendering.
@@ -4,7 +4,7 @@ import (
4 "fmt"4 "fmt"
5 "unsafe"5 "unsafe"
6 6
7- "github.com/ebitengine/purego"7+ "github.com/bnema/purego"
8 )8 )
9 9
10 // OpenGL constants for PBO-based texture rendering.10 // OpenGL constants for PBO-based texture rendering.
M internal/infrastructure/cef/render_pipeline.go +3 -2
@@ -163,8 +163,9 @@ func newRenderPipeline(ctx context.Context, gl *glLoader, scale int32, webviewID
163163 rp.glArea.SetHasDepthBuffer(false)
164164 rp.glArea.SetHasStencilBuffer(false)
165165
166- // Wire signals. puregotk takes *func(...) for signal callbacks.
167- renderCb := func(_ gtk.GLArea, _ *gdk.GLContext) bool {
166+ // Wire signals. puregotk currently exposes the render context as a raw pointer.
167+ renderCb := func(_ gtk.GLArea, contextPtr uintptr) bool {
168+ _ = gdk.GLContextNewFromInternalPtr(contextPtr)
168169 return rp.onGLRender()
169170 }
170171 rp.glArea.ConnectRender(&renderCb)
@@ -163,8 +163,9 @@ func newRenderPipeline(ctx context.Context, gl *glLoader, scale int32, webviewID
163 rp.glArea.SetHasDepthBuffer(false)163 rp.glArea.SetHasDepthBuffer(false)
164 rp.glArea.SetHasStencilBuffer(false)164 rp.glArea.SetHasStencilBuffer(false)
165 165
166- // Wire signals. puregotk takes *func(...) for signal callbacks.166+ // Wire signals. puregotk currently exposes the render context as a raw pointer.
167- renderCb := func(_ gtk.GLArea, _ *gdk.GLContext) bool {167+ renderCb := func(_ gtk.GLArea, contextPtr uintptr) bool {
168+ _ = gdk.GLContextNewFromInternalPtr(contextPtr)
168 return rp.onGLRender()169 return rp.onGLRender()
169 }170 }
170 rp.glArea.ConnectRender(&renderCb)171 rp.glArea.ConnectRender(&renderCb)
M internal/infrastructure/filtering/interfaces.go +1 -1
@@ -4,7 +4,7 @@ import (
44 "context"
55 "time"
66
7- "github.com/bnema/puregotk-webkit/webkit"
7+ "github.com/bnema/puregotk/v4/webkit"
88 )
99
1010 // FilterStore abstracts the WebKit UserContentFilterStore operations.
@@ -4,7 +4,7 @@ import (
4 "context"4 "context"
5 "time"5 "time"
6 6
7- "github.com/bnema/puregotk-webkit/webkit"7+ "github.com/bnema/puregotk/v4/webkit"
8 )8 )
9 9
10 // FilterStore abstracts the WebKit UserContentFilterStore operations.10 // FilterStore abstracts the WebKit UserContentFilterStore operations.
M internal/infrastructure/filtering/manager.go +1 -1
@@ -14,7 +14,7 @@ import (
1414
1515 "github.com/bnema/dumber/internal/application/port"
1616 "github.com/bnema/dumber/internal/logging"
17- "github.com/bnema/puregotk-webkit/webkit"
17+ "github.com/bnema/puregotk/v4/webkit"
1818 )
1919
2020 // Compile-time check that Manager satisfies port.FilterManager.
@@ -14,7 +14,7 @@ import (
14 14
15 "github.com/bnema/dumber/internal/application/port"15 "github.com/bnema/dumber/internal/application/port"
16 "github.com/bnema/dumber/internal/logging"16 "github.com/bnema/dumber/internal/logging"
17- "github.com/bnema/puregotk-webkit/webkit"17+ "github.com/bnema/puregotk/v4/webkit"
18 )18 )
19 19
20 // Compile-time check that Manager satisfies port.FilterManager.20 // Compile-time check that Manager satisfies port.FilterManager.
M internal/infrastructure/filtering/manager_test.go +1 -1
@@ -13,7 +13,7 @@ import (
1313 "github.com/bnema/dumber/internal/infrastructure/filtering"
1414 "github.com/bnema/dumber/internal/infrastructure/filtering/mocks"
1515 "github.com/bnema/dumber/internal/logging"
16- "github.com/bnema/puregotk-webkit/webkit"
16+ "github.com/bnema/puregotk/v4/webkit"
1717 "github.com/stretchr/testify/assert"
1818 "github.com/stretchr/testify/mock"
1919 "github.com/stretchr/testify/require"
@@ -13,7 +13,7 @@ import (
13 "github.com/bnema/dumber/internal/infrastructure/filtering"13 "github.com/bnema/dumber/internal/infrastructure/filtering"
14 "github.com/bnema/dumber/internal/infrastructure/filtering/mocks"14 "github.com/bnema/dumber/internal/infrastructure/filtering/mocks"
15 "github.com/bnema/dumber/internal/logging"15 "github.com/bnema/dumber/internal/logging"
16- "github.com/bnema/puregotk-webkit/webkit"16+ "github.com/bnema/puregotk/v4/webkit"
17 "github.com/stretchr/testify/assert"17 "github.com/stretchr/testify/assert"
18 "github.com/stretchr/testify/mock"18 "github.com/stretchr/testify/mock"
19 "github.com/stretchr/testify/require"19 "github.com/stretchr/testify/require"
M internal/infrastructure/filtering/mocks/mocks.go +1 -1
@@ -9,7 +9,7 @@ import (
99 "time"
1010
1111 "github.com/bnema/dumber/internal/infrastructure/filtering"
12- "github.com/bnema/puregotk-webkit/webkit"
12+ "github.com/bnema/puregotk/v4/webkit"
1313 mock "github.com/stretchr/testify/mock"
1414 )
1515
@@ -9,7 +9,7 @@ import (
9 "time"9 "time"
10 10
11 "github.com/bnema/dumber/internal/infrastructure/filtering"11 "github.com/bnema/dumber/internal/infrastructure/filtering"
12- "github.com/bnema/puregotk-webkit/webkit"12+ "github.com/bnema/puregotk/v4/webkit"
13 mock "github.com/stretchr/testify/mock"13 mock "github.com/stretchr/testify/mock"
14 )14 )
15 15
M internal/infrastructure/filtering/store.go +1 -1
@@ -6,8 +6,8 @@ import (
66 "sync"
77
88 "github.com/bnema/dumber/internal/logging"
9- "github.com/bnema/puregotk-webkit/webkit"
109 "github.com/bnema/puregotk/v4/gio"
10+ "github.com/bnema/puregotk/v4/webkit"
1111 )
1212
1313 // Store wraps webkit.UserContentFilterStore with Go-friendly async operations.
@@ -6,8 +6,8 @@ import (
6 "sync"6 "sync"
7 7
8 "github.com/bnema/dumber/internal/logging"8 "github.com/bnema/dumber/internal/logging"
9- "github.com/bnema/puregotk-webkit/webkit"
10 "github.com/bnema/puregotk/v4/gio"9 "github.com/bnema/puregotk/v4/gio"
10+ "github.com/bnema/puregotk/v4/webkit"
11 )11 )
12 12
13 // Store wraps webkit.UserContentFilterStore with Go-friendly async operations.13 // Store wraps webkit.UserContentFilterStore with Go-friendly async operations.
M internal/infrastructure/textinput/webview_target.go +1 -1
@@ -6,7 +6,7 @@ import (
66
77 "github.com/bnema/dumber/internal/application/port"
88 "github.com/bnema/dumber/internal/logging"
9- "github.com/bnema/puregotk-webkit/webkit"
9+ "github.com/bnema/puregotk/v4/webkit"
1010 )
1111
1212 // deleteBeforeCursorJS is the JavaScript template to delete n characters before cursor.
@@ -6,7 +6,7 @@ import (
6 6
7 "github.com/bnema/dumber/internal/application/port"7 "github.com/bnema/dumber/internal/application/port"
8 "github.com/bnema/dumber/internal/logging"8 "github.com/bnema/dumber/internal/logging"
9- "github.com/bnema/puregotk-webkit/webkit"9+ "github.com/bnema/puregotk/v4/webkit"
10 )10 )
11 11
12 // deleteBeforeCursorJS is the JavaScript template to delete n characters before cursor.12 // deleteBeforeCursorJS is the JavaScript template to delete n characters before cursor.
M internal/infrastructure/transcoder/pipeline.go +1 -1
@@ -13,7 +13,7 @@ import (
1313 "net"
1414 "time"
1515
16- "github.com/ebitengine/purego"
16+ "github.com/bnema/purego"
1717 "github.com/rs/zerolog"
1818
1919 "github.com/bnema/purego-ffmpeg/ffmpeg"
@@ -13,7 +13,7 @@ import (
13 "net"13 "net"
14 "time"14 "time"
15 15
16- "github.com/ebitengine/purego"16+ "github.com/bnema/purego"
17 "github.com/rs/zerolog"17 "github.com/rs/zerolog"
18 18
19 "github.com/bnema/purego-ffmpeg/ffmpeg"19 "github.com/bnema/purego-ffmpeg/ffmpeg"
M internal/infrastructure/webkit/context.go +2 -2
@@ -7,12 +7,12 @@ import (
77 "sync"
88
99 "github.com/bnema/dumber/internal/logging"
10- "github.com/bnema/puregotk-webkit/webkit"
10+ "github.com/bnema/puregotk/v4/webkit"
1111 "github.com/rs/zerolog"
1212 )
1313
1414 // FaviconDatabase is a type alias for webkit.FaviconDatabase.
15-// Re-exported for use by UI layer without direct puregotk-webkit import.
15+// Re-exported for use by the UI layer without a direct WebKit binding import.
1616 type FaviconDatabase = webkit.FaviconDatabase
1717
1818 // WebKitContext manages the shared WebContext and persistent NetworkSession.
@@ -7,12 +7,12 @@ import (
7 "sync"7 "sync"
8 8
9 "github.com/bnema/dumber/internal/logging"9 "github.com/bnema/dumber/internal/logging"
10- "github.com/bnema/puregotk-webkit/webkit"10+ "github.com/bnema/puregotk/v4/webkit"
11 "github.com/rs/zerolog"11 "github.com/rs/zerolog"
12 )12 )
13 13
14 // FaviconDatabase is a type alias for webkit.FaviconDatabase.14 // FaviconDatabase is a type alias for webkit.FaviconDatabase.
15-// Re-exported for use by UI layer without direct puregotk-webkit import.15+// Re-exported for use by the UI layer without a direct WebKit binding import.
16 type FaviconDatabase = webkit.FaviconDatabase16 type FaviconDatabase = webkit.FaviconDatabase
17 17
18 // WebKitContext manages the shared WebContext and persistent NetworkSession.18 // WebKitContext manages the shared WebContext and persistent NetworkSession.
M internal/infrastructure/webkit/context_menu.go +1 -1
@@ -17,8 +17,8 @@ import (
1717 "github.com/bnema/dumber/internal/application/port"
1818 "github.com/bnema/dumber/internal/domain/entity"
1919 "github.com/bnema/dumber/internal/logging"
20- "github.com/bnema/puregotk-webkit/webkit"
2120 "github.com/bnema/puregotk/v4/gtk"
21+ "github.com/bnema/puregotk/v4/webkit"
2222 )
2323
2424 // contextMenuResolver implements port.ImageDataResolver by fetching image bytes
@@ -17,8 +17,8 @@ import (
17 "github.com/bnema/dumber/internal/application/port"17 "github.com/bnema/dumber/internal/application/port"
18 "github.com/bnema/dumber/internal/domain/entity"18 "github.com/bnema/dumber/internal/domain/entity"
19 "github.com/bnema/dumber/internal/logging"19 "github.com/bnema/dumber/internal/logging"
20- "github.com/bnema/puregotk-webkit/webkit"
21 "github.com/bnema/puregotk/v4/gtk"20 "github.com/bnema/puregotk/v4/gtk"
21+ "github.com/bnema/puregotk/v4/webkit"
22 )22 )
23 23
24 // contextMenuResolver implements port.ImageDataResolver by fetching image bytes24 // contextMenuResolver implements port.ImageDataResolver by fetching image bytes
M internal/infrastructure/webkit/download_handler.go +1 -1
@@ -9,8 +9,8 @@ import (
99 "github.com/bnema/dumber/internal/application/port"
1010 downloadutil "github.com/bnema/dumber/internal/domain/download"
1111 "github.com/bnema/dumber/internal/logging"
12- "github.com/bnema/puregotk-webkit/webkit"
1312 "github.com/bnema/puregotk/v4/glib"
13+ "github.com/bnema/puregotk/v4/webkit"
1414 )
1515
1616 const (
@@ -9,8 +9,8 @@ import (
9 "github.com/bnema/dumber/internal/application/port"9 "github.com/bnema/dumber/internal/application/port"
10 downloadutil "github.com/bnema/dumber/internal/domain/download"10 downloadutil "github.com/bnema/dumber/internal/domain/download"
11 "github.com/bnema/dumber/internal/logging"11 "github.com/bnema/dumber/internal/logging"
12- "github.com/bnema/puregotk-webkit/webkit"
13 "github.com/bnema/puregotk/v4/glib"12 "github.com/bnema/puregotk/v4/glib"
13+ "github.com/bnema/puregotk/v4/webkit"
14 )14 )
15 15
16 const (16 const (
M internal/infrastructure/webkit/gobject_type_helpers.go +1 -1
@@ -5,9 +5,9 @@ import (
55 "sync"
66
77 "github.com/bnema/dumber/internal/logging"
8+ "github.com/bnema/purego"
89 "github.com/bnema/puregotk/pkg/core"
910 gtypes "github.com/bnema/puregotk/v4/gobject/types"
10- "github.com/ebitengine/purego"
1111 )
1212
1313 var (
@@ -5,9 +5,9 @@ import (
5 "sync"5 "sync"
6 6
7 "github.com/bnema/dumber/internal/logging"7 "github.com/bnema/dumber/internal/logging"
8+ "github.com/bnema/purego"
8 "github.com/bnema/puregotk/pkg/core"9 "github.com/bnema/puregotk/pkg/core"
9 gtypes "github.com/bnema/puregotk/v4/gobject/types"10 gtypes "github.com/bnema/puregotk/v4/gobject/types"
10- "github.com/ebitengine/purego"
11 )11 )
12 12
13 var (13 var (
M internal/infrastructure/webkit/injector.go +1 -1
@@ -10,7 +10,7 @@ import (
1010 "github.com/bnema/dumber/internal/domain/entity"
1111 "github.com/bnema/dumber/internal/infrastructure/webutil"
1212 "github.com/bnema/dumber/internal/logging"
13- "github.com/bnema/puregotk-webkit/webkit"
13+ "github.com/bnema/puregotk/v4/webkit"
1414 )
1515
1616 const (
@@ -10,7 +10,7 @@ import (
10 "github.com/bnema/dumber/internal/domain/entity"10 "github.com/bnema/dumber/internal/domain/entity"
11 "github.com/bnema/dumber/internal/infrastructure/webutil"11 "github.com/bnema/dumber/internal/infrastructure/webutil"
12 "github.com/bnema/dumber/internal/logging"12 "github.com/bnema/dumber/internal/logging"
13- "github.com/bnema/puregotk-webkit/webkit"13+ "github.com/bnema/puregotk/v4/webkit"
14 )14 )
15 15
16 const (16 const (
M internal/infrastructure/webkit/injector_accent_test.go +1 -1
@@ -3,7 +3,7 @@ package webkit
33 import (
44 "testing"
55
6- "github.com/bnema/puregotk-webkit/webkit"
6+ "github.com/bnema/puregotk/v4/webkit"
77 "github.com/stretchr/testify/assert"
88 )
99
@@ -3,7 +3,7 @@ package webkit
3 import (3 import (
4 "testing"4 "testing"
5 5
6- "github.com/bnema/puregotk-webkit/webkit"6+ "github.com/bnema/puregotk/v4/webkit"
7 "github.com/stretchr/testify/assert"7 "github.com/stretchr/testify/assert"
8 )8 )
9 9
M internal/infrastructure/webkit/memory_pressure.go +1 -1
@@ -5,7 +5,7 @@ import (
55
66 "github.com/bnema/dumber/internal/application/port"
77 "github.com/bnema/dumber/internal/logging"
8- "github.com/bnema/puregotk-webkit/webkit"
8+ "github.com/bnema/puregotk/v4/webkit"
99 )
1010
1111 // MemoryPressureApplier implements port.MemoryPressureApplier for WebKitGTK.
@@ -5,7 +5,7 @@ import (
5 5
6 "github.com/bnema/dumber/internal/application/port"6 "github.com/bnema/dumber/internal/application/port"
7 "github.com/bnema/dumber/internal/logging"7 "github.com/bnema/dumber/internal/logging"
8- "github.com/bnema/puregotk-webkit/webkit"8+ "github.com/bnema/puregotk/v4/webkit"
9 )9 )
10 10
11 // MemoryPressureApplier implements port.MemoryPressureApplier for WebKitGTK.11 // MemoryPressureApplier implements port.MemoryPressureApplier for WebKitGTK.
M internal/infrastructure/webkit/messaging.go +2 -2
@@ -9,8 +9,8 @@ import (
99
1010 "github.com/bnema/dumber/internal/application/port"
1111 "github.com/bnema/dumber/internal/logging"
12- "github.com/bnema/puregotk-webkit/javascriptcore"
13- "github.com/bnema/puregotk-webkit/webkit"
12+ "github.com/bnema/puregotk/v4/javascriptcore"
13+ "github.com/bnema/puregotk/v4/webkit"
1414 )
1515
1616 // Message is the JS -> Go message envelope sent via postMessage.
@@ -9,8 +9,8 @@ import (
9 9
10 "github.com/bnema/dumber/internal/application/port"10 "github.com/bnema/dumber/internal/application/port"
11 "github.com/bnema/dumber/internal/logging"11 "github.com/bnema/dumber/internal/logging"
12- "github.com/bnema/puregotk-webkit/javascriptcore"12+ "github.com/bnema/puregotk/v4/javascriptcore"
13- "github.com/bnema/puregotk-webkit/webkit"13+ "github.com/bnema/puregotk/v4/webkit"
14 )14 )
15 15
16 // Message is the JS -> Go message envelope sent via postMessage.16 // Message is the JS -> Go message envelope sent via postMessage.
M internal/infrastructure/webkit/pool.go +1 -1
@@ -10,8 +10,8 @@ import (
1010 "time"
1111
1212 "github.com/bnema/dumber/internal/logging"
13- "github.com/bnema/puregotk-webkit/webkit"
1413 "github.com/bnema/puregotk/v4/glib"
14+ "github.com/bnema/puregotk/v4/webkit"
1515 )
1616
1717 // ErrPoolClosed is returned when operations are attempted on a closed pool.
@@ -10,8 +10,8 @@ import (
10 "time"10 "time"
11 11
12 "github.com/bnema/dumber/internal/logging"12 "github.com/bnema/dumber/internal/logging"
13- "github.com/bnema/puregotk-webkit/webkit"
14 "github.com/bnema/puregotk/v4/glib"13 "github.com/bnema/puregotk/v4/glib"
14+ "github.com/bnema/puregotk/v4/webkit"
15 )15 )
16 16
17 // ErrPoolClosed is returned when operations are attempted on a closed pool.17 // ErrPoolClosed is returned when operations are attempted on a closed pool.
M internal/infrastructure/webkit/scheme_handler.go +2 -2
@@ -17,9 +17,9 @@ import (
1717 "github.com/bnema/dumber/internal/infrastructure/env"
1818 "github.com/bnema/dumber/internal/infrastructure/webutil"
1919 "github.com/bnema/dumber/internal/logging"
20- "github.com/bnema/puregotk-webkit/soup"
21- "github.com/bnema/puregotk-webkit/webkit"
2220 "github.com/bnema/puregotk/v4/gio"
21+ "github.com/bnema/puregotk/v4/soup"
22+ "github.com/bnema/puregotk/v4/webkit"
2323 "github.com/rs/zerolog"
2424 )
2525
@@ -17,9 +17,9 @@ import (
17 "github.com/bnema/dumber/internal/infrastructure/env"17 "github.com/bnema/dumber/internal/infrastructure/env"
18 "github.com/bnema/dumber/internal/infrastructure/webutil"18 "github.com/bnema/dumber/internal/infrastructure/webutil"
19 "github.com/bnema/dumber/internal/logging"19 "github.com/bnema/dumber/internal/logging"
20- "github.com/bnema/puregotk-webkit/soup"
21- "github.com/bnema/puregotk-webkit/webkit"
22 "github.com/bnema/puregotk/v4/gio"20 "github.com/bnema/puregotk/v4/gio"
21+ "github.com/bnema/puregotk/v4/soup"
22+ "github.com/bnema/puregotk/v4/webkit"
23 "github.com/rs/zerolog"23 "github.com/rs/zerolog"
24 )24 )
25 25
M internal/infrastructure/webkit/settings.go +1 -1
@@ -6,7 +6,7 @@ import (
66
77 "github.com/bnema/dumber/internal/infrastructure/config"
88 "github.com/bnema/dumber/internal/logging"
9- "github.com/bnema/puregotk-webkit/webkit"
9+ "github.com/bnema/puregotk/v4/webkit"
1010 "github.com/rs/zerolog"
1111 )
1212
@@ -6,7 +6,7 @@ import (
6 6
7 "github.com/bnema/dumber/internal/infrastructure/config"7 "github.com/bnema/dumber/internal/infrastructure/config"
8 "github.com/bnema/dumber/internal/logging"8 "github.com/bnema/dumber/internal/logging"
9- "github.com/bnema/puregotk-webkit/webkit"9+ "github.com/bnema/puregotk/v4/webkit"
10 "github.com/rs/zerolog"10 "github.com/rs/zerolog"
11 )11 )
12 12
M internal/infrastructure/webkit/webview.go +1 -1
@@ -15,13 +15,13 @@ import (
1515 urlutil "github.com/bnema/dumber/internal/domain/url"
1616 "github.com/bnema/dumber/internal/infrastructure/desktop"
1717 "github.com/bnema/dumber/internal/logging"
18- "github.com/bnema/puregotk-webkit/webkit"
1918 "github.com/bnema/puregotk/v4/gdk"
2019 "github.com/bnema/puregotk/v4/gio"
2120 "github.com/bnema/puregotk/v4/glib"
2221 "github.com/bnema/puregotk/v4/gobject"
2322 gtypes "github.com/bnema/puregotk/v4/gobject/types"
2423 "github.com/bnema/puregotk/v4/gtk"
24+ "github.com/bnema/puregotk/v4/webkit"
2525 "github.com/rs/zerolog"
2626 )
2727
@@ -15,13 +15,13 @@ import (
15 urlutil "github.com/bnema/dumber/internal/domain/url"15 urlutil "github.com/bnema/dumber/internal/domain/url"
16 "github.com/bnema/dumber/internal/infrastructure/desktop"16 "github.com/bnema/dumber/internal/infrastructure/desktop"
17 "github.com/bnema/dumber/internal/logging"17 "github.com/bnema/dumber/internal/logging"
18- "github.com/bnema/puregotk-webkit/webkit"
19 "github.com/bnema/puregotk/v4/gdk"18 "github.com/bnema/puregotk/v4/gdk"
20 "github.com/bnema/puregotk/v4/gio"19 "github.com/bnema/puregotk/v4/gio"
21 "github.com/bnema/puregotk/v4/glib"20 "github.com/bnema/puregotk/v4/glib"
22 "github.com/bnema/puregotk/v4/gobject"21 "github.com/bnema/puregotk/v4/gobject"
23 gtypes "github.com/bnema/puregotk/v4/gobject/types"22 gtypes "github.com/bnema/puregotk/v4/gobject/types"
24 "github.com/bnema/puregotk/v4/gtk"23 "github.com/bnema/puregotk/v4/gtk"
24+ "github.com/bnema/puregotk/v4/webkit"
25 "github.com/rs/zerolog"25 "github.com/rs/zerolog"
26 )26 )
27 27
M internal/infrastructure/webkit/webview_termination_test.go +1 -1
@@ -3,7 +3,7 @@ package webkit
33 import (
44 "testing"
55
6- webkitlib "github.com/bnema/puregotk-webkit/webkit"
6+ webkitlib "github.com/bnema/puregotk/v4/webkit"
77 "github.com/stretchr/testify/assert"
88 )
99
@@ -3,7 +3,7 @@ package webkit
3 import (3 import (
4 "testing"4 "testing"
5 5
6- webkitlib "github.com/bnema/puregotk-webkit/webkit"6+ webkitlib "github.com/bnema/puregotk/v4/webkit"
7 "github.com/stretchr/testify/assert"7 "github.com/stretchr/testify/assert"
8 )8 )
9 9
M internal/ui/app.go +2 -2
@@ -2823,8 +2823,8 @@ func (a *App) installFloatingOverlayPositioning(tabID entity.TabID, workspaceOve
28232823 return
28242824 }
28252825
2826- cb := func(_ gtk.Overlay, widget *gtk.Widget, allocationPtr *uintptr) bool {
2827- var widgetPtr uintptr
2826+ cb := func(_ gtk.Overlay, widgetPtr uintptr, allocationPtr *uintptr) bool {
2827+ widget := gtk.WidgetNewFromInternalPtr(widgetPtr)
28282828 if widget != nil {
28292829 widgetPtr = widget.GoPointer()
28302830 }
@@ -2823,8 +2823,8 @@ func (a *App) installFloatingOverlayPositioning(tabID entity.TabID, workspaceOve
2823 return2823 return
2824 }2824 }
2825 2825
2826- cb := func(_ gtk.Overlay, widget *gtk.Widget, allocationPtr *uintptr) bool {2826+ cb := func(_ gtk.Overlay, widgetPtr uintptr, allocationPtr *uintptr) bool {
2827- var widgetPtr uintptr2827+ widget := gtk.WidgetNewFromInternalPtr(widgetPtr)
2828 if widget != nil {2828 if widget != nil {
2829 widgetPtr = widget.GoPointer()2829 widgetPtr = widget.GoPointer()
2830 }2830 }
M internal/ui/component/omnibox.go +4 -2
@@ -728,8 +728,9 @@ func (o *Omnibox) initList() error {
728728 o.listBox.AddCssClass("omnibox-listbox")
729729 o.listBox.SetSelectionMode(gtk.SelectionSingleValue)
730730
731- rowSelectedCb := func(_ gtk.ListBox, row *gtk.ListBoxRow) {
731+ rowSelectedCb := func(_ gtk.ListBox, rowPtr uintptr) {
732732 o.restoreEntryToRealInput()
733+ row := gtk.ListBoxRowNewFromInternalPtr(rowPtr)
733734 if row == nil {
734735 o.mu.Lock()
735736 o.selectedIndex = -1
@@ -745,7 +746,8 @@ func (o *Omnibox) initList() error {
745746 o.listBox.ConnectRowSelected(&rowSelectedCb)
746747
747748 // Handle row activation (click or Enter) - navigate directly to the URL
748- rowActivatedCb := func(_ gtk.ListBox, row *gtk.ListBoxRow) {
749+ rowActivatedCb := func(_ gtk.ListBox, rowPtr uintptr) {
750+ row := gtk.ListBoxRowNewFromInternalPtr(rowPtr)
749751 if row == nil {
750752 return
751753 }
@@ -728,8 +728,9 @@ func (o *Omnibox) initList() error {
728 o.listBox.AddCssClass("omnibox-listbox")728 o.listBox.AddCssClass("omnibox-listbox")
729 o.listBox.SetSelectionMode(gtk.SelectionSingleValue)729 o.listBox.SetSelectionMode(gtk.SelectionSingleValue)
730 730
731- rowSelectedCb := func(_ gtk.ListBox, row *gtk.ListBoxRow) {731+ rowSelectedCb := func(_ gtk.ListBox, rowPtr uintptr) {
732 o.restoreEntryToRealInput()732 o.restoreEntryToRealInput()
733+ row := gtk.ListBoxRowNewFromInternalPtr(rowPtr)
733 if row == nil {734 if row == nil {
734 o.mu.Lock()735 o.mu.Lock()
735 o.selectedIndex = -1736 o.selectedIndex = -1
@@ -745,7 +746,8 @@ func (o *Omnibox) initList() error {
745 o.listBox.ConnectRowSelected(&rowSelectedCb)746 o.listBox.ConnectRowSelected(&rowSelectedCb)
746 747
747 // Handle row activation (click or Enter) - navigate directly to the URL748 // Handle row activation (click or Enter) - navigate directly to the URL
748- rowActivatedCb := func(_ gtk.ListBox, row *gtk.ListBoxRow) {749+ rowActivatedCb := func(_ gtk.ListBox, rowPtr uintptr) {
750+ row := gtk.ListBoxRowNewFromInternalPtr(rowPtr)
749 if row == nil {751 if row == nil {
750 return752 return
751 }753 }
M internal/ui/component/session_manager.go +2 -1
@@ -314,7 +314,8 @@ func (sm *SessionManager) initList() error {
314314 sm.listBox.SetSelectionMode(gtk.SelectionSingleValue)
315315
316316 // Connect row selection - map list row index to session index
317- rowSelectedCb := func(_ gtk.ListBox, row *gtk.ListBoxRow) {
317+ rowSelectedCb := func(_ gtk.ListBox, rowPtr uintptr) {
318+ row := gtk.ListBoxRowNewFromInternalPtr(rowPtr)
318319 if row == nil {
319320 return
320321 }
@@ -314,7 +314,8 @@ func (sm *SessionManager) initList() error {
314 sm.listBox.SetSelectionMode(gtk.SelectionSingleValue)314 sm.listBox.SetSelectionMode(gtk.SelectionSingleValue)
315 315
316 // Connect row selection - map list row index to session index316 // Connect row selection - map list row index to session index
317- rowSelectedCb := func(_ gtk.ListBox, row *gtk.ListBoxRow) {317+ rowSelectedCb := func(_ gtk.ListBox, rowPtr uintptr) {
318+ row := gtk.ListBoxRowNewFromInternalPtr(rowPtr)
318 if row == nil {319 if row == nil {
319 return320 return
320 }321 }
M internal/ui/component/tab_picker.go +2 -1
@@ -232,7 +232,8 @@ func (tp *TabPicker) createList() error {
232232 tp.listBox.AddCssClass("tab-picker-list")
233233 tp.listBox.SetSelectionMode(gtk.SelectionSingleValue)
234234
235- rowSelectedCb := func(_ gtk.ListBox, row *gtk.ListBoxRow) {
235+ rowSelectedCb := func(_ gtk.ListBox, rowPtr uintptr) {
236+ row := gtk.ListBoxRowNewFromInternalPtr(rowPtr)
236237 if row == nil {
237238 return
238239 }
@@ -232,7 +232,8 @@ func (tp *TabPicker) createList() error {
232 tp.listBox.AddCssClass("tab-picker-list")232 tp.listBox.AddCssClass("tab-picker-list")
233 tp.listBox.SetSelectionMode(gtk.SelectionSingleValue)233 tp.listBox.SetSelectionMode(gtk.SelectionSingleValue)
234 234
235- rowSelectedCb := func(_ gtk.ListBox, row *gtk.ListBoxRow) {235+ rowSelectedCb := func(_ gtk.ListBox, rowPtr uintptr) {
236+ row := gtk.ListBoxRowNewFromInternalPtr(rowPtr)
236 if row == nil {237 if row == nil {
237 return238 return
238 }239 }

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