Created attachment 14391 [details] Патч для freerdp Некорректная работа клиента xfreerdp Проблема 1: всплывающее меню исчезает с экрана. Шаги для воспроизведения: 1. Подключиться к удаленному серверу Windows Server с установленной 1С 8.3 через RemoteApp 2. Запустить программу 1С 3. Попробовать вызвать контекстное меню в списке баз данных по нажатию ПКМ Полученный результат: всплывающее меню появляется на долю секунды и исчезает. Ожидаемый результат: всплывающее меню остается на экране. Проблема была замечена также в: - https://bugzilla.altlinux.org/show_bug.cgi?id=44696 Баг закрыт, но проблема не в конкретном приложении, т.к. на Windows работает (это идеал к которому стремится freerdp), а значит xfreerdp неверно обрабатывает всплывающие окна, даже если в Windows или соответствующем приложении допущено создание окон с неверными параметрами. - https://github.com/FreeRDP/FreeRDP/issues/4660#issuecomment-416016785 Данный патч не совсем корректный, т.к. в коде программы была обработка всплывающих окон для устранения проблемы с фокусом, но она не применялась (для WS_POPUP не устанавливался флаг attrs.override_redirect в xf_SetWindowStyle. Проблема 2: окна разворачиваются сами по себе. Шаги для воспроизведения: 1. Подключиться к удаленному серверу Windows Server через RemoteApp 2. Запустить программу, например "Диспетчер задач" 3. Развернуть окно по нажатию кнопки на рамке окна 4. Вернуть окно в обычный размер (свернуть в окно) по нажатию кнопки на рамке окна 5. Переключиться на любое другое окно Полученный результат: окно удаленного приложения разворачивается во весь экран. Ожидаемый результат: окно удаленного приложения остается на месте и не меняет свой размер. Проблема 3: разворачивание окна без такой возможности со стороны программы. Шаги для воспроизведения: 1. Подключиться к удаленному серверу Windows Server с установленной 1С 8.3 2. Запустить программу 1С 3. Убедиться в наличии только кнопки/функции закрытия окна на рамке окна и в его контекстном меню 4. Развернуть окно через контекстное меню на панели задач Полученный результат: возможность разворачивания окна присутствует в контекстном меню на панели задач, окно удаленного приложения разворачивается во весь экран. Ожидаемый результат: возможность разворачивания окна отсутствует/отключена в контекстном меню на панели задач, окно остается без изменений. При использовании графического окружения KDE Plasma воспроизводятся все указанные проблемы. В окружении MATE не воспроизводится только проблема с разворачиванием окон. Прилагаемый патч работает на версиях 2.10.0 и 2.11.1. Окружение: - Сервер: Windows Server 2008 R2 - Рабочая станция: Альт Рабочая Станция К 10.1, последние обновления на 11.09.2023 - freerdp: 2.10.0 (текущая для p10), 2.11.1 (из Сизифа) Примечание: на Windows Server 2008 R2 окно диспетчера задач имеет флаг WS_POPUP, а на Windows Server 2012 R2 - нет. Команда для запуска RemoteApp приложения: xfreerdp /v:<сервер> /u:<пользователь> /app:"||<псевдоним программы>" P.S. В версии freerdp 3.0.0-beta3 не наблюдается только проблема №1, остальные присутствуют. Но, к сожалению, некорректно отрисовываются окна, поэтому использовать ее невозможно.
Created attachment 14392 [details] Запись экрана с указанными проблемами