Ich brauche ein GTK + empfangen in Veranstaltung konzentrieren auf einem Terminal (VTE), aber das Ereignis zurückgibt EventFocus die Gtk.Window Referenz gilt:konvertieren GdkX11Window zu VTE Terminal-Klasse in einem Fokus Ereignis
http://www.valadoc.org/gdk-3.0/Gdk.EventFocus.html
Wie kann ich das Terminal von der Fensterreferenz erhalten? Ich kann es nicht erneut eingeben, es sieht so aus, als wäre es ein Container. Aber ich bin nicht in der Lage, die Methode zu finden, um das Terminal zu erreichen.
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;
});
Danke für das Aufzeigen, dass ich es nicht brauche. Ja, mein richtiger Code ist:
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;
});
}
Leider druckt es immer null :-(
Dank
Ja, aber mein Problem ist, ich habe ein Bündel (Array) von Terminals, also bin ich in einer Schleife verbinden: foreach (Terminal t in Terminals). Und wenn ich versuche, dort "t" Variable zu verwenden, schreit Vala. Ich dachte, ich kann Verschlüsse benutzen, aber anscheinend kann ich nicht. – lzap
Ich habe meine Frage bearbeiten. Vielen Dank. – lzap
Sieht aus wie ein Fehler in Vala: https://bugzilla.gnome.org/show_bug.cgi?id=672767 – lzap