Attualmente con swt, a volte voglio che un programma arrivi in modo arbitrario in primo piano (come potrebbe fare una sveglia).Come si forza un programma java swt a "spostarsi in primo piano"?
Tipicamente i seguenti lavori (JRuby):
@shell.setMinimized(false)
@shell.forceActive
Questo porta il guscio al fronte se è stato minimizzato.
Creare un nuovo guscio in qualsiasi momento porta anche il (nuovo guscio) in primo piano.
Fin qui tutto bene, tuttavia, se il guscio è non ridotti al minimo, il codice precedente appena lampeggia (lampeggiante) l'icona dell'applicazione nella barra delle applicazioni. Beh, in realtà la prima volta che lo esegui, lo porta in primo piano. Dopodiché, lampeggia semplicemente nella barra delle applicazioni. Quello è Windows. Su Linux sembra solo lampeggiare nella barra delle applicazioni (predefinito di ubuntu).
Qualcuno sa di un modo multipiattaforma di far arrivare l'app in primo piano, in swt?
Sembra che nessun incantesimo di forzaAttivo setAttivo setMinimized (false) setFocus forceFocus e setVisible può realizzare questa cosa.
Sono abbastanza sicuro che sia possibile (almeno in Windows), come l'E Text Editor lo fa. Beh, questo non è swt, ma almeno alcune altre app have been known to do it.
Sto pensando che questo sia swt bug 192036?
Molte grazie.
correlati:
- How to bring a window to the front?
- Opening a Shell
- Keep window in foreground (even if it loses focus)
- Bug 244597 - Cannot activate shell programatically on gtk
- Need to bring application to foreground on Windows
- How to bring a window to the front? questo esempio oscillazione potrebbe essere un certo tipo di indizio, anche ...
Sembra che il bug SWT che hai collegato a ** esattamente ** descrive il tuo problema, e sembra che non saranno in grado di risolverlo. –
Penso che sia davvero il problema per Windows - buona cattura. Per ovviare a questo problema, è necessario innanzitutto ridurre a icona una shell e quindi sbloccarla (oppure utilizzare un codice nativo [tramite ffi o jni] per forzare la memoria su di essa). In Linux non sono abbastanza sicuro di quale sia il problema (solo lampeggia nella barra delle applicazioni). Potrebbe * essere * corretto nelle versioni più recenti di swt.jar> = 3.5 https://bugs.eclipse.org/bugs/show_bug.cgi?id = 244597 – rogerdpack