Fix crash on launch on macOS

This commit is contained in:
Xpl0itU 2023-08-11 14:57:27 +02:00
parent 9bb15fce53
commit 6943cd569e
3 changed files with 20 additions and 14 deletions

View file

@ -7,6 +7,8 @@ import (
"runtime"
wiiudownloader "github.com/Xpl0itU/WiiUDownloader"
"github.com/gotk3/gotk3/glib"
"github.com/gotk3/gotk3/gtk"
)
func main() {
@ -31,8 +33,18 @@ func main() {
os.Setenv("GSETTINGS_SCHEMA_DIR", filePath)
}
}
win := NewMainWindow(wiiudownloader.GetTitleEntries(wiiudownloader.TITLE_CATEGORY_GAME), logger)
gtk.Init(nil)
win.ShowAll()
Main()
app, err := gtk.ApplicationNew("io.github.xpl0itu.wiiudownloader", glib.APPLICATION_FLAGS_NONE)
if err != nil {
logger.Fatal(err.Error())
}
app.Connect("activate", func() {
win := NewMainWindow(app, wiiudownloader.GetTitleEntries(wiiudownloader.TITLE_CATEGORY_GAME), logger)
win.ShowAll()
app.AddWindow(win.window)
app.GetActiveWindow().Show()
})
app.Run(nil)
app.Quit()
}

View file

@ -26,7 +26,7 @@ const (
)
type MainWindow struct {
window *gtk.Window
window *gtk.ApplicationWindow
treeView *gtk.TreeView
titles []wiiudownloader.TitleEntry
searchEntry *gtk.Entry
@ -41,16 +41,14 @@ type MainWindow struct {
lastSearchText string
}
func NewMainWindow(entries []wiiudownloader.TitleEntry, logger *wiiudownloader.Logger) *MainWindow {
gtk.Init(nil)
func NewMainWindow(app *gtk.Application, entries []wiiudownloader.TitleEntry, logger *wiiudownloader.Logger) *MainWindow {
gSettings, err := gtk.SettingsGetDefault()
if err != nil {
logger.Error(err.Error())
}
gSettings.SetProperty("gtk-application-prefer-dark-theme", isDarkMode())
win, err := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
win, err := gtk.ApplicationWindowNew(app)
if err != nil {
logger.Fatal("Unable to create window:", err)
}
@ -425,7 +423,7 @@ func (mw *MainWindow) ShowAll() {
mw.window.Add(mainvBox)
mw.window.ShowAll()
mainvBox.ShowAll()
}
func (mw *MainWindow) onRegionChange(button *gtk.CheckButton, region uint8) {
@ -791,7 +789,3 @@ queueProcessingLoop:
return nil
}
func Main() {
gtk.Main()
}

View file

@ -33,7 +33,7 @@ type ProgressWindow struct {
cancelled bool
}
func CreateProgressWindow(parent *gtk.Window) (ProgressWindow, error) {
func CreateProgressWindow(parent *gtk.ApplicationWindow) (ProgressWindow, error) {
win, err := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
if err != nil {
return ProgressWindow{}, err