152

It seems Microsoft has tried to solve this problem: Multi-monitors and the corners of the screen.

In Windows 7, there is no boundary between monitors and the mouse can move freely across the top of the screen between my 3 monitors, provided I had set their heights equal in display settings. Windows 8 introduced sticky corners. See this question.

Windows 10 got sticky corners as well. There are a few pixels at the top corners of each display where the mouse cannot cross over onto the other display. One must move the cursor down to avoid this region in order to get to the next display.

The image shows roughly the region where mouse movement is not permitted in Windows 10, but is allowed in Windows 7.

enter image description here

Personally, I had no problem with unrestricted mouse movement across the top of my screens - I got used to "aiming" for the x, and the convenience of unrestricted cursor movement. Like all the people who wanted to disable it in W8, I'm wondering if there is a way to disable it in W10.

Edit to address possible duplicate:

Although the problem is identical to the one in this question, solutions to solve the problem in W8 involving editing the registry key MouseCornerClipLength do not work in W10, since that registry key is not present in W10. Also adding that key and setting the value doesn't work. I searched the entire registry and couldn't find it in another location. No other W10 keys in the node referenced in the W8 solution are obvious replacements.

Edit to address possible solutions in comments

harrymc's suggestion 1 and suggestion 2 that worked for Windows 8.1 do not work in Windows 10.

Franck Dernoncourt
  • 24,246
  • 64
  • 231
  • 400
djv
  • 1,585

11 Answers11

43

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.

harrymc
  • 498,455
29

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

Jon
  • 438
14

In the spirit of Jonathan Barton's contribution above, I developed a little Windows C# command-line application to deal with this problem, and allow the mouse to move smoothly across multiple monitors, and also to wrap-around between left-most and right-most monitors. Note that this program does not require a "heuristic" to determine when the cursor is near the screen edge, so the cursor flows very smoothly across the edges.

  • MouseUnSnag - GitHub - You can compile it from source, or there is an executable provided as a GitHub "release".

MouseUnSnag also addresses this related superuser.com question about the cursor getting stuck on edges of monitors of differing heights:

dale
  • 1,051
  • 9
  • 5
6

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).

BurnsBA
  • 284
Nat
  • 2,023
4

Edit on December 19, 2021: I'm now using the C# based app MouseUnSnag written by dale (shared above) and is now living here: https://github.com/MouseUnSnag/MouseUnSnag

It now features a system tray icon where you can enable/disable various features, including disabling sticky corners and preventing the mouse from getting stuck in the corners between monitors of varying resolutions.

MouseUnsnag Screenshot

Original answer below.


This also bugged me. I've taken a crack at implementing a solution in AutoHotkey which retains all the main "snap" features while allowing you to disable strictly the "sticking" of your mouse that happens in the corners between monitors.

Workaround:

https://github.com/patricknelson/win10-sticky-mouse

  1. Install AutoHotkey
  2. Download and run win10-sticky-mouse.ahk from the above repo.

The key here is to watch messages from WM_MOUSEMOVE and use that to predict where the mouse will be going, then hopping over (cross axis to the primary axis of movement) just enough to ensure Windows doesn't [un]helpfully catch your mouse.

If you're still having issues, please try giving this a shot and let me know if that helps. Any issues or pull requests are very welcome!

2

I am not sure if this has always been an option of if it has recently just been implemented but I found the solution by Going into
Settings > System > Multitasking
Then Shut Off Snap By Shutting off "Arrange Windows automatically by dragging them to the sides or conveners of the screen"

which will shut off all the Snap Settings
I found this setting from a tutorial on this site: https://www.tekrevue.com/tip/how-to-disable-snap-assist-windows-10/

Visual walk through:

Open Settings and Click on System

Open Settings and Click on System

Click on Multitasking and Shut off The First Snap Option

Click on Multitasking and Shut off The First Snap Option

1

Try using the application Display Fusion. It takes care of the problem even in Windows 10. The setting you are looking for is under settings:Mouse Management: Prevent mouse cursor from sticking in Sticky Corners (Windows 10).

T.J.L.
  • 1,300
David
  • 11
0

This issue seems to be present in Windows 10 when there is a gap between two displays in the 'Select and rearrange displays' config section. I was able to fix the issue by slightly moving the two displays towards each other so there is visually no gap between them.

Display Arrangement with gap

mnwsmit
  • 125
  • 2
-1

This was a Windows 8 feature called sticky corners (IIRC). Here's someone who claims to have disabled it with a registry change:

  1. In registry, search: MouseCornerClipLength
  2. Set the value to 0 (from 6)
  3. Repeat (there is more than one key with this name, I’m not sure which one(s) are necessary)
  4. Restart

Note that I'm not currently in a situation to try this out, so let me know if this doesn't solve your problem and I'll remove my answer.

-2

I don't know if this will help others. But, I simply dragged the monitor numbers to move #1 to where #2 was and vice versa. It worked. And, so far (fingers crossed) it has not reverted to the mouse sticking problem. Good luck.

MargieC
  • 11
-2

Temporary fix. I returned to my Logitech wireless mouse. I'd been using a Minicute left hand mouse, but it gets stuck. So far, the Logitech M705 mouse does not. Logitech must have seen it coming.

JVincent
  • 1
  • 1