我有一个窗口管理器代码,它可以做窗口移动,窗口调整大小。但是,当我尝试使用 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吗?