Bug 57165

Summary: После переподключения второго монитора в kwin_wayland greeter'е перестаёт работать клавиатура
Product: Sisyphus Reporter: Vladislav Glinkin <glinkinvd>
Component: lightdm-kde-greeterAssignee: Anton Golubev <golubevan>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: golubevan, rider, zerg
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Vladislav Glinkin 2025-12-08 15:23:32 MSK
Версия пакета:
lightdm-kde-greeter-6.1.0-alt1

В greeter'е, запущенном с помощью kwin_wayland, возникает проблема при переподключении второго монитора - горячие клавиши F1, F10 перестают работать.

Шаги воспроизведения:
1) Подключить второй монитор
2) Включить ноутбук/ПК
3) Как загрузится LightDM - переподключить второй монитор

Фактический результат:
До переподключения монитора горячие клавиши работают. После переподключения - перестают.

Ожидаемый результат:
Корректная работа горячих клавиш после переподключения второго монитора.

Дополнительно:
Если сравнивать поведение с failback greeter'ом (X11), то там поведение немного другое. При переподключении второго монитора (который был подключен изначально перед включением ПК/ноутбука) - горячие клавиши работают. Однако, если подключить какой-либо другой монитор в качестве второго - экранный менеджер на нём не будет отображаться.
Comment 1 Vladislav Glinkin 2025-12-10 17:05:46 MSK
Версия пакета: lightdm-kde-greeter-6.1.1-alt1

При перепроверке обнаружил, что перестают работать не горячие клавиши, а клавиатура в целом до тех пор, пока не будет совершено нажатие мышью на иконку пользователя или клавишу войти.
Comment 2 Sergey V Turchin 2025-12-11 08:59:58 MSK
(Ответ для Vladislav Glinkin на комментарий #1)
> до тех пор, пока не будет совершено нажатие мышью на иконку пользователя или клавишу войти.
Полагаю, эти фокусы с фокусом нужно доделать до возврата его в нужное место.
Comment 3 Anton Golubev 2025-12-22 17:32:26 MSK
Проблема, как оказалось заключается в том, что Xorg и KWin в разное время отправляют событие входа курсора мыши в окно.

Гритер создаёт отдельное окно для каждого экрана, а объект со всем пользовательским интерфейсом (PrimaryScreen) отображается на одном из этих окон, путём назначения этого окна своим родителем. При отключении/подключении монитора эти окна пересоздаются, причём, сначала создаются новые окна, а потом удаляются старые. PrimaryScreen назначается потомком одного из окон в событии попадания курсора мыши в одно из этих новых окон. Так вот, Xorg это делает ещё до разрушения старого окна, а KWin уже после. При разрушении старого окна PrimaryScreen "теряет фокус", и при подключении его к новому окну, фокус не возвращается, поскольку на то уже нет причин.

Я починил это, добавив явное назначение PrimaryScreen потомком вновь созданного окна, если это окно принадлежит так называемому основному экрану (QGuiApplication::primaryScreen).
Собрал для Сизифа в тестовом задании 403527. Завтра, если в апстриме или здесь не возникнет вопросов, я смержу соответствующий MR [1] и отправлю в Сизиф.

[1]: https://invent.kde.org/plasma/lightdm-kde-greeter/-/merge_requests/17
Comment 4 Repository Robot 2025-12-23 09:54:34 MSK
lightdm-kde-greeter-6.1.2-alt1 -> sisyphus:

Mon Dec 22 2025 Anton Golubev <golubevan@altlinux> 6.1.2-alt1
- fix lost focus on disable/enable screen (Closes: 57165)