簡體   English   中英

如何將另一個應用程序置於Linux上的GTK敏銳窗口之前?

[英]How to bring another application in front of a GTK sharp window on Linux?

我有一個不是在全屏模式下用Linux的GTK#構建的應用程序。 相反,我將其設置為無邊界窗口,當啟動時,窗口會自動變為屏幕大小,如下所示:

_window.Decorated = false;
_window.SetSizeRequest (_window.Screen.Width, _window.Screen.Height);
_window.Move (0, 0);

現在,當程序啟動時,我還啟動了xvkbd(或任何鍵盤,實際上),因為它打算在某個時候成為觸摸屏應用程序,如下所示:

xvkbd -always-on-top

如果像這樣啟動xvkbd,盡管它不是全屏的,它仍然會以某種方式出現在我的應用程序后面。 當裝飾打開(因此有邊框等)時,它將正確顯示在它的前面,但這不是我想要從應用程序中得到的。

有誰知道一種使鍵盤出現在應用程序前面而不使其成為窗口應用程序的方法? 我嘗試使用wmctrl將應用程序移到最前面,但這在應用程序中也不起作用。

問完后相對較快地回答,但我已經解決了我的問題。

_window.Decorated = false;
_window.SetSizeRequest (_window.Screen.Width - 1, _window.Screen.Height - 1);
_window.Move (0, 0);
TerminalCommand ("pkill", "lxpanel");

這將關閉邊框,使窗口不全屏顯示,也不是無邊界全屏顯示(因為關閉了1個像素(不明顯))。 然后,我將窗口移到左上角,然后殺死任務欄。 這使我可以通過執行以下操作來調用鍵盤:

TerminalCommandNoWait("xvkbd", "-always-on-top");

(TerminalCommand只是封裝了在Linux終端中運行這些命令的進程)

由於窗口管理器無法將其識別為全屏應用程序,因此它將允許您使用鍵盤應用程序,直到再次單擊另一個應用程序(或可以在鍵盤應用程序上調用“始終位於頂部”)。

如果您希望在應用程序關閉時返回任務欄,請在終端中調用“ lxpanel”(作為退出應用程序的過程)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM