Description
reactos Trunk r67874
ROS + Explorer_new + RShell.dll:
When you press Windows-Key + E: FileBrowser opens, but Startmenu is not closed as it should
WindowsXP + explorer_new + RShell.dll:
similar problem
WindowsXP + explorer_new without RShell.dll (implicitly using shell32.dll-CMenuDeskbar)
works like a charm
does occur on all hotkeys handled by explorer/traywnd.cpp
(e.g.: WIN+E as well as WIN+R)
traywnd.cpp does a good job when handling the key_PRESSED_event for hotkey (e.g. WIN+E)
but somehow the key_RELEASE_event of WIN is still forwarded to RShell::CMenuDeskbar.cpp::Popup() which it should not in the case that it is a 'combined shortcut'
Proposal:
instead of closing the Startmenu after opening it unnecessarily,
maybe it is possible to discard the undesired WIN-key_release_event earlier if it was a 'combined shortcut' and not open the StartMenu at all in this case
abstract (simplified) callstack:
/win32ss/user/ntuser/hotkey.c::co_UserProcessHotKeys()
/base/shell/explorer/taskswnd.cpp::HandleShellHookMsg(()
/base/shell/explorer/traywnd.cpp_PopupStartMenu()
/base/shell/explorer/rshell/CMenuDeskbar.cpp::Popup()
Other than previously, now I think it's best to fix it within
/win32ss/user/ntuser/hotkey.c::co_UserProcessHotKeys()