From 53314582cedbb437aa1c0f715b00524f5036124f Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Wed, 12 Nov 2003 21:42:10 +0000 Subject: [PATCH] Fix missing GUI update when deleting a View from a script --- Common/Views.cpp | 13 ++++++++++--- Fltk/Callbacks.cpp | 22 ++++++++++++++-------- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/Common/Views.cpp b/Common/Views.cpp index 7d41a67bb0..8de5cd0606 100644 --- a/Common/Views.cpp +++ b/Common/Views.cpp @@ -1,4 +1,4 @@ -// $Id: Views.cpp,v 1.99 2003-11-08 05:59:35 geuzaine Exp $ +// $Id: Views.cpp,v 1.100 2003-11-12 21:42:10 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -29,6 +29,11 @@ extern Context_T CTX; +#if defined(HAVE_FLTK) +extern int AddViewInUI(int, char *, int); +extern int RemoveViewInUI(int); +#endif + #define VAL_INF 1.e200 // Static reference view @@ -350,7 +355,6 @@ void EndView(Post_View * v, int add_in_gui, char *file_name, char *name) v->smooth(); #if defined(HAVE_FLTK) - extern int AddViewInUI(int, char *, int); if(!CTX.post.force_num && add_in_gui) AddViewInUI(List_Nbr(CTX.post.list), v->Name, v->Num); #endif @@ -444,7 +448,6 @@ void DuplicateView(Post_View * v1, int withoptions) CopyViewOptions(v1, v2); #if defined(HAVE_FLTK) - extern int AddViewInUI(int, char *, int); AddViewInUI(List_Nbr(CTX.post.list), v2->Name, v2->Num); #endif } @@ -462,6 +465,10 @@ bool FreeView(int num) FreeView(v); List_PSuppress(CTX.post.list, num); +#if defined(HAVE_FLTK) + RemoveViewInUI(num); +#endif + Msg(INFO, "View %d deleted (%d views left)", num, List_Nbr(CTX.post.list)); return true; } diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp index d32ba31a81..57318d4301 100644 --- a/Fltk/Callbacks.cpp +++ b/Fltk/Callbacks.cpp @@ -1,4 +1,4 @@ -// $Id: Callbacks.cpp,v 1.184 2003-10-29 19:51:43 geuzaine Exp $ +// $Id: Callbacks.cpp,v 1.185 2003-11-12 21:42:10 geuzaine Exp $ // // Copyright (C) 1997-2003 C. Geuzaine, J.-F. Remacle // @@ -152,6 +152,19 @@ int AddViewInUI(int i, char *Name, int Num) return 0; } +int RemoveViewInUI(int i) +{ + if(i > NB_BUTT_MAX - 1) + return 1; + if(WID) { + WID->check_anim_buttons(); + if(WID->get_context() == 3) + WID->set_context(menu_post, 0); + WID->reset_option_browser(); + } + return 0; +} + int SetGlobalShortcut(int event) { return WID->global_shortcuts(event); @@ -2766,13 +2779,6 @@ void view_remove_cb(CALLBACK_ARGS) { FreeView((long int)data); - WID->check_anim_buttons(); - - if(WID->get_context() == 3) - WID->set_context(menu_post, 0); - - WID->reset_option_browser(); - if(!REMOVE_ALL_VIEWS) Draw(); } -- GitLab