Index: unk/sources/HeuristicLab.Core.Views/3.3/ControlExtensions.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/ControlExtensions.cs	(revision 3176)
+++ 	(revision )
@@ -1,41 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-using System.Windows.Forms;
-using System.Runtime.InteropServices;
-
-namespace HeuristicLab.Core.Views {
-  public static class ControlExtensions {
-    [DllImport("user32.dll")]
-    private static extern int SendMessage(IntPtr hWnd, Int32 wMsg, bool wParam, Int32 lParam);
-
-    private const int WM_SETREDRAW = 11;
-
-    public static void SuspendRepaint(this Control control) {
-      SendMessage(control.Handle, WM_SETREDRAW, false, 0);
-    }
-    public static void ResumeRepaint(this Control control, bool refresh) {
-      SendMessage(control.Handle, WM_SETREDRAW, true, 0);
-      if (refresh) control.Refresh();
-    }
-  }
-}
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/HeuristicLab.Core.Views-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/HeuristicLab.Core.Views-3.3.csproj	(revision 3176)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/HeuristicLab.Core.Views-3.3.csproj	(revision 3177)
@@ -87,5 +87,4 @@
   <ItemGroup>
     <None Include="HeuristicLabCoreViewsPlugin.cs.frame" />
-    <Compile Include="ControlExtensions.cs" />
     <Compile Include="VariableValueView.cs">
       <SubType>UserControl</SubType>
Index: /trunk/sources/HeuristicLab.Core.Views/3.3/ViewHost.cs
===================================================================
--- /trunk/sources/HeuristicLab.Core.Views/3.3/ViewHost.cs	(revision 3176)
+++ /trunk/sources/HeuristicLab.Core.Views/3.3/ViewHost.cs	(revision 3177)
@@ -26,4 +26,5 @@
 using HeuristicLab.Common;
 using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
 
 namespace HeuristicLab.Core.Views {
@@ -53,4 +54,13 @@
           Initialize();
         }
+      }
+    }
+
+    public new bool Enabled {
+      get { return base.Enabled; }
+      set {
+        this.SuspendRepaint();
+        base.Enabled = value;
+        this.ResumeRepaint(true);
       }
     }
Index: /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/ControlExtensions.cs
===================================================================
--- /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/ControlExtensions.cs	(revision 3177)
+++ /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/ControlExtensions.cs	(revision 3177)
@@ -0,0 +1,41 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Runtime.InteropServices;
+using System.Windows.Forms;
+
+namespace HeuristicLab.MainForm.WindowsForms {
+  public static class ControlExtensions {
+    [DllImport("user32.dll")]
+    private static extern int SendMessage(IntPtr hWnd, Int32 wMsg, bool wParam, Int32 lParam);
+
+    private const int WM_SETREDRAW = 11;
+
+    public static void SuspendRepaint(this Control control) {
+      SendMessage(control.Handle, WM_SETREDRAW, false, 0);
+    }
+    public static void ResumeRepaint(this Control control, bool refresh) {
+      SendMessage(control.Handle, WM_SETREDRAW, true, 0);
+      if (refresh) control.Refresh();
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/HeuristicLab.MainForm.WindowsForms-3.2.csproj
===================================================================
--- /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/HeuristicLab.MainForm.WindowsForms-3.2.csproj	(revision 3176)
+++ /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/HeuristicLab.MainForm.WindowsForms-3.2.csproj	(revision 3177)
@@ -93,4 +93,5 @@
     </Compile>
     <None Include="HeuristicLabMainFormWindowsFormsPlugin.cs.frame" />
+    <Compile Include="ControlExtensions.cs" />
     <Compile Include="DockForm.cs">
       <SubType>Form</SubType>
Index: /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/View.cs
===================================================================
--- /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/View.cs	(revision 3176)
+++ /trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/View.cs	(revision 3177)
@@ -21,10 +21,4 @@
 
 using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Text;
-using System.Xml;
 using System.Windows.Forms;
 
@@ -161,4 +155,20 @@
     protected virtual void OnInitialized(EventArgs e) {
     }
+
+    public new bool Enabled {
+      get { return base.Enabled; }
+      set {
+        SuspendRepaint();
+        base.Enabled = value;
+        ResumeRepaint(true);
+      }
+    }
+
+    public void SuspendRepaint() {
+      ((Control)this).SuspendRepaint();
+    }
+    public void ResumeRepaint(bool refresh) {
+      ((Control)this).ResumeRepaint(refresh);
+    }
   }
 }
Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/AlgorithmView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/AlgorithmView.cs	(revision 3176)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/AlgorithmView.cs	(revision 3177)
@@ -146,5 +146,4 @@
         Invoke(new EventHandler(Content_Started), sender, e);
       else {
-        this.SuspendRepaint();
         SaveEnabled = false;
         parameterCollectionView.Enabled = false;
@@ -156,5 +155,4 @@
         resetButton.Enabled = false;
         UpdateExecutionTimeTextBox();
-        this.ResumeRepaint(true);
       }
     }
@@ -163,5 +161,4 @@
         Invoke(new EventHandler(Content_Stopped), sender, e);
       else {
-        this.SuspendRepaint();
         SaveEnabled = true;
         parameterCollectionView.Enabled = true;
@@ -173,5 +170,4 @@
         resetButton.Enabled = true;
         UpdateExecutionTimeTextBox();
-        this.ResumeRepaint(true);
       }
     }
@@ -207,4 +203,5 @@
         this.Cursor = Cursors.AppStarting;
         newProblemButton.Enabled = openProblemButton.Enabled = saveProblemButton.Enabled = false;
+        problemViewHost.Enabled = false;
 
         var call = new Func<string, object>(XmlParser.Deserialize);
@@ -223,4 +220,5 @@
             else
               Content.Problem = problem;
+            problemViewHost.Enabled = true;
             newProblemButton.Enabled = openProblemButton.Enabled = saveProblemButton.Enabled = true;
             this.Cursor = Cursors.Default;
@@ -234,4 +232,5 @@
         this.Cursor = Cursors.AppStarting;
         newProblemButton.Enabled = openProblemButton.Enabled = saveProblemButton.Enabled = false;
+        problemViewHost.Enabled = false;
 
         var call = new Action<IProblem, string, int>(XmlGenerator.Serialize);
@@ -246,4 +245,5 @@
           }
           Invoke(new Action(delegate() {
+            problemViewHost.Enabled = true;
             newProblemButton.Enabled = openProblemButton.Enabled = saveProblemButton.Enabled = true;
             this.Cursor = Cursors.Default;
Index: /trunk/sources/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.cs	(revision 3176)
+++ /trunk/sources/HeuristicLab.Optimization.Views/3.3/UserDefinedAlgorithmView.cs	(revision 3177)
@@ -112,4 +112,5 @@
         this.Cursor = Cursors.AppStarting;
         newOperatorGraphButton.Enabled = openOperatorGraphButton.Enabled = saveOperatorGraphButton.Enabled = false;
+        operatorGraphViewHost.Enabled = false;
 
         var call = new Func<string, object>(XmlParser.Deserialize);
@@ -127,4 +128,5 @@
             else
               Content.OperatorGraph = operatorGraph;
+            operatorGraphViewHost.Enabled = true;
             newOperatorGraphButton.Enabled = openOperatorGraphButton.Enabled = saveOperatorGraphButton.Enabled = true;
             this.Cursor = Cursors.Default;
@@ -138,4 +140,5 @@
         this.Cursor = Cursors.AppStarting;
         newOperatorGraphButton.Enabled = openOperatorGraphButton.Enabled = saveOperatorGraphButton.Enabled = false;
+        operatorGraphViewHost.Enabled = false;
 
         var call = new Action<OperatorGraph, string, int>(XmlGenerator.Serialize);
@@ -150,4 +153,5 @@
           }
           Invoke(new Action(delegate() {
+            operatorGraphViewHost.Enabled = true;
             newOperatorGraphButton.Enabled = openOperatorGraphButton.Enabled = saveOperatorGraphButton.Enabled = true;
             this.Cursor = Cursors.Default;
Index: /trunk/sources/HeuristicLab.Optimizer/3.3/FileManager.cs
===================================================================
--- /trunk/sources/HeuristicLab.Optimizer/3.3/FileManager.cs	(revision 3176)
+++ /trunk/sources/HeuristicLab.Optimizer/3.3/FileManager.cs	(revision 3177)
@@ -28,4 +28,5 @@
 using HeuristicLab.Core.Views;
 using HeuristicLab.MainForm;
+using HeuristicLab.MainForm.WindowsForms;
 using HeuristicLab.Persistence.Default.Xml;
 
@@ -241,10 +242,14 @@
     private static void DisableView(IView view) {
       Invoke(delegate() {
-        ((UserControl)view).Enabled = false;
+        ((Control)view).SuspendRepaint();
+        ((Control)view).Enabled = false;
+        ((Control)view).ResumeRepaint(true);
       });
     }
     private static void EnableView(IView view) {
       Invoke(delegate() {
-        ((UserControl)view).Enabled = true;
+        ((Control)view).SuspendRepaint();
+        ((Control)view).Enabled = true;
+        ((Control)view).ResumeRepaint(true);
       });
     }
