Xlib:窗口创建的位置错误

我有简单的xlib程序,它创建窗口。 我认为它必须在屏幕的左上角显示窗口,因为我将0,0传递给XCreateSimpleWindow函数,但它位于中上方。 为什么?

#include  #include  #include  int main(int argc, char* argv[]) { Display* display; int screen_num; Window win; unsigned int display_width,display_height; unsigned int width, height; char *display_name = getenv("DISPLAY"); display = XOpenDisplay(display_name); screen_num = DefaultScreen(display); display_width = DisplayWidth(display, screen_num); display_height = DisplayHeight(display, screen_num); width = (display_width / 3); height = (display_height / 3); win = XCreateSimpleWindow(display, RootWindow(display, screen_num), 0, 0, width, height, 1, BlackPixel(display, screen_num), WhitePixel(display, screen_num)); XMapWindow(display, win); XSync(display, False); while(1) { } } 

顶层窗口由窗口管理器放置(并确定尺寸),窗口管理器执行适合它的任何操作。 通常尺寸是受到尊重但是位置不是(为了留下装饰的地方,为了尊重放置工具栏的放置政策,……)

如果您希望您的请求得到尊重,请尝试使用没有窗口管理器的显示器(使用VNC或类似设备来获取此类显示器,不要尝试像这样使用您的桌面)