Благодаря Эммануэле Басси, сотруднику Фонда Gnome, я понял: проблема в том, что мой обработчик фокуса в событии возвратил 1 (ИСТИНА) и, таким образом, предотвратил поведение GTK по умолчанию . Оказалось (что-то неочевидное), что отслеживание активного окна является частью поведения по умолчанию, которое я неосознанно переопределил.
Итак, я изменил обработчик фокуса в событии моих окон, чтобы вернуть FALSE (0), и с тех пор, как gtk_window_is_active () работает как часы.
Я осознал бесполезную (для моей задачи) деталь: gtk_window_is_active () работает только ПОСЛЕ того, как все обработчики фокуса в событии завершили работу. Ну, у меня есть обработчик щелчка мыши, который активирует какое-то другое окно, а затем должен проверить, активно ли определенное окно (эти вещи принадлежат разным объектам и разным модулям, но выполняются в рамках одного вызова хэдлера щелчка). В моем случае gtk_window_is_active () бесполезен: он возвращает FALSE для активного окна до тех пор, пока не будет завершен мой обработчик кликов и не завершены обработчики фокуса в (моем и по умолчанию).