我在Linux Redhat上得到了2个独立的程序(A&B(,由基于X window的Motif工具包开发。 这两个程序都有自己的人机界面。 问题来了: 在同一桌面上显示这两个程序时,如何将一个程序的界面始终设置在顶层?目前的情况是,当我在同一桌面上运行它们,然后单击程序A(全屏(,程序B(一个小窗口(将降低到程序A后面,除非使用alt + Tab在它们之间切换,否则看不到,这是不可接受的。
我想在单击程序A时始终在顶层显示程序B,它不会降低。 或者我可以将程序 B 显示在一个窗口插入程序 A 中吗?如果可能,如何在 Motif X 窗口上实现它?在一个程序中使用 Motif X 窗口来显示另一个程序的界面。
期待您的建议,即使我知道很少有人仍然使用 Motif 作为构建界面的工具包。 但是重建整个程序太难了,这是一个工业级产品。
可以通过调用以编程方式确保窗口位于顶部
XRaiseWindow(XtDisplay(toplevel), XtWindow(toplevel));
(假设顶级是您的顶级小部件(。
这是否永远保持在顶部很可能由窗口管理器控制。 如果这恰好是mwm,您可以尝试调用
XtVaSetValues(toplevel, XmNmwmInputMode, MWM_INPUT_SYSTEM_MODAL, NULL);