1

私はウィンドウを作成する単純なxlibプログラムを持っています。XCreateSimpleWindow関数に0、0を渡すので、画面の左上隅にウィンドウを表示する必要があると思いますが、上部中央にあります。なんで ?

#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 に答える