Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
 Аватар для Infernalboy
3 / 7 / 1
Регистрация: 30.09.2014
Сообщений: 61

Не приходит сигнал потери фокуса окна от оконного менеджера ( gtk3 ) AstraLinux

30.03.2022, 08:52. Показов 1675. Ответов 3

Студворк — интернет-сервис помощи студентам
При переключении фокуса на окно другого приложения (ну или любого другого варианта с потерей фокуса окном приложения), в приложение на сигнал window-state-event на gtk3 не приходит ничего хотя должно было GDK_WINDOW_STATE_FOCUSED
При этом GdkEventWindowState ивенты
GDK_WINDOW_STATE_ICONIFIED
GDK_WINDOW_STATE_WITHDRAWN
GDK_WINDOW_STATE_MAXIMIZED

Приходят нормально.

Такая же история на AltLinux

на linux Mint и Ubuntu20.04 все работает штатно.

Куда копать?
З.Ы.
Приложение разрабатывается на flutter-е. Возня с окнами у них отсутствует, поэтому пришлось на сях допиливать.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.03.2022, 08:52
Ответы с готовыми решениями:

Событие потери фокуса окна
Товарищи, подскажите, пожалуйста, какое событие отвечает за потерю фокуса она (допусти при нажатии правой кнопки мыши и вылета стандартного...

Закрытие окна(спойлера) при потери фокуса
Добрый день собственно вопрос, имею множество спойлеров и не обходимо что бы при потери фокуса открытый спойлер закрывался. Нужно именно...

Валидация до потери фокуса
Добрый день. Есть TextBox который привязан к свойству типа int, при попытке ввести текст и потере фокуса возникает ошибка вальвации, как...

3
7 / 6 / 1
Регистрация: 26.12.2019
Сообщений: 71
02.04.2022, 23:00
Лучший ответ Сообщение было отмечено Infernalboy как решение

Решение

Доброго времени суток !

Сначала нужно добавить событие для обработки виджетом:
C
1
        gtk_widget_add_events((GtkWidget*)appSettingsUI.host, GDK_FOCUS_CHANGE_MASK);
После нужно добавить соответствующие сигналы к обработчику:
C
1
2
        g_signal_connect(appSettingsUI.host, "focus-in-event", G_CALLBACK(keyb_show), NULL);
        g_signal_connect(appSettingsUI.host, "focus-out-event", G_CALLBACK(keyb_hide), NULL);
Все просто
1
 Аватар для Infernalboy
3 / 7 / 1
Регистрация: 30.09.2014
Сообщений: 61
04.04.2022, 14:44  [ТС]
Спасибо тебе, добрый человек! Работает. Вопрос: почему не приходит в
C
1
g_signal_connect( window, "window-state-event", G_CALLBACK( on_window_state_signal ), NULL );
все равно остается очень любопытным. Ведь в Gnome\Cinnamon приходит.
0
7 / 6 / 1
Регистрация: 26.12.2019
Сообщений: 71
04.04.2022, 23:21
Для того чтобы генерировался этот евент необходимо включить соответствующую маску
To receive this signal the GdkWindow associated to the widget needs to enable the GDK_STRUCTURE_MASK mask. GDK will enable this mask automatically for all new windows.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.04.2022, 23:21
Помогаю со студенческими работами здесь

События потери фокуса HotKey-я
Привет, как словить потерю фокуса на HOTKEY_CLASS Хоте кей рисую так: hwndHot = CreateWindowEx(0, // no...

onChange без потери фокуса
Доброго всем времени суток! Дело такое. По имени материала понятно что мне надо. К примеру, <select> нормально работает когда...

Событие потери фокуса Edit-ом
Привет, есть ли события или что-то этого в Edit ? мне нужен момент когда с Edit-а сняли фокус

Как избежать потери фокуса mousePressEvent
Родительское приложение запускает дочернее и передает ему параметры своего graphicsView через StdIn, StdOut. Дочернее приложение запускаясь...

Событие потери фокуса элементом управления
То есть есть текстбокс пользователь в него вписал что то и щелкнул на другой элемент управления, после этого надо проверить что вписал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru