xcb 初始窗口位置
我有一个关于 xcb windows 的问题。我正在使用位置和大小创建一个 xcb 窗口。根据我的实现,我收到以下日志消息:
create: x:560 y:300 width:800 height:600
map window:
XCB_CONFIGURE_NOTIFY: x:560 y:300 width:800 height:600
XCB_CONFIGURE_NOTIFY: x:90 y:77 width:800 height:600
XCB_CONFIGURE_NOTIFY: x:90 y:77 width:800 height:600
我
- 在特定位置创建窗口的
- 操作映射窗口
- 事件循环
有三个配置通知事件。 x/y 位置相对于父窗口(父窗口设置为屏幕根目录,并且没有重新父窗口消息,因为它是无边框窗口)。我使用窗口和根作为父级执行 xcb_translate_coordinates 。 为什么窗口被移动到不同的位置?
I have a question regarding xcb windows. I am creating a xcb window using position and size. I get the following log messages, based on my implementation:
create: x:560 y:300 width:800 height:600
map window:
XCB_CONFIGURE_NOTIFY: x:560 y:300 width:800 height:600
XCB_CONFIGURE_NOTIFY: x:90 y:77 width:800 height:600
XCB_CONFIGURE_NOTIFY: x:90 y:77 width:800 height:600
What I did
- create window at specific position
- map window
- event loop
there are three configure notify events. the x/y position is relative to the parent window (parent is set to screen root and there is no reparent message because its a borderless window). I do a xcb_translate_coordinates using window and root as parent.
Why is the window moved to a different location?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为这是因为您使用的窗口管理器在关闭窗口之前存储了窗口的最后位置,并在应用程序重新启动并映射到屏幕上时重新建立它。
I think it's because the window manager you're using stores the last position of the window before closing it and reestablish it when the application is re-launched and mapped onto the screen.