fix: prevent segfault by not exporting account menu.
ci/woodpecker/push/woodpecker Pipeline was successful Details
ci/woodpecker/push/docs Pipeline failed Details

Why does this work? No idea. But it seems to fix the crash.
This commit is contained in:
Johannes Frohnmeyer 2023-10-21 17:38:55 +02:00
parent 475717b6b4
commit c94c8b59af
Signed by: Johannes
GPG Key ID: E76429612C2929F4
2 changed files with 4 additions and 3 deletions

View File

@ -22,6 +22,7 @@ import io.gitlab.jfronny.inceptum.launcher.system.launch.LaunchType
import io.gitlab.jfronny.inceptum.launcher.system.setup.Steps
import io.gitlab.jfronny.inceptum.launcher.util.ProcessState
import org.gnome.gio.Cancellable
import org.gnome.gio.Menu
import org.gnome.gtk.*
import java.awt.Toolkit
import java.awt.datatransfer.DataFlavor
@ -67,7 +68,7 @@ object GtkMenubar {
file.button("exit") { app.quit() }
launchMenu = menu.submenu("launch")
generateLaunchMenu(app)
accountsMenu = menu.submenu("account")
accountsMenu = MenuBuilder(app, Menu(), "account") // this should ideally be menu.submenu("account"), but that causes a segfault
generateAccountsMenu(app)
val help = menu.submenu("help")
help.button("about") { AboutWindow.createAndShow() }

View File

@ -1,11 +1,11 @@
package io.gitlab.jfronny.inceptum.gtk.menu
import io.github.jwharm.javagi.glib.types.VariantTypes
import io.gitlab.jfronny.commons.throwable.ThrowingRunnable
import io.gitlab.jfronny.inceptum.gtk.util.I18n
import io.gitlab.jfronny.inceptum.gtk.util.Log
import org.gnome.gio.*
import org.gnome.glib.Variant
import org.gnome.glib.VariantType
import org.gnome.gtk.Application
import org.gnome.gtk.MenuButton
import org.gnome.gtk.PopoverMenu
@ -88,7 +88,7 @@ class MenuBuilder private constructor(map: ActionMap, menu: Menu, prefix: String
): BuiltRadioItem<T> {
var name = name
name = prefix + name
val action = SimpleAction.newStateful(name, VariantType("i"), Variant.newInt32(options.indexOf(initial)))
val action = SimpleAction.newStateful(name, VariantTypes.INT32, Variant.newInt32(options.indexOf(initial)))
addAction(name, action)
action.onActivate { variant: Variant? ->
action.state = variant