X11 не откроет окно

#c #x11

#c #x11

Вопрос:

Я пытаюсь открыть окно X11, распечатать один пиксель, а затем добавить код, чтобы функция Terminate() возвращала значение true. Но это не сделает окно. Вот мой код:

 #include lt;X11/Xlib.hgt; #include lt;X11/Xutil.hgt; #include lt;X11/Xos.hgt; #include lt;iostreamgt;  int x = 0; int y = 0;  bool Termination() {  return true; }  int main() {  Display *dspl = XOpenDisplay(NULL);  if (!dspl) return 1;   int screenNumber = DefaultScreen(dspl);  unsigned long white = WhitePixel(dspl, screenNumber);  unsigned long black = BlackPixel(dspl, screenNumber);   Window win = XCreateSimpleWindow(dspl, DefaultRootWindow(dspl), 50, 50, 1280, 720, 0, black, white);  XSetStandardProperties(dspl, win, "Lel", "Gaem", None, NULL, 0, NULL);   GC gc = XCreateGC(dspl, win, 0,0);  XSetBackground(dspl, gc, black);  XSetForeground(dspl, gc, white);  XClearWindow(dspl, win);  XMapRaised(dspl, win);   XDrawPoint(dspl, win, gc, x, y);   while (Termination())  {  }   XFreeGC(dspl, gc);  XDestroyWindow(dspl, win);  XCloseDisplay(dspl);  printf("Job's done!n");  return 0; }  

Что мешает X11 отобразить мое окно?

Комментарии:

1. X11 давно я не делал ничего подобного. 🙂

2. Вы забыли очистить вывод? XFlush? И почему вы используете xlib, а не xcb?

Ответ №1:

добавьте это до того, как

 XMapWindow(dspl, win);  XInternAtom(dspl, "WM_DELETE_WINDOW", False);