мне нужно получить GTK + фокус в случае на терминале (ВТЭ), но событие возвращает EventFocus который содержит Gtk.Window ссылка:Преобразование GdkX11Window в класс ВТЭ терминала в случае фокусировки
http://www.valadoc.org/gdk-3.0/Gdk.EventFocus.html
Как я могу получить Terminal из ссылки Window? Я не могу повторить его, похоже, что это контейнер. Но я не могу найти, какой метод позвонить, чтобы получить терминал.
Terminal terminal = new Terminal();
// ...
terminal.focus_in_event.connect((event) =>
{
the_terminal = event.window; // DOES NOT WORK > invalid cast from `GdkX11Window' to `Terminal'
return false;
});
Спасибо за указание, что мне это не нужно. Да, мой реальный код:
for (int i = 0; i < terminal.length; i++) {
this.terminal[i].focus_in_event.connect((event) =>
{
GLib.stdout.printf("Focus event terminal %p\n", this.terminal[i]);
return false;
});
}
К сожалению, это всегда печатает Null :-(
Благодаря
Да, но проблема в том, что у меня есть связка (массив) терминалов, поэтому я подключаюсь в цикле: foreach (Terminal t в терминалах). И когда я пытаюсь использовать переменную «t», вала кричит. Я думал, что могу использовать закрытие, но, видимо, не могу. – lzap
У меня есть мой вопрос. Благодарю. – lzap
Похож на ошибку в vala: https://bugzilla.gnome.org/show_bug.cgi?id=672767 – lzap