/// <summary>
        /// Initialize a new instance of the SeparatorController class.
        /// </summary>
        /// <param name="source">Source of separator information.</param>
        /// <param name="target">Target for state changes.</param>
        /// <param name="splitCursors">Show as split or movement cursors.</param>
        /// <param name="drawIndicator">Draw a separator indicator.</param>
        /// <param name="needPaint">Delegate for notifying paint requests.</param>
        public SeparatorController(ISeparatorSource source,
                                   ViewBase target,
                                   bool splitCursors,
                                   bool drawIndicator,
                                   NeedPaintHandler needPaint)
            : base(target, needPaint)
        {
            Debug.Assert(source != null);

            _source           = source;
            _splitCursors     = splitCursors;
            DrawMoveIndicator = drawIndicator;

            // Temporary fix for screen tearing artifact courtesy of Cocotteseb

            if (Environment.OSVersion.Version.Major >= 10)
            {
                // Unless it flickers on Win10 : https://github.com/ComponentFactory/Krypton/issues/79
                _drawIndicator = false;
            }
            else
            {
                _drawIndicator = drawIndicator;
            }
        }
        /// <summary>
        /// Initialize a new instance of the SeparatorController class.
        /// </summary>
        /// <param name="source">Source of separator information.</param>
        /// <param name="target">Target for state changes.</param>
        /// <param name="splitCursors">Show as split or movement cursors.</param>
        /// <param name="drawIndicator">Draw a separator indicator.</param>
        /// <param name="needPaint">Delegate for notifying paint requests.</param>
        public SeparatorController(ISeparatorSource source,
                                   ViewBase target,
                                   bool splitCursors,
                                   bool drawIndicator,
                                   NeedPaintHandler needPaint)
            : base(target, needPaint)
        {
            Debug.Assert(source != null);

            _source        = source;
            _splitCursors  = splitCursors;
            _drawIndicator = drawIndicator;
        }
        /// <summary>
        /// Initialize a new instance of the SeparatorController class.
        /// </summary>
        /// <param name="source">Source of separator information.</param>
        /// <param name="target">Target for state changes.</param>
        /// <param name="splitCursors">Show as split or movement cursors.</param>
        /// <param name="drawIndicator">Draw a separator indicator.</param>
        /// <param name="needPaint">Delegate for notifying paint requests.</param>
        public SeparatorController(ISeparatorSource source, 
                                   ViewBase target,
                                   bool splitCursors,
                                   bool drawIndicator,
                                   NeedPaintHandler needPaint)
            : base(target, needPaint)
        {
            Debug.Assert(source != null);

            _source = source;
            _splitCursors = splitCursors;
            _drawIndicator = drawIndicator;
        }