Mercurial > dwindows
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 } |