Bug 48502

Summary: Пустое окно на некоторых шагах Мастера установки
Product: Sisyphus Reporter: Evgeny Shesteperov <alimektor>
Component: howdyAssignee: Leontiy Volodin <lvol>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: golubevan, lvol
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Evgeny Shesteperov 2023-11-18 20:08:07 MSK
Версия

-   howdy-3.0.0-alt10.beta1.gitc5b1766

Дистрибутивы

-   ALT Education 10.2 XFCE (Sisyphus)
-   ALT KWorkstation 10.2.1 KDE (Sisyphus)

Шаги воспроизведения

Установить пакеты

    # apt-get install -y howdy-gtk

Запустить Howdy GTK

    # howdy-gtk

Нажать кнопку Далее.

Ожидаемый результат: Отображен шаг “Скачивание файлов данных”

Фактический результат: Пустое окно, никакой шаг не отображён.

Workaround: изменить размер окна или распахнуть окно на весь экран
Comment 1 Evgeny Shesteperov 2023-11-18 20:20:57 MSK
Такое же поведение воспроизводится со следующими шагами "Настройка камеры. Мигает ли инфракрасный диод", "Добавление образца лица".
Comment 2 Anton Golubev 2023-11-24 19:30:36 MSK
Это выглядит как некоторая особенность работы GTK, но странным образом, если по результатам обработчика клика на кнопку "Далее", эта кнопка имеет свойство sensivity == 1, то у контейнера следующего слайда не происходит перерасчёт размера. Поэтому слайд имеет нулевые размеры и не отображается. Если же изменить размер окна, это вызывает перерасчёт всех размеров, и слайд начинает отображаться нормально.

Ещё более интересно, что ошибка не воспроизводится на одной из машин, доступных мне, хотя, кажется, версии всех пакетов совпадают.
Comment 3 Anton Golubev 2023-11-27 17:17:40 MSK
Видимо, основной причиной можно назвать то, что авторы gtk-howdy для отображения слайдов не использовали предназначенный для этого виджет Gtk.Stack, а использовали обычный Gtk.Box, при этом скрывая или показывая некоторые куски в зависимости от того, что должно быть видно.
Поэтому, при "переключении" слайда не происходит перерасчёта размеров, что можно назвать особенностью GTK.

Изменение свойства sensivity у кнопки "Далее" приводит к необходимости перерасчитать размеры всех сгруппированных с ней виджетов, в т.ч. контейнера слайдов и его видимых детей, поэтому новый слайд становится видим.

На другой машине проблема не воспроизводится, потому что там другая GTK-3 тема, видимо после клика на кнопку далее происходит её анимация, которая также вызывает перерасчёт размеров и как следствие "проявление" слайда.

Проблему можно исправить, принудительно вызывая метод queue_resize у виджета slidecontainer в конце обработчика клика на кнопку "Далее".
Comment 4 Repository Robot 2023-12-05 15:03:31 MSK
howdy-3.0.0-alt11.beta1.gitc5b1766 -> sisyphus:

 Tue Dec 05 2023 Anton Golubev <golubevan@altlinux> 3.0.0-alt11.beta1.gitc5b1766
 - howdy-gtk: Add default args to exit functions (ALT #48543)
 - Don't pkexec if already root
 - Handle the case if there are no cameras via except (ALT #48544)
 - Show real camera ID in the 'Video' tab (ALT #48542)
 - Don't add a model if the user list is empty (ALT #48529)
 - More correct preview when stretching the window (ALT #48527)
 - Remove reading of non-existent '_variables' file (ALT #48500)
 - Update the container when the slide changes (ALT #48502)
 - Also use PKEXEC_UID to get username (ALT #48503)