簡體   English   中英

當該窗口已經具有焦點時,如何使該窗口移動到 Gnome 中其他窗口的頂部?

[英]How do I make a window move to the top of other windows in Gnome when that window already has the focus?

我有一個應用程序將焦點發送到其他窗口,但這些窗口不會自動顯示在前台,即在所有其他窗口的頂部。 我在哪里可以配置我的窗口管理器的首選項,以便這是默認行為?

特別是我在 MATLAB IDE 中使用 Ctrl-0 和 Ctrl-Shft-0 快捷方式在命令窗口和編輯器窗口之間移動,盡管焦點似乎已轉移,但新窗口不會自動在前景。

不確定是否有一個鍵綁定可以做到這一點,但是如果您按住 alt 鍵單擊一個窗口(允許您拖動窗口),它應該會出現在前面。

正如 codeDr 所暗示的那樣,MATLAB 在重新繪制其窗口方面也有點糟糕。 如果您在代碼執行時繪制圖形,則圖形不會更新,除非您執行drawnow或在執行drawnow有一些類似的暫停以允許 GUI 重新繪制。 既然我們說的是MATLAB,那么figure命令也會使指示的圖形出現在前面(實際上,讓它不出現在前面更難)。 所以你可以做figure(gcf)將當前數字帶到前面,或者用h = figure;保存數字編號h = figure; 然后再做figure(h) 順便說一下,如果您想在不切換焦點的情況下切換當前圖形,則set(0, 'CurrentFigure', h)應將h設置為當前圖形。

您的窗口管理器(可能是 Metacity?)實施了焦點竊取預防,以便惡意應用程序不會彈出會干擾您打字的窗口。 Matlab 需要提高它的窗口,並用正確的時間戳給它輸入焦點。 如果這是從 KeyPress 事件處理程序完成的,則用於設置輸入焦點的時間戳將是來自 KeyPress 事件的時間戳(即導致窗口升高/聚焦的用戶生成事件的時間戳)。

為了禮貌地將輸入焦點放在一個窗口上,谷歌搜索 _NET_ACTIVE_WINDOW。

通常當窗口沒有重新繪制時,這意味着應用程序的主應用程序循環沒有運行來刷新窗口。 當您在窗口之間切換時,Matlab 是否正在執行一些計算或磁盤活動?

暫無
暫無

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

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