comparison gtk4/dw.c @ 2329:47f8f950f377

GTK4: Fix crash by stopping processing after removing widget from the box.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Sun, 28 Feb 2021 13:42:25 +0000
parents 5363f953b22a
children 58700e9fcba3
comparison
equal deleted inserted replaced
2328:5363f953b22a 2329:47f8f950f377
1851 for(z=0;z<boxcount;z++) 1851 for(z=0;z<boxcount;z++)
1852 { 1852 {
1853 if(gtk_grid_get_child_at(GTK_GRID(box), 0, z) == handle2) 1853 if(gtk_grid_get_child_at(GTK_GRID(box), 0, z) == handle2)
1854 { 1854 {
1855 gtk_grid_remove_row(GTK_GRID(box), z); 1855 gtk_grid_remove_row(GTK_GRID(box), z);
1856 handle2 = NULL;
1856 break; 1857 break;
1857 } 1858 }
1858 } 1859 }
1859 } 1860 }
1860 else 1861 else
1862 for(z=0;z<boxcount;z++) 1863 for(z=0;z<boxcount;z++)
1863 { 1864 {
1864 if(gtk_grid_get_child_at(GTK_GRID(box), z, 0) == handle2) 1865 if(gtk_grid_get_child_at(GTK_GRID(box), z, 0) == handle2)
1865 { 1866 {
1866 gtk_grid_remove_column(GTK_GRID(box), z); 1867 gtk_grid_remove_column(GTK_GRID(box), z);
1868 handle2 = NULL;
1867 break; 1869 break;
1868 } 1870 }
1869 } 1871 }
1870 } 1872 }
1871 1873
1877 } 1879 }
1878 } 1880 }
1879 /* Finally destroy the widget, make sure it is still 1881 /* Finally destroy the widget, make sure it is still
1880 * a valid widget if it got removed from the grid. 1882 * a valid widget if it got removed from the grid.
1881 */ 1883 */
1882 if(GTK_IS_WIDGET(handle2)) 1884 if(handle2 && GTK_IS_WIDGET(handle2))
1883 g_object_unref(G_OBJECT(handle2)); 1885 g_object_unref(G_OBJECT(handle2));
1884 } 1886 }
1885 } 1887 }
1886 DW_FUNCTION_RETURN_THIS(retval); 1888 DW_FUNCTION_RETURN_THIS(retval);
1887 } 1889 }