src/video/SDL_video.c
changeset 3693 d3f330fc2009
parent 3692 ad85eb21a559
child 3694 b0a707f589a6
equal deleted inserted replaced
3692:ad85eb21a559 3693:d3f330fc2009
   901     window->w = w;
   901     window->w = w;
   902     window->h = h;
   902     window->h = h;
   903     window->flags = (flags & allowed_flags);
   903     window->flags = (flags & allowed_flags);
   904     window->display = display;
   904     window->display = display;
   905     window->next = display->windows;
   905     window->next = display->windows;
       
   906     if (display->windows) {
       
   907         display->windows->prev = window;
       
   908     }
   906     display->windows = window;
   909     display->windows = window;
   907 
   910 
   908     if (_this->CreateWindow && _this->CreateWindow(_this, window) < 0) {
   911     if (_this->CreateWindow && _this->CreateWindow(_this, window) < 0) {
   909         SDL_DestroyWindow(window);
   912         SDL_DestroyWindow(window);
   910         return NULL;
   913         return NULL;
   941     window = (SDL_Window *)SDL_calloc(1, sizeof(*window));
   944     window = (SDL_Window *)SDL_calloc(1, sizeof(*window));
   942     window->id = _this->next_object_id++;
   945     window->id = _this->next_object_id++;
   943     window->flags = SDL_WINDOW_FOREIGN;
   946     window->flags = SDL_WINDOW_FOREIGN;
   944     window->display = display;
   947     window->display = display;
   945     window->next = display->windows;
   948     window->next = display->windows;
       
   949     if (display->windows) {
       
   950         display->windows->prev = window;
       
   951     }
   946     display->windows = window;
   952     display->windows = window;
   947 
   953 
   948     if (!_this->CreateWindowFrom ||
   954     if (!_this->CreateWindowFrom ||
   949         _this->CreateWindowFrom(_this, window, data) < 0) {
   955         _this->CreateWindowFrom(_this, window, data) < 0) {
   950         SDL_DestroyWindow(window);
   956         SDL_DestroyWindow(window);
  1450         SDL_GL_UnloadLibrary();
  1456         SDL_GL_UnloadLibrary();
  1451     }
  1457     }
  1452 
  1458 
  1453     /* Unlink the window from the list */
  1459     /* Unlink the window from the list */
  1454     display = window->display;
  1460     display = window->display;
       
  1461     if (window->next) {
       
  1462         window->next->prev = window->prev;
       
  1463     }
  1455     if (window->prev) {
  1464     if (window->prev) {
  1456         window->prev->next = window->next;
  1465         window->prev->next = window->next;
  1457     } else {
  1466     } else {
  1458         display->windows = window->next;
  1467         display->windows = window->next;
  1459     }
  1468     }