[Far Manager 0003949]: Windows Terminal + Alt-F9

5 views
Skip to first unread message

Mantis Bug Tracker

unread,
Jun 2, 2022, 12:18:58 PMJun 2
to far...@googlegroups.com
The following issue has been SUBMITTED.
======================================================================
<a target="_blank"
href="https://bugs.farmanager.com/view.php?id=3949">https://bugs.farmanager.com/view.php?id=3949</a>

======================================================================
Reported By: ajax16384
Assigned To:
======================================================================
Project: Far Manager
Issue ID: 3949
Category: Interface
Reproducibility: always
Severity: major
Priority: normal
Status: new
Build:
======================================================================
Date Submitted: 2022-06-02 17:18 BST
Last Modified: 2022-06-02 17:18 BST
======================================================================
Summary: 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 ...)
<a target="_blank"
href="https://github.com/FarGroup/FarManager/blob/223a390f1eee530f32fff3d469661a1ef9c9d2ac/far/interf.cpp#L545">https://github.com/FarGroup/FarManager/blob/223a390f1eee530f32fff3d469661a1ef9c9d2ac/far/interf.cpp#L545</a>
но в 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.
<a target="_blank"
href="https://docs.microsoft.com/en-us/windows/console/getconsolewindow">https://docs.microsoft.com/en-us/windows/console/getconsolewindow</a>

- конкретно у WT WM_SYSCOMMAND не реализовано и
скорее всего не будет: <a target="_blank"
href="https://github.com/microsoft/terminal/blob/9dca6c27eeeb4371c87cdc553d01b8876d028d21/src/interactivity/base/InteractivityFactory.cpp#L457">https://github.com/microsoft/terminal/blob/9dca6c27eeeb4371c87cdc553d01b8876d028d21/src/interactivity/base/InteractivityFactory.cpp#L457</a>

Возможное решение:
блокировать для pseudo console (определять у
GetConsoleWindow пклассу окна "PseudoConsoleWindow") SendMessage
обращения GetConsoleWindow() для действий типа alt-f9,
(а также wm_seticon итп)

======================================================================

Issue History
Date Modified Username Field Change
======================================================================
2022-06-02 17:18 ajax16384 New Issue
======================================================================

Reply all
Reply to author
Forward
0 new messages