Bug 47533

Summary: Некорректная работа клиента
Product: Sisyphus Reporter: Корытов Иван <boot.efi>
Component: freerdpAssignee: Mikhail Kolchin <mvk>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: mvk
Version: unstable   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
Патч для freerdp
none
Запись экрана с указанными проблемами none

Description Корытов Иван 2023-09-12 13:51:45 MSK
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, остальные присутствуют. Но, к сожалению, некорректно отрисовываются окна, поэтому использовать ее невозможно.
Comment 1 Корытов Иван 2023-09-12 13:52:45 MSK
Created attachment 14392 [details]
Запись экрана с указанными проблемами