[gnome-maps/wip/mlundblad/remove-more-gtk-widget-destroy: 3/6] osmEditDialog: Stop using gtk_widget_destroy()




commit cc698bd085e20bdaad8408dba9441032d9e4d463
Author: Marcus Lundblad <ml update uu se>
Date:   Fri Apr 23 23:35:07 2021 +0200

    osmEditDialog: Stop using gtk_widget_destroy()
    
    gtk_widget_destroy() will only work for top-levels in GTK 4.
    Prepare by replacing these with container-specific methods to
    remove children.

 src/osmEditDialog.js | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)
---
diff --git a/src/osmEditDialog.js b/src/osmEditDialog.js
index 5a7b108c..a3cf8fd1 100644
--- a/src/osmEditDialog.js
+++ b/src/osmEditDialog.js
@@ -462,10 +462,11 @@ var OSMEditDialog = GObject.registerClass({
         let recentTypes = OSMTypes.recentTypesStore.recentTypes;
 
         if (recentTypes.length > 0) {
-            let children = this._recentTypesListBox.get_children();
+            let row = this._recentTypesListBox.get_row_at_index(0);
 
-            for (let i = 0; i < children.length; i++) {
-                this._recentTypesListBox.remove(children[i]);
+            while (row) {
+                this._recentTypesListBox.remove(row);
+                row = this._recentTypesListBox.get_row_at_index(0);
             }
 
             this._recentTypesLabel.visible = true;
@@ -757,12 +758,12 @@ var OSMEditDialog = GObject.registerClass({
     /* update visible items in the "Add Field" popover */
     _updateAddFieldMenu() {
         /* clear old items */
-        let children = this._addFieldPopoverGrid.get_children();
         let hasAllFields = true;
+        let button = this._addFieldPopoverGrid.get_child_at(0, 0);
 
-        for (let i = 0; i < children.length; i++) {
-            let button = children[i];
-            button.destroy();
+        while (button) {
+            this._addFieldPopoverGrid.remove_row(0);
+            button = this._addFieldPopoverGrid.get_child_at(0, 0);
         }
 
         /* add selectable items */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]