Explorar o código

Ladybird/Qt: Wire up screen added and removed events

Shannon Booth hai 1 ano
pai
achega
cb9e0c4e64
Modificáronse 1 ficheiros con 8 adicións e 2 borrados
  1. 8 2
      Ladybird/Qt/WebContentView.cpp

+ 8 - 2
Ladybird/Qt/WebContentView.cpp

@@ -74,6 +74,14 @@ WebContentView::WebContentView(QWidget* window, WebContentOptions const& web_con
         update_viewport_rect();
     });
 
+    QObject::connect(qGuiApp, &QGuiApplication::screenRemoved, [this](QScreen*) {
+        update_screen_rects();
+    });
+
+    QObject::connect(qGuiApp, &QGuiApplication::screenAdded, [this](QScreen*) {
+        update_screen_rects();
+    });
+
     initialize_client((parent_client == nullptr) ? CreateNewClient::Yes : CreateNewClient::No);
 
     on_did_layout = [this](auto content_size) {
@@ -539,8 +547,6 @@ void WebContentView::update_screen_rects()
             screen_rects.append(Web::DevicePixelRect(geometry.x(), geometry.y(), geometry.width(), geometry.height()));
         }
 
-        // FIXME: Update the screens again when QGuiApplication::screenAdded/Removed signals are emitted
-
         // NOTE: The first item in QGuiApplication::screens is always the primary screen.
         //       This is not specified in the documentation but QGuiApplication::primaryScreen
         //       always returns the first item in the list if it isn't empty.