2012-07-19 62 views
1

如果我想要一個未修飾的窗口(例如,我可以自己繪製裝飾),是否有辦法告訴當前X11窗口管理器窗口區域應該可拖動並由窗口管理員管理?我對低級解決方案感興趣(Xlib,XCB或類似)。我也在尋找儘可能標準的解決方案。將X11窗口的部分標記爲可拖動的

另外,我可以將窗口的區域標記爲代表關閉按鈕嗎?

我在問這個問題,因爲如果我可以在窗口的裝飾上附加額外的內容,它會很棒。這受到了蘋果OS X的啓發,所有的裝飾品都是舊的NSView s,有些(關閉按鈕等)甚至可以通過文檔方式訪問。添加額外的內容也受到OS X的啓發,可以右鍵單擊與窗口關聯的文檔名稱(在標題欄上)並獲取文檔路徑。同時,即使應用程序沒有響應,窗口仍然可移動,因此可拖動區域必須以某種方式傳遞給窗口管理器(即,WindowServer,對不對?)。因此,如果有一個標準的方式(或廣泛的FreeDesktop.org擴展,或其他)在X11下做到這一點,我很想知道它。 :-)

+0

GUI框架通常通過創建子窗口來完成這種事情。任何給定的「小部件」通常是幾個窗口相互配合工作。另一種(更簡單的)方法是1)處理鼠標事件,但2)除非鼠標x/y在所需區域內,否則不要做任何事情。就像「Xlib」一樣:) :) – paulsm4 2012-07-19 18:30:29

+0

@ paulsm4如果託管GUI框架的應用程序凍結,窗口不會保持不可移動狀態嗎?這就是我問的原因。 – 2012-07-20 22:19:10

回答

1

沒辦法。

X11甚至不知道窗口管理器是什麼。 ICCCM和Freedesktop標準沒有太大的區別。他們知道窗口管理者,但沒有強制關閉和拖動窗口的任何特定方式,或者確實有能力做這種事情。所以沒有關閉按鈕或拖動角或標題欄的官方概念,也沒有用於定製這些事情的API。

+0

我很害怕這個。太糟糕了。 – 2012-07-20 22:20:14