0

我在 Linux Redhat 上获得了 2 个独立程序(A 和 B),由Motif工具包基于X window开发。这两个程序都有自己的人机界面。问题来了:在同一个桌面上显示这两个程序时,如何将一个程序的界面设置在顶层?目前的情况是当我在同一个桌面上运行它们时,我点击程序 A(全屏),程序 B(一个小窗口)将在程序 A 后面降低,除非使用 alt+Tab 切换,否则无法看到他们,这是不可接受的。

单击程序A时,我想始终在顶层显示程序B,它不会降低。或者我可以在插入程序A的一个窗口上设置程序B显示吗?如果可能的话,如何在 Motif X 窗口上实现它?在一个程序中使用motif x 窗口来显示另一个程序的界面。

期待您的建议,即使我知道仍然很少有人使用 Motif 作为工具包来构建界面。但是要重建整个程序,这是一个工业级产品,太难了。

4

1 回答 1

0

您可以通过调用以编程方式确保您的窗口位于顶部

XRaiseWindow(XtDisplay(toplevel), XtWindow(toplevel));

(假设顶层是您的顶层小部件)。

这是否永远保持在顶部很可能由窗口管理器控制。如果那恰好是 mwm,您可以尝试调用

XtVaSetValues(toplevel, XmNmwmInputMode, MWM_INPUT_SYSTEM_MODAL, NULL);
于 2020-02-20T07:51:08.907 回答