Open-Shell / Open-Shell-Menu

Classic Shell Reborn.
MIT License
6.88k stars 427 forks source link

Wrong mouse graphic when hovering over Win 11 start button after mousing over divider/separator on the taskbar. #1819

Open HimalayaStudios opened 8 months ago

HimalayaStudios commented 8 months ago

Describe the bug

In Windows 11, I added the Quick Launch toolbar and positioned it to appear above my standard Windows taskbar (see attached image bellow for the exact layout).

In Open-Shell (v4.4.191) Under the "Start Menu Style" section, I have not checked the "Replace Start Button" box, as I want to keep the default Windows 11 start button graphic. However, if I move the mouse from right to left along the taskbar, as it moves over the vertical separator lines (which separate the taskbar icons from the start button), the mouse pointer changes to the "move" icon (a horizontal white line with left and right arrowheads on either side). As I keep moving the mouse further left, beyond the separator lines, so that it is hovering exclusively over the Windows start button, the mouse pointer visually still resembles the "move" icon (even though it functions like the standard icon when clicked), and it doesn't change back unless I move the mouse cursor away from the start button again. The same issue can occasionally happen with the "move" arrow when it's a vertical white line with arrowheads at the top and bottom.

The correct behavior should be that as soon as the mouse moves away from the vertical separator and onto the start button, the mouse should visually revert to looking like the standard Windows 11 arrow pointer.

Note that this only seems to happen when using the default Windows 11 start button. If I check the box "Replace Start Button" in Open Shell and choose either "Classic" or "Aero", the issue doesn't occur.

Start_Button_Bug

Area of issue

Start menu, Taskbar

To reproduce

  1. Add a Quick Launch Toolbar to Windows 11 (or any other taskbar layout that places a separator line immediately to the right of the Start button.
  2. Launch Open Shell
  3. Under the "Start Menu Style" section, ensure that the "replace start button" box is unchecked.
  4. Close Open Shell
  5. Drag the mouse slowly across the taskbar, from right to left, toward the Start button.
  6. Notice the mouse icon's visual appearance when moving it over the separator line and over the Start button.

Expected behavior

When hovering over the Start button, the mouse pointer should always display as a regular arrow pointer.

Open-Shell version

4.4.191

Windows version

Windows 11 Pro 23H2

Additional context

No response

ge0rdi commented 8 months ago

Could you, please, verify that the issue disappears when Open-Shell is not active? Right-click on Start button and select Exit.

Add a Quick Launch Toolbar to Windows 11

How do you do this? Do you use some other customization/tweaking software?

HimalayaStudios commented 8 months ago

Okay, I just clicked Exit and, no, it doesn't happen when Open Shell is not active.

Yes, I added the Quick Launch to Windows 11 with ExplorerPatcher, following the instructions in this video: https://www.youtube.com/watch?v=kJD61-rm0mA

ge0rdi commented 8 months ago

no, it doesn't happen when Open Shell is not active.

Thank you for confirmation.

I think it happens because on Windows 11 we have to steal mouse events from the taskbar (so that we can show our Start menu on Start button click). It works differently there than on previous Windows (due to XAML framework used by taskbar).

I added the Quick Launch to Windows 11 with ExplorerPatcher

Oki, that explains it. ExplorerPatcher changes taskbar to old one. So I guess we don't need to steal mouse events in such case. We'd need to detect that there is old taskbar active and behave differently in such case.

HimalayaStudios commented 8 months ago

Ah, that makes sense. Good to hear you've narrowed down the likely cause. Thanks for the great software!