我有兩個頂級窗口,win1和win2。X11:如何讓窗戶依次移動?
當win1移動時,我想讓win2跟隨win1,這樣win2相對於win1的位置(我將稱之爲relpos
)保持不變。 IOW,粘窗戶!
我的想法是在Win1的ConfigureNotify中移動win2。要做到這一點,我需要知道relpos
。
時WIN2移動,我可以得到(和存儲)RELPOS在WIN2的ConfigureNotify。
的問題是,WIN2得到ConfigureNotify既當用戶移動和編程時移動。有沒有辦法區分這兩種情況?
如果沒有,整個方法是失敗的,所以接下來的問題是:是否有另一種方式?
謝謝。
注意:我不能只設置一個「move_programmatically」標誌,移動窗口,然後檢查ConfigureNotify上的標誌,因爲X是異步的(它最大的一個瑕疵 - 許多人認爲這是一個功能),並且不能保證何時以及我得到多少個ConfigureNotify事件。嘗試這樣做,並快速移動win1,看看win2如何落後。
您正在以編程方式移動它,以便您知道何時發生這種情況... –
@ n.m。是的,我可以做到這一點,如果X將像任何理智的API(WINAPI /可可)同步。我添加了一個澄清說明。 – cap
如果你想知道爲什麼在移動子窗口(例如彈性佈局)時不會出現這個問題,這是因爲在那裏移動窗口的人之間沒有任何歧義,因爲子窗口不能被WM移動/調整大小,只能通過應用程序。 – cap