Browse Source

Fixed display hotplug events

The add event was accidentally removed in https://github.com/libsdl-org/SDL/commit/30e176d6ba5f89cd76a533aa4f1666b232c1132c
Sam Lantinga 9 months ago
parent
commit
6d64d821fb
1 changed files with 5 additions and 1 deletions
  1. 5 1
      src/video/SDL_video.c

+ 5 - 1
src/video/SDL_video.c

@@ -759,7 +759,7 @@ SDL_DisplayID SDL_AddVideoDisplay(const SDL_VideoDisplay *display, SDL_bool send
     _this->displays[_this->num_displays++] = new_display;
 
     id = SDL_GetNextObjectID();
-    SDL_memcpy(new_display, display, sizeof(*new_display));
+    SDL_copyp(new_display, display);
     new_display->id = id;
     new_display->device = _this;
     if (display->name) {
@@ -790,6 +790,10 @@ SDL_DisplayID SDL_AddVideoDisplay(const SDL_VideoDisplay *display, SDL_bool send
 
     SDL_UpdateDesktopBounds();
 
+    if (send_event) {
+        SDL_SendDisplayEvent(new_display, SDL_EVENT_DISPLAY_ADDED, 0);
+    }
+
     return id;
 }