我有简单的xlib程序,可以创建窗口。我认为它必须在屏幕的左上角显示窗口,因为我将0,0传递给XCreateSimpleWindow函数,但它位于中上方。为什么?
#include <X11/Xlib.h>
#include <stdio.h>
#include <stdlib.h>
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) { }
}
答案 0 :(得分:3)
顶层窗口由窗口管理器放置(并确定尺寸),窗口管理器可以执行任何适合它的操作。通常尺寸是受到尊重但是位置不是(为了留下装饰的地方,为了尊重放置工具栏的放置政策,......)
如果您希望尊重您的请求,请尝试没有窗口管理器的显示器(使用VNC或类似设备来获取此类显示器,不要尝试像这样使用您的桌面)