From 614a7f75235745fd151ae4269b9f5bf5fbf8607e Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Mon, 2 Jan 2012 08:30:57 +0000
Subject: [PATCH] reduce redraws

---
 Fltk/onelabWindow.cpp | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/Fltk/onelabWindow.cpp b/Fltk/onelabWindow.cpp
index aa51bce233..9209b8aa5f 100644
--- a/Fltk/onelabWindow.cpp
+++ b/Fltk/onelabWindow.cpp
@@ -444,7 +444,7 @@ static std::string getShortName(const std::string &name, const std::string &ok="
   return s;
 }
 
-static void updateOnelabGraph(int num)
+static bool updateOnelabGraph(int num)
 {
   bool changed = false;
   for(unsigned int i = 0; i < PView::list.size(); i++){
@@ -482,18 +482,19 @@ static void updateOnelabGraph(int num)
     changed = true;
   }
   
-  if(changed){
+  if(changed)
     FlGui::instance()->updateViews();
-    drawContext::global()->draw();
-  }
+  return changed;
 }
 
 static void updateOnelabGraphs()
 {
-  updateOnelabGraph(0);
-  updateOnelabGraph(1);
-  updateOnelabGraph(2);
-  updateOnelabGraph(3);
+  bool redraw0 = updateOnelabGraph(0);
+  bool redraw1 = updateOnelabGraph(1);
+  bool redraw2 = updateOnelabGraph(2);
+  bool redraw3 = updateOnelabGraph(3);
+  if(redraw0 || redraw1 || redraw2 || redraw3)
+    drawContext::global()->draw();
 }
 
 static void runGmshClient(const std::string &action)
-- 
GitLab