Esempio n. 1
0
        private void OnMouseDown(object sender, MouseInterceptor.MouseEventArgs e)
        {
            if (!Enabled)
            {
                return;
            }

            if (mAltKeyPressed && mCurrentState == State.None)
            {
                var hwndMouseOver = WinAPI.WindowFromPoint(e.Location);
                var topLevelHwnd  = GetTopMostHwnd(hwndMouseOver);
                if (topLevelHwnd == default)
                {
                    return;
                }

                var windowText = WinAPI.GetWindowTitle(topLevelHwnd);
                if (Properties.Settings.Default.excludes.ToEnumerable().Any(
                        exclude => Regex.IsMatch(windowText, exclude)))
                {
                    return;
                }

                if (e.Button == MouseButtons.Left)
                {
                    mDragAction   = new MouseDragAction(topLevelHwnd, e.Location);
                    mCurrentState = State.DragWindow;
                    mAltKeyUsed   = true;
                    e.Handled     = true;
                }
                else if (e.Button == MouseButtons.Middle)
                {
                    mCurrentState = State.OnTopWindow;
                    mAltKeyUsed   = true;
                    e.Handled     = true;
                    ToggleTopmost(topLevelHwnd);
                }
                else if (e.Button == MouseButtons.Right)
                {
                    mResizeAction = new MouseResizeAction(topLevelHwnd, e.Location);
                    mCurrentState = State.ResizeWindow;
                    mAltKeyUsed   = true;
                    e.Handled     = true;
                }
            }
        }
Esempio n. 2
0
 private void OnMouseUp(object sender, MouseInterceptor.MouseEventArgs e)
 {
     if (e.Button == MouseButtons.Left && mCurrentState == State.DragWindow)
     {
         mCurrentState = State.None;
         mDragAction.Finish(e.Location);
         mDragAction = null;
         e.Handled   = true;
     }
     else if (e.Button == MouseButtons.Right && mCurrentState == State.ResizeWindow)
     {
         mCurrentState = State.None;
         mResizeAction.Finish(e.Location);
         mResizeAction = null;
         e.Handled     = true;
     }
     else if (e.Button == MouseButtons.Middle && mCurrentState == State.OnTopWindow)
     {
         mCurrentState = State.None;
         e.Handled     = true;
     }
 }