private void HookManager_MouseUp(object sender, MouseEventArgs e)
        {
            try
            {
                HookManager.MouseMove -= HookManager_MouseMove;
            }
            catch { }

            if (_isDragged)
            {
                try
                {
                    HookManager.MouseUp -= HookManager_MouseUp;
                }
                catch { }

                _isDragged = false;
            }

            TaskbarFlow flow = this.Parent as TaskbarFlow;

            flow.OnButtonRelease(this);

            OnMouseUp(e);
        }
        private void HookManager_MouseMove(object sender, MouseEventArgs e)
        {
            TaskbarFlow flow = this.Parent as TaskbarFlow;

            if (_isDragged)
            {
                flow.OnButtonMove(this, e.X, e.Y);
            }
            else if (!_isDragged)
            {
                var taskbarLocation = this.MainForm.TaskbarLocation;
                if (taskbarLocation == Native.ABEdge.Top ||
                    taskbarLocation == Native.ABEdge.Bottom)
                {
                    if (Math.Abs(_initialDraggingPoint.X - e.X) < 15)
                    {
                        return;
                    }
                }
                else
                {
                    if (Math.Abs(_initialDraggingPoint.Y - e.Y) < 15)
                    {
                        return;
                    }
                }

                HookManager.MouseUp += HookManager_MouseUp;
                _isDragged           = true;
            }
        }