Hey kdeuxk, awesome! thanks a lot for running the script! 🙂
That's exactly what I was looking for!
Look's like the values for the submenu opening / closing time is set to one millisecond on your machine:
SH_Menu_SubMenuPopupDelay: 1
SH_Menu_SubMenuSloppyCloseTimeout: 1
Comparing to the 400 msecs on my maschine for instance.
The current Qt menu implementation, that we use, is getting the value from a windows operation system setting (SPI_GETMENUSHOWDELAY),
which is apparently to small on your machine and the menu is closing right away.
It might be ok for opening menus, cause it is quicker, but since Qt is also using the same value as closing timer, it is messing up the Qt sub menu handling.
As quick in between solution I created a small python script which updates the windows system setting value for the menus to 400 milliseconds.
Please unzip the scripts in the attached zip package in your 3ds Max exe folder for testing.
The zip package contains two script files the python script that updates the system parameter and a maxscript that executes the python script on 3ds Max startup.
The unzipped files should go into the following folders:
scripts/Python/updateWin32MenuShowDelay.py
stdplugs/stdscripts/updateWin32MenuShowDelay.ms
After unzipping the two files, please start 3ds Max and try out the handling of the sub menus again.
Please let me know if the sub menus would work.
The Qt menu setting values should also show now:
SH_Menu_SubMenuPopupDelay: 400
SH_Menu_SubMenuSloppyCloseTimeout: 400
Thanks a lot,
Roman
Roman Woelker
Software Development Engineer