1

我有创建窗口的简单 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) { }    
}
4

1 回答 1

3

顶层窗口由窗口管理器放置(和尺寸),它可以做任何适合它的事情。通常尊重大小但不尊重位置(为了留下装饰的地方,为了尊重让工具栏清晰的放置策略,......)

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

于 2012-10-10T13:24:01.923 回答