【发布时间】:2021-10-09 14:22:48
【问题描述】:
我有一个窗口管理器代码,它可以做窗口移动,窗口调整大小。但是当我尝试同时使用 XMoveResizeWindow 执行这两项操作时,它不起作用,并且也没有错误日志出现。
我的代码如下
void WindowMgrLib::MoveResizeWindow(Window window, int x, int y, int width, int height)
{
Display *display = XOpenDisplay(NULL);
XSetErrorHandler(catch_error);
XMoveResizeWindow(display, window, x, y, width, height);
printf("x = %d, y= %d, width = %d, height=%d\n", x, y, width, height);
XFlush(display);
XCloseDisplay(display);
}
void WindowMgrLib::MoveWindow(Window window, int x, int y)
{
Display *display = XOpenDisplay(NULL);
XSetErrorHandler(catch_error);
XMoveWindow(display, window, x, y);
XFlush(display);
XCloseDisplay(display);
}
void WindowMgrLib::ResizeWindow(Window window, int w, int h)
{
Display *display = XOpenDisplay(NULL);
XSetErrorHandler(catch_error);
XResizeWindow(display, window, w, h);
XFlush(display);
XCloseDisplay(display);
}
这里WindowMgrLib::MoveWindow 和WindowMgrLib::ResizeWindow 工作正常。
有人能告诉我WindowMgrLib::MoveResizeWindow 有什么问题吗?
【问题讨论】: