From 04d8121ca28cdbfb094d975151ce09012561aa20 Mon Sep 17 00:00:00 2001 From: JFronny Date: Mon, 16 Oct 2023 16:00:57 +0200 Subject: [PATCH] fix: update java-gi and, in doing so, fix segfault --- build.gradle.kts | 2 +- launcher-gtk/build.gradle.kts | 12 +++--------- .../io/gitlab/jfronny/inceptum/gtk/control/KEntry.kt | 3 +-- .../inceptum/gtk/control/KSignalListItemFactory.kt | 8 ++++---- .../io/gitlab/jfronny/inceptum/gtk/util/UIExt.kt | 8 -------- .../inceptum/gtk/window/create/NewInstanceWindow.kt | 3 +-- .../inceptum/gtk/window/dialog/StringInputDialog.kt | 3 +-- .../gtk/window/settings/instance/GeneralTab.kt | 2 +- launcher-gtk/src/main/kotlin/module-info.java | 3 ++- packaging/arch-linux | 2 +- 10 files changed, 15 insertions(+), 31 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 7ef8e81..c49a8ca 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -17,7 +17,7 @@ val jbAnnotationsVersion by extra("24.0.1") val lwjglVersion by extra("3.3.2") val imguiVersion by extra("1.86.10") // launcher-gtk -val javagiVersion by extra("0.6.1") +val javagiVersion by extra("0.7.2") val flavorProp: String by extra(prop("flavor", "custom")) if (!setOf("custom", "maven", "fat", "windows", "linux", "macos").contains(flavorProp)) throw IllegalStateException("Unsupported flavor: $flavorProp") diff --git a/launcher-gtk/build.gradle.kts b/launcher-gtk/build.gradle.kts index 8cabde0..ea2b718 100644 --- a/launcher-gtk/build.gradle.kts +++ b/launcher-gtk/build.gradle.kts @@ -17,20 +17,14 @@ samWithReceiver { repositories { mavenLocal() - maven("https://jitpack.io") { - content { - includeGroup("com.github.jwharm.java-gi") - includeGroup("com.github.jwharm") - } - } } dependencies { val javagiVersion: String by rootProject.extra - implementation("com.github.jwharm.java-gi:glib:$javagiVersion") - implementation("com.github.jwharm.java-gi:gtk:$javagiVersion") - implementation("com.github.jwharm.java-gi:adwaita:$javagiVersion") + implementation("io.github.jwharm.javagi:glib:$javagiVersion") + implementation("io.github.jwharm.javagi:gtk:$javagiVersion") + implementation("io.github.jwharm.javagi:adw:$javagiVersion") implementation(project(":launcher")) } diff --git a/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/control/KEntry.kt b/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/control/KEntry.kt index 5698704..defb4a3 100644 --- a/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/control/KEntry.kt +++ b/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/control/KEntry.kt @@ -1,6 +1,5 @@ package io.gitlab.jfronny.inceptum.gtk.control -import io.gitlab.jfronny.inceptum.gtk.util.kText import org.gnome.gtk.Entry import java.util.function.Consumer @@ -8,7 +7,7 @@ class KEntry(value: String? = ""): Entry() { private val onChange = ArrayList>() init { - kText = value ?: "" + text = value ?: "" onChanged { onChange.forEach { it.accept(text) } } } diff --git a/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/control/KSignalListItemFactory.kt b/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/control/KSignalListItemFactory.kt index 4942a72..7d60899 100644 --- a/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/control/KSignalListItemFactory.kt +++ b/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/control/KSignalListItemFactory.kt @@ -1,13 +1,13 @@ package io.gitlab.jfronny.inceptum.gtk.control -import io.github.jwharm.javagi.base.Signal +import io.github.jwharm.javagi.gobject.SignalConnection import org.gnome.gtk.ListItem import org.gnome.gtk.SignalListItemFactory import org.gnome.gtk.StringObject import org.gnome.gtk.Widget abstract class KSignalListItemFactory : SignalListItemFactory() { - private val toDisconnect: MutableMap>> = HashMap() + private val toDisconnect: MutableMap>> = HashMap() init { onSetup { val li = it as ListItem @@ -41,14 +41,14 @@ abstract class KSignalListItemFactory : SignalListItemF } interface BindContext: ActionContext { - fun registerForUnbind(signal: Signal<*>) + fun registerForUnbind(signal: SignalConnection<*>) } interface UnbindContext: ActionContext { } private inner class BindContextImpl(private val id: String, override val listItem: ListItem) : BindContext { - override fun registerForUnbind(signal: Signal<*>) { + override fun registerForUnbind(signal: SignalConnection<*>) { toDisconnect.computeIfAbsent(id) { _ -> HashSet() } .add(signal) } diff --git a/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/util/UIExt.kt b/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/util/UIExt.kt index ddc6041..ca03727 100644 --- a/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/util/UIExt.kt +++ b/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/util/UIExt.kt @@ -31,12 +31,4 @@ var MessageDialog.markup: String fun ActionRow.fixSubtitle() = ILabel.theme(firstChild!!.lastChild!!.prevSibling!!.lastChild as Label, ILabel.Mode.SUBTITLE) -// Work around a segfault with empty entries -var Entry.kText: String? - get() = text - set(value) { - if (value == "") buffer.clear() - else text = value - } - fun EntryBuffer.clear() = deleteText(0, length) \ No newline at end of file diff --git a/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/window/create/NewInstanceWindow.kt b/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/window/create/NewInstanceWindow.kt index a7f034c..f2f30a4 100644 --- a/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/window/create/NewInstanceWindow.kt +++ b/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/window/create/NewInstanceWindow.kt @@ -10,7 +10,6 @@ import io.gitlab.jfronny.inceptum.gtk.control.assistant.KAssistant import io.gitlab.jfronny.inceptum.gtk.schedule import io.gitlab.jfronny.inceptum.gtk.util.I18n import io.gitlab.jfronny.inceptum.gtk.util.Log -import io.gitlab.jfronny.inceptum.gtk.util.kText import io.gitlab.jfronny.inceptum.gtk.util.toTypedArray import io.gitlab.jfronny.inceptum.gtk.window.dialog.ProcessStateWatcherDialog import io.gitlab.jfronny.inceptum.launcher.api.FabricMetaApi @@ -104,7 +103,7 @@ class NewInstanceWindow(app: Application) : KAssistant(app) { append(entry) onOpen { name = InstanceNameTool.getDefaultName(gameVersion!!.id, useFabric) - entry.kText = name + entry.text = name } setComplete(true) diff --git a/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/window/dialog/StringInputDialog.kt b/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/window/dialog/StringInputDialog.kt index f7f6be0..98fe1b8 100644 --- a/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/window/dialog/StringInputDialog.kt +++ b/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/window/dialog/StringInputDialog.kt @@ -1,6 +1,5 @@ package io.gitlab.jfronny.inceptum.gtk.window.dialog -import io.gitlab.jfronny.inceptum.gtk.util.kText import org.gnome.gtk.* class StringInputDialog(parent: Window?, flags: DialogFlags, type: MessageType, buttons: ButtonsType, message: String, value: String) : MessageDialog(parent, flags, type, buttons, message) { @@ -8,7 +7,7 @@ class StringInputDialog(parent: Window?, flags: DialogFlags, type: MessageType, init { (messageArea as Box).append(entry) - entry.kText = value + entry.text = value } val input: String get() = entry.text diff --git a/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/window/settings/instance/GeneralTab.kt b/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/window/settings/instance/GeneralTab.kt index aeecef3..fc1eb4b 100644 --- a/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/window/settings/instance/GeneralTab.kt +++ b/launcher-gtk/src/main/kotlin/io/gitlab/jfronny/inceptum/gtk/window/settings/instance/GeneralTab.kt @@ -147,7 +147,7 @@ class GeneralTab(window: InstanceSettingsWindow) : SectionedSettingsTab if (responseId == ResponseType.ACCEPT.value) { val file = dialog.file!!.path - if (file != null) entry.kText = file + if (file != null) entry.text = file } } dialog.show() diff --git a/launcher-gtk/src/main/kotlin/module-info.java b/launcher-gtk/src/main/kotlin/module-info.java index 5d1a639..ccd720a 100644 --- a/launcher-gtk/src/main/kotlin/module-info.java +++ b/launcher-gtk/src/main/kotlin/module-info.java @@ -4,7 +4,8 @@ module io.gitlab.jfronny.inceptum.launcher.gtk { requires kotlin.stdlib; requires org.gnome.glib; requires org.gnome.gtk; - requires org.gnome.adwaita; + requires org.gnome.adw; + requires org.gnome.pango; // Should theoretically already be included transitively through inceptum.launcher and inceptum.common requires io.gitlab.jfronny.commons; diff --git a/packaging/arch-linux b/packaging/arch-linux index 28770e5..19ebde7 160000 --- a/packaging/arch-linux +++ b/packaging/arch-linux @@ -1 +1 @@ -Subproject commit 28770e5269128412d8d51a03aa6c072a8eff10cb +Subproject commit 19ebde77adad3b97e733d98f37a59c828138f53e