void SurfaceMouseUp(object sender, MouseEventArgs e)
        {
            mouseDown        = false;
            mouseDownElement = null;
            if (DrawingMode == DrawingModes.None) // check whether an existing element was clicked
            {
                DrawableContainer element = elements.ClickableElementAt(e.X, e.Y);
                bool shiftModifier        = (Control.ModifierKeys & Keys.Shift) == Keys.Shift;
                if (element != null)
                {
                    bool alreadySelected = selectedElements.Contains(element);
                    if (shiftModifier)
                    {
                        if (alreadySelected)
                        {
                            DeselectElement(element);
                        }
                        else
                        {
                            SelectElement(element);
                        }
                    }
                    else
                    {
                        if (!alreadySelected)
                        {
                            DeselectAllElements();
                            SelectElement(element);
                        }
                    }
                }
                else if (!shiftModifier)
                {
                    DeselectAllElements();
                }
            }

            if (selectedElements.Count > 0)
            {
                selectedElements.ShowGrippers();
                selectedElements.Selected = true;
            }
            if (drawingElement != null)
            {
                if (!drawingElement.InitContent())
                {
                    elements.Remove(drawingElement);
                    Invalidate();
                }
                else
                {
                    if (Math.Abs(drawingElement.Width) < 5 && Math.Abs(drawingElement.Height) < 5)
                    {
                        drawingElement.Width  = 25;
                        drawingElement.Height = 25;
                    }
                    SelectElement(drawingElement);
                    drawingElement.Selected = true;
                }
                drawingElement = null;
            }
            Invalidate();
        }