How to disable sticky corners in Windows 10

Solution 1:

The thread How to disable sticky corners in Windows 10? from answers.microsoft.com treats this same problem :

When moving the mouse from the left monitor to to the top left of the right monitor the 6 pixel corner will catch your mouse.

I have similar problem in windows 8.1 and changing MouseCornerClipLength in registry to 0 from 6 and disable Corner Navigation in Taskbar and Start menu properties helped.

Anyway in Win10 i can't find MouseCornerClipLength, Corner Navigation disabled at all and adding same registry keys won't help.

The answer on June 4, 2015, by a Microsoft Support Engineer named Vijay B was :

We are aware of this issue and it is currently being investigated. Stay tuned and we will update this thread when additional information becomes available.

If any other posters experiencing this have not submitted this through the Windows Feedback App, please do so. This article http://answers.microsoft.com/en-us/insider/forum/insider_apps-insider_feedback/how-to-share-feedback-on-windows-10-technical/5e501781-a580-43e3-8926-40ae19343805 explains using the Windows Feedback App.

It seems that your only option is currently to wait for a future improvement, or for some hacker to come up with the right hack. Adding your voice to the Windows Feedback App might help.

[EDIT1] The open-source application Non Stick Mouse is said to offer a solution in the case of multiple monitors. The developer states:

What it does is hop the mouse over the sticking corners, as well as the screen edges when moving windows. Thus it allows the dragging of windows through screens without your mouse getting hijacked by the Snap Assist.
[...]
This application does not read or write to any drive, it does not access the registry or connect to the Internet.

Warning: It has been noted in the comments that virustotal finds malware in the latest version of "non stick mouse".

[EDIT2]

I have found a source that gives a solution for Windows 10 (which I'm unable to test now):

  1. Disable Snap
    In Settings > System > Multitasking, set Snap to Off.

  2. Registry modification
    Create and execute the following .reg file:

     Windows Registry Editor Version 5.00
    
     [HKEY_CURRENT_USER\Control Panel\Desktop]
     "MouseMonitorEscapeSpeed"=dword:00000001
    
     [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ImmersiveShell\EdgeUI]
     "MouseMonitorEscapeSpeed"=-
    

[EDIT3] Microsoft might have finally disabled this in its latest versions.

Solution 2:

I developed an application to deal with this issue as Microsoft evidently seem intent to ignore it. You can get it from here: http://www.jawfin.net/nsm

Solution 3:

Partial solution

  • Disable "Snap"
  • Doesn't fix the whole problem, but makes it a lot less severe.
  • Easy to do: Disable "Snap" in Windows 10. See below for details.
  • You can implement the workaround for a full solution if you really want to, but it's a lot of work since you'd literally need to make a program to do it. Details at the end of this post.

Background

I have a 6-monitor set up:

                Monitors
   Top row:  [#1] [#2] [#3]
Bottom row:  [#4] [#5] [#6]   (eye-level; #5 is main display)

Whenever I moved a window from one monitor to another, Windows 10 would check to see if I wanted to maximize it. This features, called "Snap", appears to be bugged because it frequently prevented me from moving a window from one display to another. I found this SuperUser question while frustrated about it.

Disabling Snap really helped me. This also automatically disabled Aero shake, which I consider to be a bonus.

Procedure

To disable "Snap" and "Aero shake":

  1. Go to:
    • "Control Panel"
    • --> "All Control Panel Items"
    • --> "Ease of Access Center"
    • --> "Make the mouse easier to use".
  2. Check "Prevent windows from being automatically arranged when moved to the edge of the screen".
  3. Click "OK" or "Apply".

Results

  • "Snap", which blocked moving windows from one screen to another, is now disabled. Windows can move freely.
  • "Aero shake", which causes all windows to minimize when one window is shaken, is now disabled.
  • "Sticky corners", which causes a similar problem but at just the corners (and not all boundaries), is still a problem. As best as I can tell, there is currently (2015-08-18) no way to disable Sticky Corners or further mitigate the problems it causes.

Workaround

There's a workaround for Sticky Corners, but it's not fun. The gist is that you make a WPF program that puts small black squares at the corner of each of your displays, then when the program detects mouse movement over those squares, it hops your mouse to the next screen as intended. Technically you'd probably want to adjust the shape of the "squares" to match whatever area Sticky Corners actually affects (probably an L-like shape?).

Basically:

  1. Download Visual Studio, e.g. Visual Studio 2015 Community.

  2. Make a WPF project.

  3. Have the WPF application make a Window on every page. For each Window:

    this.Topmost = true;
    this.AllowsTransparency = true;
    this.Background = Brushes.Transparent;
    this.WindowState = WindowStates.Maximized;
    Border border = new Border();
    this.Content = border;
    border.Background = Brushes.Transparent;
    border.BorderBrush = Brushes.Black;
    border.BorderThickness = new Thickness(5);
    border.MouseMove += HandleThisByMovingTheMouseToTheCorrectScreen();
    
  4. Write HandleThisByMovingTheMouseToTheCorrectScreen() to move the mouse to the appropriate location, thus avoiding Sticky Corners from trapping it.

  5. If you want to get fancy, instead of a Border, make a Grid with a separate Canvas for each corner (as opposed to the Border, which would also cover the edges that aren't corners on each screen).