0
我需要接收一個GTK +集中在事件上的終端(VTE),但事件返回EventFocus保持Gtk.Window參考:轉換GdkX11Window到VTE終端類在一個焦點事件
http://www.valadoc.org/gdk-3.0/Gdk.EventFocus.html
我怎樣才能從窗口引用獲取終端?我無法重新輸入,它看起來像是一個容器。但我無法找到要調用終端的方法。
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;
});
}
不幸的是它始終打印空:-(
感謝
是的,但我的問題是我有一堆(數組)的終端,所以我連接在一個循環:foreach(終端t在終端)。當我嘗試在那裏使用「t」變量時,vala尖叫。我以爲我可以使用閉包,但顯然我不能。 – lzap 2012-03-24 14:09:47
我已編輯我的問題。謝謝。 – lzap 2012-03-24 14:11:50
看起來像vala中的錯誤:https://bugzilla.gnome.org/show_bug.cgi?id = 672767 – lzap 2012-03-24 20:25:18