Index: /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/Chart.cs
===================================================================
--- /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/Chart.cs	(revision 7779)
+++ /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/Chart.cs	(revision 7780)
@@ -22,6 +22,6 @@
 using System;
 using System.Collections.Generic;
-using System.Text;
 using System.Drawing;
+using System.Linq;
 using System.Windows.Forms;
 
@@ -242,5 +242,5 @@
       } else if (Mode == ChartMode.Select) {
         if (button == MouseButtons.Left) {
-          IList<IPrimitive> selected = Group.SelectedPrimitives;
+          IList<IPrimitive> selected = Group.SelectedPrimitives.Where(p => p.ContainsPoint(p1)).ToList();
           UpdateEnabled = false;
           foreach (IPrimitive primitive in selected)
Index: /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/ChartControl.cs
===================================================================
--- /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/ChartControl.cs	(revision 7779)
+++ /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/ChartControl.cs	(revision 7780)
@@ -81,12 +81,34 @@
       mouseClickCount = e.Clicks;
     }
-    private void pictureBox_MouseUp(object sender, MouseEventArgs e) {
+    protected virtual void pictureBox_MouseUp(object sender, MouseEventArgs e) {
       if (e.Button == MouseButtons.Left) {
         if (Chart.Mode == ChartMode.Zoom) {
           pictureBox.Refresh();
-          Point lowerLeft = new Point(Math.Min(e.X, buttonDownPoint.X),
-                                      Math.Max(e.Y, buttonDownPoint.Y));
-          Point upperRight = new Point(Math.Max(e.X, buttonDownPoint.X),
-                                       Math.Min(e.Y, buttonDownPoint.Y));
+          // some code to preserve the aspect ratio when zooming
+          //       +---------------------+ (Width,Height)
+          //       |  (x1,y1)            |
+          //       |      +-------+      |
+          //       |      |       |      | 
+          //       |      |       |      |
+          //       |      +-------+      |
+          //       |             (x2,y2) |
+          // (0,0) +---------------------+
+          // 
+          double aspectRatio = (double)Width / Height;
+          double x1 = Math.Min(e.X, buttonDownPoint.X);
+          double y1 = Math.Max(e.Y, buttonDownPoint.Y);
+          double x2 = Math.Max(e.X, buttonDownPoint.X);
+          double y2 = Math.Min(e.Y, buttonDownPoint.Y);
+          // consider the relative ratios between the X and Y dimensions of the selection 
+          // area and the Width and Height, respectively. The "dominant" dimension is the 
+          // one with a ratio closer to 1, and it stays fixed while the other is adjusted 
+          // in order to preserve the aspect ratio
+          if ((x2 - x1) / Width > (y1 - y2) / Height) {
+            y1 = y2 + (x2 - x1) / aspectRatio;
+          } else {
+            x2 = aspectRatio * (y1 - y2) + x1;
+          }
+          var lowerLeft = new Point((int)x1, (int)y1);
+          var upperRight = new Point((int)x2, (int)y2);
           if ((lowerLeft.X != upperRight.X) && (lowerLeft.Y != upperRight.Y)) {
             Chart.ZoomIn(lowerLeft, upperRight);
@@ -112,6 +134,9 @@
       }
     }
+
     private void pictureBox_MouseMove(object sender, MouseEventArgs e) {
-      toolTip.SetToolTip(pictureBox, Chart.GetToolTipText(e.Location));
+      var text = Chart.GetToolTipText(e.Location);
+      if (toolTip.GetToolTip(pictureBox) != text)
+        toolTip.SetToolTip(pictureBox, text);
       Cursor cursor = Chart.GetCursor(e.Location);
       if (cursor != null) pictureBox.Cursor = cursor;
Index: /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/HeuristicLab.Visualization-3.3.csproj
===================================================================
--- /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/HeuristicLab.Visualization-3.3.csproj	(revision 7779)
+++ /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/HeuristicLab.Visualization-3.3.csproj	(revision 7780)
@@ -40,5 +40,5 @@
     <DebugType>full</DebugType>
     <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
+    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
     <DefineConstants>DEBUG;TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
@@ -50,10 +50,11 @@
     <DebugType>pdbonly</DebugType>
     <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
+    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
     <DefineConstants>TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
     <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
-    <DocumentationFile>bin\Release\HeuristicLab.Visualization-3.3.xml</DocumentationFile>
+    <DocumentationFile>
+    </DocumentationFile>
     <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
   </PropertyGroup>
Index: /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/HeuristicLab.Visualization-3.3.csproj.user
===================================================================
--- /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/HeuristicLab.Visualization-3.3.csproj.user	(revision 7779)
+++ /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/HeuristicLab.Visualization-3.3.csproj.user	(revision 7780)
@@ -12,3 +12,11 @@
     <ProjectView>ProjectFiles</ProjectView>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
+    <StartAction>Program</StartAction>
+    <StartProgram>C:\Users\bburlacu\Desktop\HL-Core\trunk\sources\bin\HeuristicLab 3.3.exe</StartProgram>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
+    <StartAction>Program</StartAction>
+    <StartProgram>C:\Users\bburlacu\Desktop\HL-Core\trunk\sources\bin\HeuristicLab 3.3.exe</StartProgram>
+  </PropertyGroup>
 </Project>
Index: /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/Primitives/Ellipse.cs
===================================================================
--- /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/Primitives/Ellipse.cs	(revision 7779)
+++ /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/Primitives/Ellipse.cs	(revision 7780)
@@ -21,6 +21,4 @@
 
 using System;
-using System.Collections.Generic;
-using System.Text;
 using System.Drawing;
 
Index: /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/Primitives/FixedSizeCircle.cs
===================================================================
--- /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/Primitives/FixedSizeCircle.cs	(revision 7779)
+++ /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/Primitives/FixedSizeCircle.cs	(revision 7780)
@@ -20,7 +20,4 @@
 #endregion
 
-using System;
-using System.Collections.Generic;
-using System.Text;
 using System.Drawing;
 
@@ -61,5 +58,5 @@
       double yDistance = x.Y - center.Y;
 
-      return Size.Height*Size.Height/4.0 >= (xDistance * xDistance + yDistance * yDistance);
+      return Size.Height * Size.Height / 4.0 >= (xDistance * xDistance + yDistance * yDistance);
     }
   }
Index: /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/Primitives/PrimitiveBase.cs
===================================================================
--- /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/Primitives/PrimitiveBase.cs	(revision 7779)
+++ /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/Primitives/PrimitiveBase.cs	(revision 7780)
@@ -21,6 +21,4 @@
 
 using System;
-using System.Collections.Generic;
-using System.Text;
 using System.Drawing;
 using System.Windows.Forms;
Index: /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/Primitives/RectangularPrimitiveBase.cs
===================================================================
--- /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/Primitives/RectangularPrimitiveBase.cs	(revision 7779)
+++ /branches/HeuristicLab.Visualization/HeuristicLab.Visualization/3.3/Primitives/RectangularPrimitiveBase.cs	(revision 7780)
@@ -21,6 +21,4 @@
 
 using System;
-using System.Collections.Generic;
-using System.Text;
 using System.Drawing;
 using System.Drawing.Drawing2D;
