我有一个关于xcb窗口大小的问题,我使用xcb_create_window函数创建了一个窗口
xcb_create_window(mScreen->connection(),
XCB_COPY_FROM_PARENT,
mWindow,
mScreen->screen()->root,
x, // left corner of the window client area
y, // upper corner of the window client area
width, // width of the client area
height, // height of the client area
0,
XCB_WINDOW_CLASS_INPUT_OUTPUT,
mScreen->screen()->root_visual,
value_mask,
value_list);
auto reply = XCB_REPLY(xcb_intern_atom, mScreen->connection(), true, strlen("WM_PROTOCOLS"), "WM_PROTOCOLS");
auto atomDelete = XCB_REPLY(xcb_intern_atom, mScreen->connection(), false, strlen("WM_DELETE_WINDOW"), "WM_DELETE_WINDOW");
xcb_change_property(mScreen->connection(), XCB_PROP_MODE_REPLACE, mWindow, reply->atom, 4, 32, 1, &atomDelete->atom);
xcb_change_property(mScreen->connection(), XCB_PROP_MODE_REPLACE, mWindow, XCB_ATOM_WM_NAME, XCB_ATOM_STRING, 8, strlen(windowName), windowName);
xcb_flush(mScreen->connection());在Win32 API上,我可以使用AdjustWindowRect函数调整窗口rect,该函数基本上增加了边框和标题大小,以确保客户端窗口具有预期的大小。
我的问题是如何用xcb实现这一点?是否有任何方法来计算所需的附加大小,以确保客户端窗口数据具有预期大小?
发布于 2022-03-07 07:30:01
以下代码根据Erdal Küük的建议获取窗口的边距:
发布于 2022-02-03 17:50:49
https://stackoverflow.com/questions/70975375
复制相似问题