In uno script sto cercando di trovare la finestra Terminal.app contenente un dispositivo tty specifico e sollevare quella finestra in alto. Ecco cosa ho finora in Applescript:
tell application "System Events"
set foundWin to false
if (name of processes) contains "Terminal" then
tell application "Terminal"
set theTabs to first tab of every window where tty is "$(tty)"
repeat with theTab in theTabs
if class of theTab is tab then
set theWin to (first window whose tabs contains theTab)
set selected tab of theWin to theTab
set foundWin to true
end if
end repeat
end tell
end if
if foundWin then
--RAISE THE WINDOW?!
end if
end tell
Dove mi sto bloccando è la parte "alzare la finestra".
Ecco alcune cose che non sono proprio quello che voglio:
set frontmost of theWin to true
- questo porta la finestra in primo piano nel gruppo di finestre Terminal.app ma non la solleva sopra qualsiasi altra finestra.
tell application "Terminal" to activate
- questo porta ogni finestra del Terminale in primo piano in un grande stack. Voglio solo una finestra.
tell application "System Events"
set theSysWin to first window of process "Terminal" whose name is (name of theWin)
perform action "AXRaise" of theSysWin
end tell
Questo quasi lo fa, ma ciò che fa è alzare la finestra del terminale in posizione # 2, sempre sotto la finestra attiva (se l'app attiva è qualcosa di diverso da Terminal.app.)
click theSysWin at {10,50}
- sembra non fare nulla.
click first static text of theSysWin
- sembra non fare nulla.
C'è un modo per fare questo? Non deve essere in Applescript.
EDIT Ho trovato questa pagina web ( http://blog.coriolis.ch/2008/03/04/bring-any-window-to-the-front/ ) citando una chiamata Obj-C / Cocoa:
SetFrontProcessWithOptions(&psn, kSetFrontProcessFrontWindowOnly);
Non ho familiarità con ObjC o Cocoa, e questo viene (alla fine) invocato da uno script di shell, quindi non sono sicuro di dove andare da lì.
SetFrontProcessWithOptions(&psn, kSetFrontProcessFrontWindowOnly);
ho abbastanza familiarità con objc o cacao per sapere dove andare da lì però.