From a73c3fa56b4ff4153724949024914a64b7bfb06a Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Thu, 14 Dec 2006 02:44:01 +0000 Subject: [PATCH] don't force (annoying) vis_window->show() aftereach operation --- Fltk/Callbacks.cpp | 18 ++++++++++++------ Fltk/GUI.cpp | 10 ++++++---- Fltk/GUI.h | 2 +- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp index 342b2c03ae..319212e11a 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 e187a55e2c..caf9b9f49d 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 2306e381da..f161275051 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(); -- GitLab