From e18926ec76105161258707e077e5b19e08bd235f Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Wed, 4 Dec 2024 16:05:39 +0100 Subject: FLUID: Fixes more places to clear cached pointers. --- fluid/Fl_Type.cxx | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/fluid/Fl_Type.cxx b/fluid/Fl_Type.cxx index eada84e5e..6287e714f 100644 --- a/fluid/Fl_Type.cxx +++ b/fluid/Fl_Type.cxx @@ -387,6 +387,11 @@ static void delete_children(Fl_Type *p) { don't reset the project. */ void delete_all(int selected_only) { + if (widget_browser) { + if (selected_only) + widget_browser->save_scroll_position(); + widget_browser->new_list(); + } for (Fl_Type *f = Fl_Type::first; f;) { if (f->selected || !selected_only) { delete_children(f); @@ -404,15 +409,21 @@ void delete_all(int selected_only) { g_shell_config->rebuild_shell_menu(); g_shell_config->update_settings_dialog(); } - widget_browser->hposition(0); - widget_browser->vposition(0); + if (widget_browser) { + widget_browser->hposition(0); + widget_browser->vposition(0); + } g_layout_list.remove_all(FD_STORE_PROJECT); g_layout_list.current_suite(0); g_layout_list.current_preset(0); g_layout_list.update_dialogs(); } selection_changed(0); - widget_browser->redraw(); + if (widget_browser) { + if (selected_only) + widget_browser->restore_scroll_position(); + widget_browser->rebuild(); + } } /** Update a string. -- cgit v1.2.3