Commit b06d78d9 authored by Roman Alifanov's avatar Roman Alifanov

fix ui freeze

parent 40bc9bed
...@@ -10,6 +10,7 @@ import ( ...@@ -10,6 +10,7 @@ import (
_ "embed" _ "embed"
"github.com/diamondburned/gotk4-adwaita/pkg/adw" "github.com/diamondburned/gotk4-adwaita/pkg/adw"
"github.com/diamondburned/gotk4/pkg/glib/v2"
"github.com/diamondburned/gotk4/pkg/gtk/v4" "github.com/diamondburned/gotk4/pkg/gtk/v4"
) )
...@@ -79,7 +80,6 @@ func NewUpdateRow(name string, info apm.PackageChanges, runUpgradeCallback func( ...@@ -79,7 +80,6 @@ func NewUpdateRow(name string, info apm.PackageChanges, runUpgradeCallback func(
} }
pkgsWithInfo := make(map[string]apm.InfoResponse) pkgsWithInfo := make(map[string]apm.InfoResponse)
var mu sync.Mutex var mu sync.Mutex
var wg sync.WaitGroup var wg sync.WaitGroup
...@@ -87,8 +87,8 @@ func NewUpdateRow(name string, info apm.PackageChanges, runUpgradeCallback func( ...@@ -87,8 +87,8 @@ func NewUpdateRow(name string, info apm.PackageChanges, runUpgradeCallback func(
for _, p := range pkgs { for _, p := range pkgs {
wg.Add(1) wg.Add(1)
pkg := p
go func(pkg string) { go func() {
defer wg.Done() defer wg.Done()
sem <- struct{}{} sem <- struct{}{}
...@@ -99,26 +99,31 @@ func NewUpdateRow(name string, info apm.PackageChanges, runUpgradeCallback func( ...@@ -99,26 +99,31 @@ func NewUpdateRow(name string, info apm.PackageChanges, runUpgradeCallback func(
mu.Lock() mu.Lock()
pkgsWithInfo[pkg] = info pkgsWithInfo[pkg] = info
mu.Unlock() mu.Unlock()
}(p) }()
} }
wg.Wait() go func(title string) {
wg.Wait()
row := adw.NewActionRow() glib.IdleAdd(func() {
row.SetTitle(title) row := adw.NewActionRow()
row.SetActivatable(true) row.SetTitle(title)
row.SetActivatable(true)
page := NewListPage(runUpgradeCallback) page := NewListPage(runUpgradeCallback)
row.ConnectActivated(func() { row.ConnectActivated(func() {
win.navView.Push(page.nav) win.navView.Push(page.nav)
}) })
for p, info := range pkgsWithInfo { for p, info := range pkgsWithInfo {
ar := NewPackageRow(p, info.PackageInfo) ar := NewPackageRow(p, info.PackageInfo)
page.listbox.Append(ar) page.listbox.Append(ar)
} }
upage.listbox.Append(row)
upage.listbox.Append(row)
})
}(title)
} }
return urow 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