我注意到如果我取消映射窗口,当我将其映射回来时,它会被最大化 状态以及恢复大小和位置都丢失了(Ubuntu 10)。有没有办法获得正常尺寸/ pos所以我可以把它放回去 在映射之前?或者我必须通过调整大小事件来自己跟踪它 (如果可能的话)?
感谢。
答案 0 :(得分:1)
当我注意到同样的事情时,这就出现在搜索中...所以我不确定我的答案是最好的,但在查看我的窗口管理器的源代码和尽可能多的文档之后(Xlib手册页) ,ICCCM,EWMH规范),我找不到任何自动完成的事情。在我的实验和窗口管理器的源代码中,XWithdrawWindow与XUnmapWindow基本相同,这是我最好的选择。
查看Qt的源代码,调用show()方法时调用大小也有调用。因此,至少在某些情况下,如果不是全部的话,它必须是必要的。
Sooo我认为答案是你需要自己跟踪它。 ConfigureNotify
事件将在您调整大小时告诉您,我相信感动了。您也可以观看其他属性,例如最大化的活动。如果你跟踪这些,你可以移回你的窗口。
或者你可以在取消映射之前使用XGetGeometry(以及其他原子状态)来询问大小。