Bug 38418

Summary: Скринсейвер блокирует взаимодействие с элементами интерфейса
Product: Branch p10 Reporter: jqt4
Component: xfce4-screensaverAssignee: Mikhail Efremov <sem>
Status: CLOSED FIXED QA Contact: qa-p10 <qa-p10>
Severity: normal    
Priority: P5 CC: aen, antohami, iv, jqt4, lepata
Version: не указана   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 33000    
Attachments:
Description Flags
Что GDK думает о мониторе? none

Description jqt4 2020-04-30 20:55:18 MSK
После включения скринсейвера графический интерфейс перестаёт реагировать на мышь и клавиатуру.
При этом мышиный курсор отображается и движется нормально, но элементы интерфейса на него не реагируют.
Если принудительно завершить xfce4-screensaver проблема пропадает.
Проблема наблюдается при использовании xfce4-screensaver 0.1.10.
При использовании xfce4-screensaver 0.1.8, который установлен в образе slinux-rpi4-9.0-aarch64.img.xz проблема не наблюдается.
Comment 1 jqt4 2020-05-04 20:19:49 MSK
Уточнение: проблема наблюдалась на RPi4 с ядром 5.6.2.
Проблема пропадает также если включить DRM путем настройки в config.txt
dtoverlay=vc4-fkms-v3d
Comment 2 Ivan A. Melnikov 2020-05-29 13:16:25 MSK
Проблема воспроизвелась на Таволге с Simply Linux 9, обновлённым до текущего p9_mipsel. Используя  rpm -Uhv --oldpackage --nodeps удалось установить, что что-то произошло именно между 0.1.8 и 0.1.9: жесткий даунгрейд до 0.1.8 исправляет проблему, а до 0.1.9 -- нет.
Comment 3 Ivan A. Melnikov 2020-05-29 14:00:28 MSK
Конкретно на Таволге проблема в том, что xfce4-screensaver не 
считает монитор настоящим. Такой вот патч исправляет проблему 
(но наверняка создаёт другие):


--- a/src/gs-manager.c
+++ b/src/gs-manager.c
@@ -100,8 +100,9 @@ gs_manager_is_real_monitor (GdkMonitor *monitor) {
     // avoiding some weird gdk bug
     // federico> avb: or if you don't care about a little unexplained messiness,
     //                just discard monitors where both fields are null? :)
-    if (gdk_monitor_get_manufacturer(monitor) == NULL && gdk_monitor_get_model(monitor) == NULL)
-        return FALSE;
+    if (gdk_monitor_get_manufacturer(monitor) == NULL && gdk_monitor_get_model(monitor) == NULL) {
+        gs_debug("Monitor is not real: %p; let's ignore that.", monitor);
+    }
     return TRUE;
 }
Comment 4 Ivan A. Melnikov 2020-05-29 15:51:32 MSK
Created attachment 8815 [details]
Что GDK думает о мониторе?

Я проверил -- действительно, и на Rpi4 и на Таволге одна и та же проблема: gdk_monitor_get_model и gdk_monitor_get_manufacturer возвращают NULL. Драйвер btsm750 на Таволге действительно не умеет читать EDID.

Простой скрипт для проверки в приложении. Для работы требуется libgtk+3-gir и python3-module-pygobject3 или что-то в этом роде. На рабочем ноуте (Сизиф, xfce4) скрипт выдаёт

<eDP1> <LGD>

На Таволге и на Rpi4

<None> <None>
Comment 5 Ivan A. Melnikov 2020-05-29 16:33:07 MSK
Upstream bug:

https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/44
Comment 6 Антон Мидюков 2020-06-30 14:24:26 MSK
Сегодня эту проблему наблюдал на Raspberry Pi 3 с ядром std-def.
Comment 7 Elena Mishina 2023-06-15 20:03:30 MSK
SL P10 xfce4-screensaver-4.18.2-alt1.x86_64 ядро 6.1.32-un-def-alt1
Данная проблема возникает при выходе из ждущего режима.

Если вслепую ввести пароль, то экран разблокируется:

июн 15 18:49:08 work xfce4-screensav[4708]: UNSPECIFIED (__progname="xfce4-screensaver-dialog" uid=500 euid=500): pam_tcb(xfce4-screensaver:auth): Authentication passed for user from user(uid=500)
Comment 8 AEN 2023-06-15 20:37:51 MSK
Вроде тут

https://bugzilla.opensuse.org/show_bug.cgi?id=1210562

решили
Comment 9 Ivan A. Melnikov 2023-06-16 12:56:52 MSK
(In reply to AEN from comment #8)
> Вроде тут
> 
> https://bugzilla.opensuse.org/show_bug.cgi?id=1210562
> 
> решили


Апстримный фикс

https://gitlab.xfce.org/apps/xfce4-screensaver/-/commit/3aa15c2278c12ead23ccbbd7923eab9b365e16a9

выглядит отлично.
Comment 10 Mikhail Efremov 2023-06-16 13:13:14 MSK
(In reply to Ivan A. Melnikov from comment #9)
> Апстримный фикс
> 
> https://gitlab.xfce.org/apps/xfce4-screensaver/-/commit/
> 3aa15c2278c12ead23ccbbd7923eab9b365e16a9
> 
> выглядит отлично.

Он вошел в xfce4-screensaver-4.18.2, который уже в p10.
Comment 11 Elena Mishina 2023-06-16 17:59:23 MSK
(Ответ для Mikhail Efremov на комментарий #10)

> Он вошел в xfce4-screensaver-4.18.2, который уже в p10.

У меня воспроизводится в этой версии. Если стоит отметка "Блокировать экран при переходе в ждущий режим" и только если переход в ждущий режим осуществляется закрытием крышки ноутбука.
Comment 12 Mikhail Efremov 2023-06-16 18:44:27 MSK
Возможно это другой баг. Но я подобное и с xscreensaver видел, так что проблема скорее всего где-то глубже.
Comment 13 Антон Мидюков 2023-09-15 10:41:34 MSK
(Ответ для Mikhail Efremov на комментарий #10)
> (In reply to Ivan A. Melnikov from comment #9)
> > Апстримный фикс
> > 
> > https://gitlab.xfce.org/apps/xfce4-screensaver/-/commit/
> > 3aa15c2278c12ead23ccbbd7923eab9b365e16a9
> > 
> > выглядит отлично.
> 
> Он вошел в xfce4-screensaver-4.18.2, который уже в p10.

Тогда закрываю. Новой проблеме - новый баг.