Add edge delay before wrapping to another edge/display#45431
Add edge delay before wrapping to another edge/display#45431mikehall-ms wants to merge 2 commits intomicrosoft:mainfrom
Conversation
|
Hi @mikehall-ms. I think there are a few UX-related issues with the time delay approach. Although it solves the issue where the screen edges cannot be touched at all, I think it could introduce some new problems:
I think there's an alternative approach which is superior. I've been working on this for a little while and it centres around "sticky edges" with push-through resistance replacing the current "border warp" behaviour. Instead of wrapping after a time delay, the user would have to actively push through the edge for a configurable distance (e.g. 25 pixels, but scaled by the DPI of the current monitor). How it works:
I think this is superior because:
I don't want to sound pretentious, but I think the "intentionality" of this is the main thing that makes it a decent alternative. The feeling is a little like haptic feedback, where there's an appreciable "bump" to the movement between screens. It's strangely pleasant. OK, now I definitely sound pretentious. I am part way through my implementation, but I'm happy to open a draft PR to share the current approach and maybe work together on a solution. (Or I'll back off if you think the time delay is your preferred approach - just let me know.) |
Summary of the Pull Request
This PR adds a new option for a delay before wrapping to another monitor edge, this feature can be enabled/disabled, and supports delays of 250ms to 1000ms.
PR Checklist
Detailed Description of the Pull Request / Additional comments
Adds a delay before transitioning to another display, this allows the user to 'bump' the edge of the display when aiming for an applications system menu, browser tabs, close button, system tray, etc... default delay is 250 ms - if the user moves the mouse during the delay period then the timeout is cancelled.
Validation Steps Performed
Confirmed behavior on Surface Laptop 7 Pro with USB-C external monitor.