2010-10-28 126 views
1

我想要一個窗口來覆蓋整個屏幕。它的定位和尺寸很好,但它被Gnome面板覆蓋。使事情複雜化我有兩臺顯示器,這個應用程序需要支持多屏幕的人。GTK窗口提示

WINDOW_TYPE_HINT_SPLASHSCREEN是一個好的開始。它涵蓋了兩個屏幕,但不包括面板。它仍然存在,就在面板後面。

WINDOW_TYPE_HINT_DOCK看起來很理想,但我需要這個窗口來關注鍵盤事件。 _DOCK似乎是故意忽略鍵盤事件(哪種類型是有道理的)。我能強制它採取鍵盤焦點嗎?

有什麼方法可以強制暗示窗口覆蓋面板?

+0

如果窗口不是圖標或啓動畫面的底座,那麼爲什麼提示它呢? * fulscreen()*函數在未顯示的窗口上正常工作。窗戶需要暗示有什麼特別的原因嗎?我有一個應用程序,當'f'被按下時全屏顯示。它是fullscreen()使用的主窗口,它沒有特殊的提示。大小和位置由window_move,set_size_request()給出。 – frayser 2010-12-15 19:14:46

回答

0

window.fullscreen()你可以調用一個正常的「un-hinted」窗口。我認爲這可以讓窗口管理員決定窗口是否應該覆蓋面板。

+1

這在一個單一的屏幕設置,但在twinview/xinerama(我的目標問題)不可靠 – Oli 2010-10-28 16:42:35

+0

@Oli你是對的,它只適用於單一屏幕,我已經設置我的窗口的寬度和高度的所有顯示器,但作爲當我全屏時,它會覆蓋單個顯示器。我的問題是,我的窗口甚至沒有0,0它沒有被覆蓋,我在這裏與Noi一起工作http://stackoverflow.com/questions/31366706/gtk-window-cover-entire-screen你有沒有找到解決方案? – yatg 2015-07-13 17:31:31

0

如果使用WINDOW_TYPE_HINT_MENU,則可以通過調用gtk_window_present()函數將焦點放到窗口上。 但是,我不知道你是否能夠覆蓋面板。

另一個提示:面板可能會更改其_NET_WM_STRUT屬性,以便其他窗口無法覆蓋它。也許你必須在你的窗口中使用這個屬性(或另一個)。

+0

嗨antoyo我正在與諾伊在這裏將這個解決方案幫助我們在這裏:http://stackoverflow.com/questions/31366706/gtk-window-cover-entire-screen – yatg 2015-07-13 17:32:01