Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > XCreateSimpleWindow. Положение окна не соответству


Автор: DTF 29.7.2010, 22:08
Здравствуйте.
Пытаюсь сделать простенькое Х-окно.
Использую функцию XCreateSimpleWindow.
Почему-то окно появляется не по тем координатам, которые я передал в функцию, а в центре экрана :(

Подскажите, пожалуйста, что я делаю не так.

Вот код:

Код

      #include <X11/Xlib.h>
      #include <stdio.h>
       
      int main()
      {
       
          Display* main_display;
       
          main_display = XOpenDisplay( NULL );
          if( !main_display )
          {
              printf( "Cannot open main display!\n" );
              return 1;
          }
       
          int display_num = XDefaultScreen( main_display );
          Window main_wnd =
              XCreateSimpleWindow( main_display, RootWindow( main_display, display_num ),
                                       0, 0, 100, 100, 1,
                                   BlackPixel(main_display, display_num),
                                   WhitePixel(main_display, display_num )
                                 );
       
          Atom wm_delete_window = XInternAtom( main_display, "WM_DELETE_WINDOW", False );
          Atom wm_protocols = XInternAtom( main_display, "WM_PROTOCOLS", False );
          XSetWMProtocols( main_display, main_wnd, &wm_delete_window, 1 );
       
          XMapWindow( main_display, main_wnd );
       
          XEvent e;
          bool done = false;
          while( !done )
          {
              XNextEvent( main_display, &e );
       
              switch( e.type )
              {
              case ClientMessage:
                    if( e.xclient.message_type == wm_protocols && e.xclient.data.l[0] == (long)wm_delete_window )
                    {
                        printf( "WM_DELETE_WINDOW\n" );
                        done = true;
                    }
       
                    break;
       
       
              default :
                  printf( "Unknown event #%d\n", e.type );
              }
          }
       
       
          XDestroyWindow( main_display, main_wnd );
       
          XCloseDisplay( main_display );
       
          printf( "done\n" );
       
          return 0;
      }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)