diff --git a/Package.swift b/Package.swift index e61951d..a648865 100644 --- a/Package.swift +++ b/Package.swift @@ -31,7 +31,7 @@ let package = Package( .package(url: "https://git.aparoksha.dev/aparoksha/meta-sqlite", from: "0.1.0"), .package( url: "https://git.aparoksha.dev/aparoksha/levenshtein-transformations", - from: "0.1.0" + branch: "main" ), .package(url: "https://github.com/CoreOffice/XMLCoder", from: "0.17.1") ], diff --git a/Sources/Adwaita/AnyView++.swift b/Sources/Adwaita/AnyView++.swift index 3225ed8..67eb3f2 100644 --- a/Sources/Adwaita/AnyView++.swift +++ b/Sources/Adwaita/AnyView++.swift @@ -351,6 +351,7 @@ extension AnyView { provider?.opaque(), .init(GTK_STYLE_PROVIDER_PRIORITY_APPLICATION) ) + g_object_unref(provider) } } diff --git a/Sources/CAdw/shim.h b/Sources/CAdw/shim.h index ea9ae7a..debf3aa 100644 --- a/Sources/CAdw/shim.h +++ b/Sources/CAdw/shim.h @@ -14,6 +14,7 @@ gtui_filedialog_save_finish (uint64_t dialog, uint64_t result, uint64_t data) GFile *file = gtk_file_dialog_save_finish (dialog, result, NULL); const char *path = g_file_get_path (file); filedialog_on_save_cb (dialog, path, data); + g_object_unref (file); } static void diff --git a/Sources/Core/View/Dialogs/AboutDialog.swift b/Sources/Core/View/Dialogs/AboutDialog.swift index 904aa5f..a6dd4fc 100644 --- a/Sources/Core/View/Dialogs/AboutDialog.swift +++ b/Sources/Core/View/Dialogs/AboutDialog.swift @@ -119,7 +119,9 @@ public struct AboutDialog: AdwaitaWidget { adw_dialog_set_content_height(dialog?.cast(), -1) } else { if storage.content[dialogID]?.first != nil { - adw_dialog_close(storage.content[dialogID]?.first?.opaquePointer?.cast()) + let dialog = storage.content[dialogID]?.first?.opaquePointer + adw_dialog_close(dialog?.cast()) + g_object_unref(dialog?.cast()) } } } diff --git a/Sources/Core/View/Dialogs/AlertDialog.swift b/Sources/Core/View/Dialogs/AlertDialog.swift index 438fb67..293d788 100644 --- a/Sources/Core/View/Dialogs/AlertDialog.swift +++ b/Sources/Core/View/Dialogs/AlertDialog.swift @@ -135,10 +135,7 @@ public struct AlertDialog: AdwaitaWidget { let old = storage.fields[Self.responsesID + id] as? [Response] ?? [] old.identifiableTransform( to: responses, - functions: .init { index, element in - adw_alert_dialog_remove_response(pointer?.cast(), responseID(old[safe: index]?.id)) - adw_alert_dialog_add_response(pointer?.cast(), responseID(element.id), element.title) - } delete: { index in + functions: .init { index in adw_alert_dialog_remove_response(pointer?.cast(), responseID(old[safe: index]?.id)) } insert: { _, element in adw_alert_dialog_add_response(pointer?.cast(), responseID(element.id), element.title) @@ -160,7 +157,9 @@ public struct AlertDialog: AdwaitaWidget { } } else { if storage.content[Self.dialogID + id]?.first != nil { - adw_dialog_close(storage.content[Self.dialogID + id]?.first?.opaquePointer?.cast()) + let dialog = storage.content[Self.dialogID + id]?.first?.opaquePointer + adw_dialog_close(dialog?.cast()) + g_object_unref(dialog?.cast()) } } } diff --git a/Sources/Core/View/Dialogs/Dialog.swift b/Sources/Core/View/Dialogs/Dialog.swift index 50f0d9f..e701819 100644 --- a/Sources/Core/View/Dialogs/Dialog.swift +++ b/Sources/Core/View/Dialogs/Dialog.swift @@ -111,7 +111,9 @@ public struct Dialog: AdwaitaWidget { } } else { if storage.content[dialogID + id]?.first != nil { - adw_dialog_close(storage.content[dialogID + id]?.first?.opaquePointer?.cast()) + let dialog = storage.content[dialogID + id]?.first?.opaquePointer + adw_dialog_close(dialog?.cast()) + g_object_unref(dialog?.cast()) } } } diff --git a/Sources/Core/View/Dialogs/FileDialog.swift b/Sources/Core/View/Dialogs/FileDialog.swift index b037b96..d654dc4 100644 --- a/Sources/Core/View/Dialogs/FileDialog.swift +++ b/Sources/Core/View/Dialogs/FileDialog.swift @@ -101,14 +101,17 @@ public struct FileDialog: AdwaitaWidget { gtk_file_filter_add_suffix(filter, name) } gtk_file_dialog_set_default_filter(pointer, filter) + g_object_unref(filter?.cast()) } else { gtk_file_dialog_set_default_filter(pointer, nil) } if let initialFolder { - gtk_file_dialog_set_initial_folder(pointer, g_file_new_for_path(initialFolder.absoluteString)) + let file = g_file_new_for_path(initialFolder.absoluteString) + gtk_file_dialog_set_initial_folder(pointer, file) + g_object_unref(file?.cast()) } let callbacks = AdwaitaFileDialog() - callbacks.onResult = { (storage.fields["result"] as? (URL) -> Void)?($0) } + callbacks.onResult = { (storage.fields["result"] as? (URL) -> Void)?($0); g_object_unref(pointer?.cast()) } callbacks.onCancel = { (storage.fields["cancel"] as? () -> Void)?() } callbacks.reset = { storage.fields["callbacks"] = nil } storage.fields["callbacks"] = callbacks diff --git a/Sources/Core/View/ForEach.swift b/Sources/Core/View/ForEach.swift index e25ed3e..4a2b565 100644 --- a/Sources/Core/View/ForEach.swift +++ b/Sources/Core/View/ForEach.swift @@ -58,18 +58,10 @@ public struct ForEach: AdwaitaWidget where Element: Identifiable { let widget: UnsafeMutablePointer? = storage.opaquePointer?.cast() old.identifiableTransform( to: elements, - functions: .init { index, element in - let child = content(element).storage(data: data, type: type) - gtk_box_remove(widget, contentStorage[safe: index]?.opaquePointer?.cast()) - gtk_box_insert_child_after( - widget, - child.opaquePointer?.cast(), - contentStorage[safe: index - 1]?.opaquePointer?.cast() - ) - contentStorage.remove(at: index) - contentStorage.insert(child, at: index) - } delete: { index in - gtk_box_remove(widget, contentStorage[safe: index]?.opaquePointer?.cast()) + functions: .init { index in + let child = contentStorage[safe: index]?.opaquePointer + gtk_box_remove(widget, child?.cast()) + g_object_unref(child?.cast()) contentStorage.remove(at: index) } insert: { index, element in let child = content(element).storage(data: data, type: type) diff --git a/Sources/Core/View/Forms/ComboRow+.swift b/Sources/Core/View/Forms/ComboRow+.swift index 684dbdc..882a9ee 100644 --- a/Sources/Core/View/Forms/ComboRow+.swift +++ b/Sources/Core/View/Forms/ComboRow+.swift @@ -59,10 +59,7 @@ extension ComboRow { let old = storage.fields[Self.values] as? [Element] ?? [] old.identifiableTransform( to: values, - functions: .init { index, element in - gtk_string_list_remove(list, .init(index)) - gtk_string_list_append(list, element.description) - } delete: { index in + functions: .init { index in gtk_string_list_remove(list, .init(index)) } insert: { _, element in gtk_string_list_append(list, element.description) diff --git a/Sources/Core/View/Generated/ActionRow.swift b/Sources/Core/View/Generated/ActionRow.swift index 0c7b263..1cd0d8f 100644 --- a/Sources/Core/View/Generated/ActionRow.swift +++ b/Sources/Core/View/Generated/ActionRow.swift @@ -2,7 +2,7 @@ // ActionRow.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/AspectFrame.swift b/Sources/Core/View/Generated/AspectFrame.swift index ed45889..3167e35 100644 --- a/Sources/Core/View/Generated/AspectFrame.swift +++ b/Sources/Core/View/Generated/AspectFrame.swift @@ -2,7 +2,7 @@ // AspectFrame.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/Avatar.swift b/Sources/Core/View/Generated/Avatar.swift index 053af53..cd2eb3f 100644 --- a/Sources/Core/View/Generated/Avatar.swift +++ b/Sources/Core/View/Generated/Avatar.swift @@ -2,7 +2,7 @@ // Avatar.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/Banner.swift b/Sources/Core/View/Generated/Banner.swift index c021cc1..800295a 100644 --- a/Sources/Core/View/Generated/Banner.swift +++ b/Sources/Core/View/Generated/Banner.swift @@ -2,7 +2,7 @@ // Banner.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/Bin.swift b/Sources/Core/View/Generated/Bin.swift index 41a83da..3bd5e21 100644 --- a/Sources/Core/View/Generated/Bin.swift +++ b/Sources/Core/View/Generated/Bin.swift @@ -2,7 +2,7 @@ // Bin.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/Box.swift b/Sources/Core/View/Generated/Box.swift index 26fb88f..dc99711 100644 --- a/Sources/Core/View/Generated/Box.swift +++ b/Sources/Core/View/Generated/Box.swift @@ -2,7 +2,7 @@ // Box.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/Button.swift b/Sources/Core/View/Generated/Button.swift index efa5d4a..a1c0e94 100644 --- a/Sources/Core/View/Generated/Button.swift +++ b/Sources/Core/View/Generated/Button.swift @@ -2,7 +2,7 @@ // Button.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/ButtonContent.swift b/Sources/Core/View/Generated/ButtonContent.swift index 4739731..6f2a9c9 100644 --- a/Sources/Core/View/Generated/ButtonContent.swift +++ b/Sources/Core/View/Generated/ButtonContent.swift @@ -2,7 +2,7 @@ // ButtonContent.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/Carousel.swift b/Sources/Core/View/Generated/Carousel.swift index edb6b1f..802b0d5 100644 --- a/Sources/Core/View/Generated/Carousel.swift +++ b/Sources/Core/View/Generated/Carousel.swift @@ -2,7 +2,7 @@ // Carousel.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw @@ -124,13 +124,7 @@ public struct Carousel: AdwaitaWidget where Element: Identifiable { let old = storage.fields["element"] as? [Element] ?? [] old.identifiableTransform( to: elements, - functions: .init { index, element in - let child = content(element).storage(data: data, type: type) - adw_carousel_remove(widget, adw_carousel_get_nth_page(widget, UInt(index).cInt)) - adw_carousel_insert(widget, child.opaquePointer?.cast(), index.cInt) - contentStorage.remove(at: index) - contentStorage.insert(child, at: index) - } delete: { index in + functions: .init { index in adw_carousel_remove(widget, adw_carousel_get_nth_page(widget, UInt(index).cInt)) contentStorage.remove(at: index) } insert: { index, element in diff --git a/Sources/Core/View/Generated/CenterBox.swift b/Sources/Core/View/Generated/CenterBox.swift index 514c94b..947811a 100644 --- a/Sources/Core/View/Generated/CenterBox.swift +++ b/Sources/Core/View/Generated/CenterBox.swift @@ -2,7 +2,7 @@ // CenterBox.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/CheckButton.swift b/Sources/Core/View/Generated/CheckButton.swift index 20d0c68..4d1d73f 100644 --- a/Sources/Core/View/Generated/CheckButton.swift +++ b/Sources/Core/View/Generated/CheckButton.swift @@ -2,7 +2,7 @@ // CheckButton.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/Clamp.swift b/Sources/Core/View/Generated/Clamp.swift index bae01f0..4875e21 100644 --- a/Sources/Core/View/Generated/Clamp.swift +++ b/Sources/Core/View/Generated/Clamp.swift @@ -2,7 +2,7 @@ // Clamp.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/ComboRow.swift b/Sources/Core/View/Generated/ComboRow.swift index 1e05b05..758e3a5 100644 --- a/Sources/Core/View/Generated/ComboRow.swift +++ b/Sources/Core/View/Generated/ComboRow.swift @@ -2,7 +2,7 @@ // ComboRow.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/EntryRow.swift b/Sources/Core/View/Generated/EntryRow.swift index ec09262..eb97aab 100644 --- a/Sources/Core/View/Generated/EntryRow.swift +++ b/Sources/Core/View/Generated/EntryRow.swift @@ -2,7 +2,7 @@ // EntryRow.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/ExpanderRow.swift b/Sources/Core/View/Generated/ExpanderRow.swift index 820f487..c2b1c8f 100644 --- a/Sources/Core/View/Generated/ExpanderRow.swift +++ b/Sources/Core/View/Generated/ExpanderRow.swift @@ -2,7 +2,7 @@ // ExpanderRow.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/Fixed.swift b/Sources/Core/View/Generated/Fixed.swift index 94c46b0..4ee0f7a 100644 --- a/Sources/Core/View/Generated/Fixed.swift +++ b/Sources/Core/View/Generated/Fixed.swift @@ -2,7 +2,7 @@ // Fixed.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/FlowBox.swift b/Sources/Core/View/Generated/FlowBox.swift index 9003935..300e9a6 100644 --- a/Sources/Core/View/Generated/FlowBox.swift +++ b/Sources/Core/View/Generated/FlowBox.swift @@ -2,7 +2,7 @@ // FlowBox.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw @@ -236,13 +236,7 @@ public struct FlowBox: AdwaitaWidget where Element: Identifiable { let old = storage.fields["element"] as? [Element] ?? [] old.identifiableTransform( to: elements, - functions: .init { index, element in - let child = content(element).storage(data: data, type: type) - gtk_flow_box_remove(widget, gtk_flow_box_get_child_at_index(widget, index.cInt)?.cast()) - gtk_flow_box_insert(widget, child.opaquePointer?.cast(), index.cInt) - contentStorage.remove(at: index) - contentStorage.insert(child, at: index) - } delete: { index in + functions: .init { index in gtk_flow_box_remove(widget, gtk_flow_box_get_child_at_index(widget, index.cInt)?.cast()) contentStorage.remove(at: index) } insert: { index, element in diff --git a/Sources/Core/View/Generated/HeaderBar.swift b/Sources/Core/View/Generated/HeaderBar.swift index 109d66e..36127f4 100644 --- a/Sources/Core/View/Generated/HeaderBar.swift +++ b/Sources/Core/View/Generated/HeaderBar.swift @@ -2,7 +2,7 @@ // HeaderBar.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/Label.swift b/Sources/Core/View/Generated/Label.swift index 66b6d0f..aacdbb1 100644 --- a/Sources/Core/View/Generated/Label.swift +++ b/Sources/Core/View/Generated/Label.swift @@ -2,7 +2,7 @@ // Label.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/LevelBar.swift b/Sources/Core/View/Generated/LevelBar.swift index 0f2a6a9..905aca1 100644 --- a/Sources/Core/View/Generated/LevelBar.swift +++ b/Sources/Core/View/Generated/LevelBar.swift @@ -2,7 +2,7 @@ // LevelBar.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/LinkButton.swift b/Sources/Core/View/Generated/LinkButton.swift index 83547b0..e7476d8 100644 --- a/Sources/Core/View/Generated/LinkButton.swift +++ b/Sources/Core/View/Generated/LinkButton.swift @@ -2,7 +2,7 @@ // LinkButton.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/ListBox.swift b/Sources/Core/View/Generated/ListBox.swift index 2e86c64..9533d24 100644 --- a/Sources/Core/View/Generated/ListBox.swift +++ b/Sources/Core/View/Generated/ListBox.swift @@ -2,7 +2,7 @@ // ListBox.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw @@ -218,13 +218,7 @@ public struct ListBox: AdwaitaWidget where Element: Identifiable { let old = storage.fields["element"] as? [Element] ?? [] old.identifiableTransform( to: elements, - functions: .init { index, element in - let child = content(element).storage(data: data, type: type) - gtk_list_box_remove(widget, gtk_list_box_get_row_at_index(widget, index.cInt)?.cast()) - gtk_list_box_insert(widget, child.opaquePointer?.cast(), index.cInt) - contentStorage.remove(at: index) - contentStorage.insert(child, at: index) - } delete: { index in + functions: .init { index in gtk_list_box_remove(widget, gtk_list_box_get_row_at_index(widget, index.cInt)?.cast()) contentStorage.remove(at: index) } insert: { index, element in diff --git a/Sources/Core/View/Generated/Menu.swift b/Sources/Core/View/Generated/Menu.swift index 288b144..b212e64 100644 --- a/Sources/Core/View/Generated/Menu.swift +++ b/Sources/Core/View/Generated/Menu.swift @@ -2,7 +2,7 @@ // Menu.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/NavigationView.swift b/Sources/Core/View/Generated/NavigationView.swift index 51f53e0..4a51005 100644 --- a/Sources/Core/View/Generated/NavigationView.swift +++ b/Sources/Core/View/Generated/NavigationView.swift @@ -2,7 +2,7 @@ // NavigationView.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/Overlay.swift b/Sources/Core/View/Generated/Overlay.swift index e642f1a..b5d35fa 100644 --- a/Sources/Core/View/Generated/Overlay.swift +++ b/Sources/Core/View/Generated/Overlay.swift @@ -2,7 +2,7 @@ // Overlay.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/OverlaySplitView.swift b/Sources/Core/View/Generated/OverlaySplitView.swift index 7d6845f..a31a96b 100644 --- a/Sources/Core/View/Generated/OverlaySplitView.swift +++ b/Sources/Core/View/Generated/OverlaySplitView.swift @@ -2,7 +2,7 @@ // OverlaySplitView.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/PasswordEntryRow.swift b/Sources/Core/View/Generated/PasswordEntryRow.swift index a245f73..e2e718e 100644 --- a/Sources/Core/View/Generated/PasswordEntryRow.swift +++ b/Sources/Core/View/Generated/PasswordEntryRow.swift @@ -2,7 +2,7 @@ // PasswordEntryRow.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/Picture.swift b/Sources/Core/View/Generated/Picture.swift index 6e0130c..34e4fcc 100644 --- a/Sources/Core/View/Generated/Picture.swift +++ b/Sources/Core/View/Generated/Picture.swift @@ -2,7 +2,7 @@ // Picture.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/Popover.swift b/Sources/Core/View/Generated/Popover.swift index 1d2c394..63b12d8 100644 --- a/Sources/Core/View/Generated/Popover.swift +++ b/Sources/Core/View/Generated/Popover.swift @@ -2,7 +2,7 @@ // Popover.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/PreferencesGroup.swift b/Sources/Core/View/Generated/PreferencesGroup.swift index e140aa3..22aab8c 100644 --- a/Sources/Core/View/Generated/PreferencesGroup.swift +++ b/Sources/Core/View/Generated/PreferencesGroup.swift @@ -2,7 +2,7 @@ // PreferencesGroup.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/PreferencesPage.swift b/Sources/Core/View/Generated/PreferencesPage.swift index 57747fe..3c71c89 100644 --- a/Sources/Core/View/Generated/PreferencesPage.swift +++ b/Sources/Core/View/Generated/PreferencesPage.swift @@ -2,7 +2,7 @@ // PreferencesPage.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/PreferencesRow.swift b/Sources/Core/View/Generated/PreferencesRow.swift index 7d5d36b..31747e4 100644 --- a/Sources/Core/View/Generated/PreferencesRow.swift +++ b/Sources/Core/View/Generated/PreferencesRow.swift @@ -2,7 +2,7 @@ // PreferencesRow.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/ProgressBar.swift b/Sources/Core/View/Generated/ProgressBar.swift index ffe86cd..4375513 100644 --- a/Sources/Core/View/Generated/ProgressBar.swift +++ b/Sources/Core/View/Generated/ProgressBar.swift @@ -2,7 +2,7 @@ // ProgressBar.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/ScrolledWindow.swift b/Sources/Core/View/Generated/ScrolledWindow.swift index 41dfbc6..e925f4e 100644 --- a/Sources/Core/View/Generated/ScrolledWindow.swift +++ b/Sources/Core/View/Generated/ScrolledWindow.swift @@ -2,7 +2,7 @@ // ScrolledWindow.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/SearchBar.swift b/Sources/Core/View/Generated/SearchBar.swift index 02c06e2..61cdf67 100644 --- a/Sources/Core/View/Generated/SearchBar.swift +++ b/Sources/Core/View/Generated/SearchBar.swift @@ -2,7 +2,7 @@ // SearchBar.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/SearchEntry.swift b/Sources/Core/View/Generated/SearchEntry.swift index 188bb95..716e991 100644 --- a/Sources/Core/View/Generated/SearchEntry.swift +++ b/Sources/Core/View/Generated/SearchEntry.swift @@ -2,7 +2,7 @@ // SearchEntry.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/Separator.swift b/Sources/Core/View/Generated/Separator.swift index 2e61204..7e0c7ca 100644 --- a/Sources/Core/View/Generated/Separator.swift +++ b/Sources/Core/View/Generated/Separator.swift @@ -2,7 +2,7 @@ // Separator.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/SpinRow.swift b/Sources/Core/View/Generated/SpinRow.swift index 3c22efe..3348bc3 100644 --- a/Sources/Core/View/Generated/SpinRow.swift +++ b/Sources/Core/View/Generated/SpinRow.swift @@ -2,7 +2,7 @@ // SpinRow.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/Spinner.swift b/Sources/Core/View/Generated/Spinner.swift index f7dcacf..31bc653 100644 --- a/Sources/Core/View/Generated/Spinner.swift +++ b/Sources/Core/View/Generated/Spinner.swift @@ -2,7 +2,7 @@ // Spinner.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/SplitButton.swift b/Sources/Core/View/Generated/SplitButton.swift index 08d4ea7..2fdaab3 100644 --- a/Sources/Core/View/Generated/SplitButton.swift +++ b/Sources/Core/View/Generated/SplitButton.swift @@ -2,7 +2,7 @@ // SplitButton.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/StatusPage.swift b/Sources/Core/View/Generated/StatusPage.swift index 75599b9..1246f50 100644 --- a/Sources/Core/View/Generated/StatusPage.swift +++ b/Sources/Core/View/Generated/StatusPage.swift @@ -2,7 +2,7 @@ // StatusPage.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/SwitchRow.swift b/Sources/Core/View/Generated/SwitchRow.swift index 68578d7..34bc7eb 100644 --- a/Sources/Core/View/Generated/SwitchRow.swift +++ b/Sources/Core/View/Generated/SwitchRow.swift @@ -2,7 +2,7 @@ // SwitchRow.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/ToastOverlay.swift b/Sources/Core/View/Generated/ToastOverlay.swift index 220e2f5..5ab0f74 100644 --- a/Sources/Core/View/Generated/ToastOverlay.swift +++ b/Sources/Core/View/Generated/ToastOverlay.swift @@ -2,7 +2,7 @@ // ToastOverlay.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/ToggleButton.swift b/Sources/Core/View/Generated/ToggleButton.swift index 2c699b3..ad53f37 100644 --- a/Sources/Core/View/Generated/ToggleButton.swift +++ b/Sources/Core/View/Generated/ToggleButton.swift @@ -2,7 +2,7 @@ // ToggleButton.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/ToolbarView.swift b/Sources/Core/View/Generated/ToolbarView.swift index cbd144f..6e94346 100644 --- a/Sources/Core/View/Generated/ToolbarView.swift +++ b/Sources/Core/View/Generated/ToolbarView.swift @@ -2,7 +2,7 @@ // ToolbarView.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Generated/WindowTitle.swift b/Sources/Core/View/Generated/WindowTitle.swift index fc39b85..59ae1c4 100644 --- a/Sources/Core/View/Generated/WindowTitle.swift +++ b/Sources/Core/View/Generated/WindowTitle.swift @@ -2,7 +2,7 @@ // WindowTitle.swift // Adwaita // -// Created by auto-generation on 26.10.24. +// Created by auto-generation on 31.10.24. // import CAdw diff --git a/Sources/Core/View/Picture+.swift b/Sources/Core/View/Picture+.swift index ccf54d0..edc929f 100644 --- a/Sources/Core/View/Picture+.swift +++ b/Sources/Core/View/Picture+.swift @@ -32,6 +32,9 @@ extension Picture { g_bytes_new(ptr.baseAddress, .init(data.count)) } let texture = gdk_texture_new_from_bytes(bytes, nil) + if let paintable = gtk_picture_get_paintable(pointer) { + g_object_unref(paintable.cast()) + } gtk_picture_set_paintable(pointer, texture) storage.fields[oldData] = data } diff --git a/Sources/Core/View/Text.swift b/Sources/Core/View/Text.swift index b963a17..b535146 100644 --- a/Sources/Core/View/Text.swift +++ b/Sources/Core/View/Text.swift @@ -22,7 +22,11 @@ extension Text { /// - Parameter ellipsize: Whether it should ellipsize. /// - Returns: The text widget. public func ellipsize(_ ellipsize: Bool = true) -> AnyView { - inspect { storage, _ in gtk_label_set_ellipsize(storage.opaquePointer, PANGO_ELLIPSIZE_END) } + inspect { storage, update in + if update { + gtk_label_set_ellipsize(storage.opaquePointer, PANGO_ELLIPSIZE_END) + } + } } } diff --git a/Sources/Core/View/ViewSwitcher.swift b/Sources/Core/View/ViewSwitcher.swift index 4a02f6d..0df3106 100644 --- a/Sources/Core/View/ViewSwitcher.swift +++ b/Sources/Core/View/ViewSwitcher.swift @@ -97,10 +97,7 @@ public struct ViewSwitcher: AdwaitaWidget where Element: ViewSwitcherOp } ((switcher.previousState as? Self)?.elements ?? []).map { $0.title }.transform( to: elements.map { $0.title }, - functions: .init { index, title in - remove(index) - insert(title) - } delete: { index in + functions: .init { index in remove(index) } insert: { _, title in insert(title) diff --git a/Sources/Generation/GIR/Class+.swift b/Sources/Generation/GIR/Class+.swift index 8371178..9e70aed 100644 --- a/Sources/Generation/GIR/Class+.swift +++ b/Sources/Generation/GIR/Class+.swift @@ -228,13 +228,7 @@ extension Class { let old = storage.fields["element"] as? [Element] ?? [] old.identifiableTransform( to: elements, - functions: .init { index, element in - \(child) - \(dynamicWidget.remove)(\(widget), \(dynamicWidget.getElement)) - \(dynamicWidget.insert)(\(widget), \(pointer), index.cInt) - contentStorage.remove(at: index) - contentStorage.insert(child, at: index) - } delete: { index in + functions: .init { index in \(dynamicWidget.remove)(\(widget), \(dynamicWidget.getElement)) contentStorage.remove(at: index) } insert: { index, element in