Actualmente, con swt, a veces quiero que un programa aparezca arbitrariamente (como podría ser un despertador).¿Cómo fuerza un programa swt de Java a "moverse al primer plano"?
típicamente los siguientes trabajos (JRuby):
@shell.setMinimized(false)
@shell.forceActive
Esto trae la cáscara para la parte delantera si se reduce al mínimo.
La creación de un nuevo caparazón en cualquier momento también trae el (nuevo caparazón) al frente.
Hasta ahora todo bien, sin embargo, si el shell es no minimizado, el código anterior simplemente muestra (parpadea) el icono de la aplicación en la barra de tareas. Bueno, en realidad la primera vez que lo ejecutas, lo lleva al frente. Después de eso, solo parpadea en la barra de tareas. Eso es Windows. En Linux, parece que solo parpadea en la barra de tareas (predeterminado de ubuntu).
¿Alguien sabe de una forma de plataforma cruzada para hacer que la aplicación salga al frente, en swt?
Parece que ningún encantamiento de fuerzaActive setActive setMinimized (false) setFocus forceFocus y setVisible pueden lograr esto.
Estoy bastante seguro de que es posible (al menos en Windows), como lo hace el Editor de texto E. Bueno, eso no es swt, pero al menos algunas otras aplicaciones have been known to do it.
Estoy pensando que tal vez es swt bug 192036?
Muchas gracias.
relacionadas:
- 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? este ejemplo oscilación podría ser algún tipo de pista, también ...
Parece que el error de SWT con el que se vincula ** exactamente ** describe su problema, y parece que no van a poder arreglarlo. –
Creo que ese es realmente el problema para Windows: buena captura. El trabajo por ahora es primero minimizar un shell y luego minimizarlo (o usar algún código nativo [a través de ffi o jni] para forzarlo hacia delante). Sin embargo, en Linux no estoy seguro de cuál es el problema (solo parpadea en la bandeja de tareas). * Se puede * arreglar * en las versiones más recientes de swt.jar> = 3.5 https://bugs.eclipse.org/bugs/show_bug.cgi?id = 244597 – rogerdpack