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

infernalboy

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

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

Куда копать?
З.Ы.
Приложение разрабатывается на flutter-е. Возня с окнами у них отсутствует, поэтому пришлось допиливать.
 

infernalboy

New member
Сообщения
2
#2
Товарищ sva1509 с киберфорума подсказал как побороть:
Доброго времени суток !

Сначала нужно добавить событие для обработки виджетом:

gtk_widget_add_events((GtkWidget*)appSettingsUI.host, GDK_FOCUS_CHANGE_MASK);
После нужно добавить соответствующие сигналы к обработчику:
Код:
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);
Все просто
НО! Причины почему g_signal_connect( window, "window-state-event", G_CALLBACK( on_window_state_signal ), NULL ); не работает остались не известны :(