View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003949 | Far Manager | Interface | public | 2022-06-02 17:18 | 2022-12-15 09:55 |
Reporter | ajax16384 | Assigned To | |||
Priority | normal | Severity | major | Reproducibility | always |
Status | new | Resolution | open | ||
Platform | windows | OS | Windows | OS Version | 10.0.22000.708 |
Product Version | 3.0 | ||||
Summary | 0003949: Windows Terminal + Alt-F9 | ||||
Description | под Windows Terminal (как миниум 1.14) не работает Alt-F9. Far Manager, version 3.0.5959.0 x64 Windows Terminal Preview Version: 1.14.1452.0 | ||||
Steps To Reproduce | launch wt.exe launch far.exe press alt-f9 | ||||
Additional Information | Для maximize/restore FAR делает SendMessage(GetConsoleWindow(), WM_SYSCOMMAND ...) https://github.com/FarGroup/FarManager/blob/223a390f1eee530f32fff3d469661a1ef9c9d2ac/far/interf.cpp#L545 но в WT и других pseudoconsole подобных терминалах это скорее всего бесполезно: - в общем случае у pseudo console GetConsoleWindow() окно не обязательно визуальное: For an application that is hosted inside a pseudoconsole session, this function returns a window handle for message queue purposes only. The associated window is not displayed locally as the pseudoconsole is serializing all actions to a stream for presentation on another terminal window elsewhere. https://docs.microsoft.com/en-us/windows/console/getconsolewindow - конкретно у WT WM_SYSCOMMAND не реализовано и скорее всего не будет: https://github.com/microsoft/terminal/blob/9dca6c27eeeb4371c87cdc553d01b8876d028d21/src/interactivity/base/InteractivityFactory.cpp#L457 Возможное решение: блокировать для pseudo console (определять у GetConsoleWindow пклассу окна "PseudoConsoleWindow") SendMessage обращения GetConsoleWindow() для действий типа alt-f9, (а также wm_seticon итп) | ||||
Tags | No tags attached. | ||||
Build | |||||
|
Похоже пофикшено тут: https://github.com/FarGroup/FarManager/commit/f7c7a1d00cc4c8e607d66c219d0c9f36c7c2cc92 |
|
@DrKnS Можно закрывать баг |