Roberto Lopez wrote:Roberto Lopez wrote: I'll continue researching to determine if this behavior is inherited from Windows API or not and (in both cases) if it is 'fixable'.
The fix (if possible) could take a long time for me to make it, so, if someone has additional information that helps on this, please post here!
TIA.
Grigory,
Does this problem exists (existed) in minigui ext.?
If so and you've fixed, could be you so kind to give some guidance about how to solve it?
Thanks in advance.
Hello Roberto,
Yes, we had the similar problem in the minigui ext.
If a window has a menu, and it has a shortcut that opens a second
window, and you activate the menu (via mouse click or shortcut), and
then press the shortcut key that opens the second window, the whole
program freezes (described by Kevin Carmody <
i@kevincarmody.com>).
The solution was to use the Static variable IsActiveMenu in the function Events() for switching
menu state (which is activated at WM_MENUSELECT event) and block the hotkeys action in the WM_HOTKEY event when the menu is active. Then this flag was reset at the WM_MOUSEMOVE, WM_MOVE, WM_SIZE, WM_COMMAND and WM_CONTEXTMENU events.
But this rough hack creates a problem in the Grid inplace edit window and I've remove this trick from the latest build.
For now I support Esgici's conclusion:
problem is ON KEY ESCAPE .. command.
...
if program set a key for other than standard action, system quit this standard action and obey this command.
BTW I think that a hotkeys handling require a small improvement/revising.
Thanks for your attention!