Browse Source

Ladybird/Qt: Wire up screen added and removed events

Shannon Booth 1 year ago
parent
commit
cb9e0c4e64
1 changed files with 8 additions and 2 deletions
  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();
         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);
     initialize_client((parent_client == nullptr) ? CreateNewClient::Yes : CreateNewClient::No);
 
 
     on_did_layout = [this](auto content_size) {
     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()));
             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.
         // NOTE: The first item in QGuiApplication::screens is always the primary screen.
         //       This is not specified in the documentation but QGuiApplication::primaryScreen
         //       This is not specified in the documentation but QGuiApplication::primaryScreen
         //       always returns the first item in the list if it isn't empty.
         //       always returns the first item in the list if it isn't empty.