Автор Тема: Не приходит сигнал потери фокуса окна от оконного менеджера ( gtk3 ) Mate  (Прочитано 465 раз)

Оффлайн infernalBoy

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

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

Такая же история на AstraLinux.
Mint(Cinnamon), Ubuntu(Gnome) - отрабатывают штатно.

Куда копать?

З.Ы.
Приложение разрабатывается на flutter-е. Возня с окнами у них отсутствует, поэтому пришлось допиливать.
« Последнее редактирование: 04.04.2022 15:01:59 от infernalBoy »

Оффлайн infernalBoy

  • Начинающий
  • *
  • Сообщений: 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 ); не работает остались не известны :(

Оффлайн Pureproft

  • Давно тут
  • **
  • Сообщений: 329
    • Email
Вы пишите gtk3 Mate
Есть ( https://www.altlinux.org/Starterkits/Download )
Cinnamon и GNOME.
Я бы для чистоты эксперимента и локализации проблемы попробовал на них
И допустим MintMate.
Может это проблема не из области gtk а из области окружения в котором он работает.
Рассвет наступит неизбежно!