API zu Windowmanager ?

Von: , Frage gestellt am Di, 1. Jun 2004

Hallo zusammen,

ich stehe momentan vor folgendem Problem:
Ich habe eine Java-Applikation (J) für SuSe-Linux geschrieben, die ein Fenster (GUI) öffnet. Nach dem Öffnen dieses Fensters soll aber eine bestimmte andere Linux-Anwendung (A) (kein Java), die eindeutig über die Caption des Fensters identifizierbar ist, den Focus erhalten.
Der Ablauf soll folgender sein:

A hat Focus,
J wird über TCP/IP aktiviert und erzeugt ein GUI, das nun den Focus hat,
A soll automatisch wieder den Focus bekommen, gesteuert durch J.

Verwendet wird KDE 3, Suse Linux Desktop, Java 2.

Ich habe nun schon überall gesucht, ob ich eine entsprechende API des Windowmanagers finde (ähnlich MS Windows), aber leider bisher ohne Erfolg.
Es muss doch sowas geben wie:

frameArray = XDesktop.getFrames()
foreach frame in frameArray do
{
if (frame.getCaption() == "ich bins")
{
frame.setFocus()
}
}


Vielen Dank schon mal für die Mühe !
Viele Grüße
Ralf

1 Antworten zu dieser Frage

  1. Antwort von nach 4 Tagen 0 hilfreich
    Re: API zu Windowmanager ?

    Hallo Ralf,
    ich glaub das kannst du über das X11-API erreichen. Und die Doku
    dazu findest du in den manpages. Du kannst z.B. "man -k focus" mal
    eingeben und dann nach einem Eintrag, der mit einem großen X anfängt
    suchen. Könnte vielleicht "XSetWindowFocus" oder so ähnlich heißen.
    Und dann findest du mit "man XSetWindowFocus" die Infos dazu.
    Es gibt glaub auch eine Prozedur zum Auflisten aller offenen Fenster.
    Aber es könnte ein Rechte-Problem auftreten, d.h. es könnte sein,
    daß dein Programm kein Recht hat, den Focus ein anderen Fensters zu
    bestimmen. Probier's mal aus.

    Gruß
    Thorsten

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!