diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp index 342b2c03ae5662d9fe833a7e8b602e05ee916f32..319212e11a3583fc1e83e0023d22136dfb1b3f59 100644 --- a/Fltk/Callbacks.cpp +++ b/Fltk/Callbacks.cpp @@ -1,4 +1,4 @@ -// $Id: Callbacks.cpp,v 1.493 2006-12-03 04:07:19 geuzaine Exp $ +// $Id: Callbacks.cpp,v 1.494 2006-12-14 02:44:01 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -1998,7 +1998,13 @@ void message_save_cb(CALLBACK_ARGS) void visibility_cb(CALLBACK_ARGS) { // get the visibility info from the model, and update the browser accordingly - WID->create_visibility_window(); + + char *str = (char*)data; + if(str && !strcmp(str, "redraw_only")) + WID->create_visibility_window(true); + else + WID->create_visibility_window(); + WID->vis_browser->clear(); int type = WID->vis_type->value(); @@ -2060,7 +2066,7 @@ void visibility_delete_cb(CALLBACK_ARGS) GMODEL->deletePhysicalGroups(); else if(type == 2) GMODEL->deleteMeshPartitions(); - visibility_cb(NULL, NULL); + visibility_cb(NULL, (void*)"redraw_only"); } void visibility_sort_cb(CALLBACK_ARGS) @@ -2116,7 +2122,7 @@ void visibility_sort_cb(CALLBACK_ARGS) } else { // set new sorting mode VisibilityManager::instance()->setSortMode(val); - visibility_cb(NULL, NULL); + visibility_cb(NULL, (void*)"redraw_only"); } } @@ -2150,7 +2156,7 @@ void visibility_number_cb(CALLBACK_ARGS) VisibilityManager::instance()->setVisibilityByNumber(what, num, val, recursive); int pos = WID->vis_browser->position(); - visibility_cb(NULL, NULL); + visibility_cb(NULL, (void*)"redraw_only"); WID->vis_browser->position(pos); Draw(); } @@ -2304,7 +2310,7 @@ void visibility_interactive_cb(CALLBACK_ARGS) } } int pos = WID->vis_browser->position(); - visibility_cb(NULL, NULL); + visibility_cb(NULL, (void*)"redraw_only"); WID->vis_browser->position(pos); } if(ib == 'q'){ diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp index e187a55e2c431faf2915d0be74e9c2dc1e7d9c0a..caf9b9f49d32e8818e27ac16702cf0388c66b01b 100644 --- a/Fltk/GUI.cpp +++ b/Fltk/GUI.cpp @@ -1,4 +1,4 @@ -// $Id: GUI.cpp,v 1.584 2006-12-12 01:39:15 geuzaine Exp $ +// $Id: GUI.cpp,v 1.585 2006-12-14 02:44:01 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -3828,11 +3828,13 @@ public: : Fl_Browser(x, y, w, h, c){} }; -void GUI::create_visibility_window() +void GUI::create_visibility_window(bool redraw_only) { - if(vis_window) { - vis_window->show(); + if(vis_window->shown() && redraw_only) + vis_window->redraw(); + else + vis_window->show(); return; } diff --git a/Fltk/GUI.h b/Fltk/GUI.h index 2306e381da7fa8734305701eba02e895102a063c..f161275051832cddc2471ccb9968723a4c7211fc 100644 --- a/Fltk/GUI.h +++ b/Fltk/GUI.h @@ -284,7 +284,7 @@ public: void create_post_options_window(); PluginDialogBox *create_plugin_window(GMSH_Plugin *p); void create_view_options_window(int numview); - void create_visibility_window(); + void create_visibility_window(bool redraw_only=false); void create_clip_window(); void create_manip_window(); void create_statistics_window();