Sorcerer wrote:
Нажимаю на кнопку Menu, затем жму Alt+F4, открывается первый пункт меню. Снова Alt+F4 - подменю, третий раз Alt+F4 - запускается C4, четвертый раз Alt+F4 - закрывается C4, пятый раз Alt+F4 - открывается Menu, и так до бесконечности.
Дело в том, что при нажатии alt+f4 @panel посылает активному окну сообщение о нажатии кнопки с идентификатором 0x000001, т.е. системной кнопки закрытия. А приложение @menu посчитало, что ему очень удобно нумеровать свои кнопки-подпункты как 0x0000XX. Вот и получалось, что @panel говорила @menu закрыться, а оно думало, что нажали первую (верхнюю) кнопку.
Теперь кнопки меню нумеруются, начиная с 0xd1ffXX. Alt+f4 закрывает всё дерево меню.
Приложение @panel всё ещё требует доработки: после закрытия меню панель становится активной, при нажатии alt+f4 посылает себе сообщение о нажатии кнопки 0x000001 и запускает то, что у неё числится под первой кнопкой - @menu. Если подправить исходники, чтобы посылалось сообщение о кнопке 0x000002, то запустится календарь.