Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move the Open Shell menu #1019

Merged
merged 3 commits into from
Jan 13, 2025
Merged

Move the Open Shell menu #1019

merged 3 commits into from
Jan 13, 2025

Conversation

dremin
Copy link
Owner

@dremin dremin commented Jan 12, 2025

Open Shell Menu doesn't handle WinKey invocation well on secondary monitors. This PR adds logic to move the Open Shell Menu to the correct position based on monitor and the screen edge of the taskbar, only when the start button is enabled for multiple monitors.

Open Shell Menu does have code that supports receiving programmatic activation via window message, but it doesn't use WM_COPYDATA so we cannot send the necessary struct cross-process.

@xoascf - This is similar to what you initially wrote for the modern calendar flyout. There is a brief flicker before it moves, but I think it is better than not moving it at all. What do you think?

@dremin dremin requested a review from xoascf January 12, 2025 22:02
@xoascf
Copy link
Collaborator

xoascf commented Jan 12, 2025

@xoascf - This is similar to what you initially wrote for the modern calendar flyout. There is a brief flicker before it moves, but I think it is better than not moving it at all. What do you think?

On Windows 10, it also flickers when you try to reopen the Modern Start menu after closing it with the taskbar in a different location:
Windows10StartMenuFail

By the way, there should be a loop to move both the classic Start menu (with "Desktop User Picture") when it is open too, for consistency. I remember being able to do this in the past, years ago, I think this used to work: https://www.codeproject.com/Questions/213786/Show-StartMenu-on-custom-position-in-Csharp (but unfortunately the link is dead for now), also asked the SAB developer recently, but no luck:
SIBDevNoWay

Just today I used AutoHotKey and it worked for me!: https://www.autohotkey.com/board/topic/103426-winmove-wont-stick-moving-start-menu/

@dremin
Copy link
Owner Author

dremin commented Jan 13, 2025

On Windows 10, it also flickers when you try to reopen the Modern Start menu after closing it with the taskbar in a different location

Heh, good old MS keeping standards low!

By the way, there should be a loop to move both the classic Start menu (with "Desktop User Picture") when it is open too, for consistency. I remember being able to do this in the past, years ago, I think this used to work: https://www.codeproject.com/Questions/213786/Show-StartMenu-on-custom-position-in-Csharp (but unfortunately the link is dead for now), also asked the SAB developer recently, but no luck: SIBDevNoWay

Just today I used AutoHotKey and it worked for me!: https://www.autohotkey.com/board/topic/103426-winmove-wont-stick-moving-start-menu/

When I move the Windows 7 menu, the menu itself moves fine but the hover effects and submenus get really glitchy for me.

@dremin dremin merged commit 8ff9adb into master Jan 13, 2025
3 checks passed
@dremin dremin deleted the move-openshell-menu branch January 13, 2025 06:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants