目前使用swt,我有时希望程序可以任意将窗口提到前台(就像闹钟那样)。
通常以下方法是有效的(jruby):
@shell.setMinimized(false)
@shell.forceActive
如果窗口是被最小化的,这段代码会将其恢复到前台。
在任何时候创建新的窗口也会将其(新窗口)调至前台。
到目前为止一切都好,然而,如果窗口没有被最小化,上述代码只会在任务栏中闪烁应用程序的图标。实际上,第一次运行它会将其带到前台。之后,它只会在任务栏中闪烁。这是Windows系统。在Linux系统上,它似乎只会在任务栏中闪烁(Ubuntu默认)。
有人知道在Swt中有跨平台的方法可以让应用程序到前台吗?
看起来没有任何明确的方法可以通过使用forceActive、setActive、setMinimized(false)、setFocus、forceFocus和setVisible来完成这项工作。
我非常确定这是可能的(至少在Windows中),因为E Text Editor可以做到这一点。好吧,那不是Swt,但至少已知有其他一些应用程序可以做到。
我在想,也许这就是Swt bug 192036?
非常感谢。
相关:
- 如何将窗口置于前台?
- 打开Shell
- 保持窗口在前景(即使失去焦点)
- Bug 244597 - 无法在gtk上编程激活shell
- 需要将应用程序带到前台(Windows)
- 如何将窗口置于前台?这个Swing示例也许是一些线索...