Commit b06d78d9 authored by Roman Alifanov's avatar Roman Alifanov

fix ui freeze

parent 40bc9bed
......@@ -10,6 +10,7 @@ import (
_ "embed"
"github.com/diamondburned/gotk4-adwaita/pkg/adw"
"github.com/diamondburned/gotk4/pkg/glib/v2"
"github.com/diamondburned/gotk4/pkg/gtk/v4"
)
......@@ -79,7 +80,6 @@ func NewUpdateRow(name string, info apm.PackageChanges, runUpgradeCallback func(
}
pkgsWithInfo := make(map[string]apm.InfoResponse)
var mu sync.Mutex
var wg sync.WaitGroup
......@@ -87,8 +87,8 @@ func NewUpdateRow(name string, info apm.PackageChanges, runUpgradeCallback func(
for _, p := range pkgs {
wg.Add(1)
go func(pkg string) {
pkg := p
go func() {
defer wg.Done()
sem <- struct{}{}
......@@ -99,26 +99,31 @@ func NewUpdateRow(name string, info apm.PackageChanges, runUpgradeCallback func(
mu.Lock()
pkgsWithInfo[pkg] = info
mu.Unlock()
}(p)
}()
}
wg.Wait()
go func(title string) {
wg.Wait()
row := adw.NewActionRow()
row.SetTitle(title)
row.SetActivatable(true)
glib.IdleAdd(func() {
row := adw.NewActionRow()
row.SetTitle(title)
row.SetActivatable(true)
page := NewListPage(runUpgradeCallback)
page := NewListPage(runUpgradeCallback)
row.ConnectActivated(func() {
win.navView.Push(page.nav)
})
row.ConnectActivated(func() {
win.navView.Push(page.nav)
})
for p, info := range pkgsWithInfo {
ar := NewPackageRow(p, info.PackageInfo)
page.listbox.Append(ar)
}
upage.listbox.Append(row)
for p, info := range pkgsWithInfo {
ar := NewPackageRow(p, info.PackageInfo)
page.listbox.Append(ar)
}
upage.listbox.Append(row)
})
}(title)
}
return urow
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment