diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-02-02 12:21:57 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-02-12 08:13:00 +0000 |
commit | 606d85f2a5386472314d39923da28c70c60dc8e7 (patch) | |
tree | a8f4d7bf997f349f45605e6058259fba0630e4d7 /chromium/components/constrained_window | |
parent | 5786336dda477d04fb98483dca1a5426eebde2d7 (diff) | |
download | qtwebengine-chromium-606d85f2a5386472314d39923da28c70c60dc8e7.tar.gz |
BASELINE: Update Chromium to 96.0.4664.181
Change-Id: I762cd1da89d73aa6313b4a753fe126c34833f046
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/components/constrained_window')
5 files changed, 48 insertions, 17 deletions
diff --git a/chromium/components/constrained_window/BUILD.gn b/chromium/components/constrained_window/BUILD.gn index d8b713ca492..bca689e3981 100644 --- a/chromium/components/constrained_window/BUILD.gn +++ b/chromium/components/constrained_window/BUILD.gn @@ -2,6 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import("//build/config/ozone.gni") import("//build/config/ui.gni") import("//ui/base/ui_features.gni") @@ -33,6 +34,10 @@ static_library("constrained_window") { "//ui/wm", ] } + + if (use_ozone) { + deps += [ "//ui/ozone" ] + } } source_set("unit_tests") { diff --git a/chromium/components/constrained_window/DEPS b/chromium/components/constrained_window/DEPS index 74864f33fdf..8a179bd47d9 100644 --- a/chromium/components/constrained_window/DEPS +++ b/chromium/components/constrained_window/DEPS @@ -6,6 +6,7 @@ include_rules = [ "+ui/compositor", "+ui/display", "+ui/gfx", + "+ui/ozone/public", "+ui/views", "+ui/wm", ] diff --git a/chromium/components/constrained_window/constrained_window_views.cc b/chromium/components/constrained_window/constrained_window_views.cc index 0e01d5b8b49..480286e38b0 100644 --- a/chromium/components/constrained_window/constrained_window_views.cc +++ b/chromium/components/constrained_window/constrained_window_views.cc @@ -21,6 +21,10 @@ #include "ui/views/widget/widget_observer.h" #include "ui/views/window/dialog_delegate.h" +#if defined(USE_OZONE) +#include "ui/ozone/public/ozone_platform.h" +#endif + using web_modal::ModalDialogHost; using web_modal::ModalDialogHostObserver; @@ -40,13 +44,12 @@ const char* const kWidgetModalDialogHostObserverViewsKey = "__WIDGET_MODAL_DIALOG_HOST_OBSERVER_VIEWS__"; // Applies positioning changes from the ModalDialogHost to the Widget. -class WidgetModalDialogHostObserverViews - : public views::WidgetObserver, - public ModalDialogHostObserver { +class WidgetModalDialogHostObserverViews : public views::WidgetObserver, + public ModalDialogHostObserver { public: WidgetModalDialogHostObserverViews(ModalDialogHost* host, views::Widget* target_widget, - const char *const native_window_property) + const char* const native_window_property) : host_(host), target_widget_(target_widget), native_window_property_(native_window_property) { @@ -56,6 +59,11 @@ class WidgetModalDialogHostObserverViews target_widget_->AddObserver(this); } + WidgetModalDialogHostObserverViews( + const WidgetModalDialogHostObserverViews&) = delete; + WidgetModalDialogHostObserverViews& operator=( + const WidgetModalDialogHostObserverViews&) = delete; + ~WidgetModalDialogHostObserverViews() override { if (host_) host_->RemoveObserver(this); @@ -81,8 +89,6 @@ class WidgetModalDialogHostObserverViews ModalDialogHost* host_; views::Widget* target_widget_; const char* const native_window_property_; - - DISALLOW_COPY_AND_ASSIGN(WidgetModalDialogHostObserverViews); }; void UpdateModalDialogPosition(views::Widget* widget, @@ -110,7 +116,16 @@ void UpdateModalDialogPosition(views::Widget* widget, position.set_y(position.y() - widget->non_client_view()->frame_view()->GetInsets().top()); - if (widget->is_top_level()) { + const bool supports_global_screen_coordinates = +#if !defined(USE_OZONE) + true; +#else + ui::OzonePlatform::GetInstance() + ->GetPlatformProperties() + .supports_global_screen_coordinates; +#endif + + if (widget->is_top_level() && supports_global_screen_coordinates) { position += host_widget->GetClientAreaBoundsInScreen().OffsetFromOrigin(); // If the dialog extends partially off any display, clamp its position to // be fully visible within that display. If the dialog doesn't intersect @@ -218,4 +233,4 @@ views::Widget* CreateBrowserModalDialogViews(views::DialogDelegate* dialog, return widget; } -} // namespace constrained window +} // namespace constrained_window diff --git a/chromium/components/constrained_window/constrained_window_views_unittest.cc b/chromium/components/constrained_window/constrained_window_views_unittest.cc index 63c10ae34fd..daf753c4a57 100644 --- a/chromium/components/constrained_window/constrained_window_views_unittest.cc +++ b/chromium/components/constrained_window/constrained_window_views_unittest.cc @@ -32,6 +32,11 @@ class TestConstrainedWindowViewsClient public: TestConstrainedWindowViewsClient() = default; + TestConstrainedWindowViewsClient(const TestConstrainedWindowViewsClient&) = + delete; + TestConstrainedWindowViewsClient& operator=( + const TestConstrainedWindowViewsClient&) = delete; + // ConstrainedWindowViewsClient: web_modal::ModalDialogHost* GetModalDialogHost( gfx::NativeWindow parent) override { @@ -40,9 +45,6 @@ class TestConstrainedWindowViewsClient gfx::NativeView GetDialogHostView(gfx::NativeWindow parent) override { return nullptr; } - - private: - DISALLOW_COPY_AND_ASSIGN(TestConstrainedWindowViewsClient); }; // ViewsDelegate to provide context to dialog creation functions such as @@ -52,6 +54,10 @@ class TestViewsDelegateWithContext : public views::TestViewsDelegate { public: TestViewsDelegateWithContext() = default; + TestViewsDelegateWithContext(const TestViewsDelegateWithContext&) = delete; + TestViewsDelegateWithContext& operator=(const TestViewsDelegateWithContext&) = + delete; + void set_context(gfx::NativeWindow context) { context_ = context; } // ViewsDelegate: @@ -65,13 +71,16 @@ class TestViewsDelegateWithContext : public views::TestViewsDelegate { private: gfx::NativeWindow context_ = nullptr; - - DISALLOW_COPY_AND_ASSIGN(TestViewsDelegateWithContext); }; class ConstrainedWindowViewsTest : public views::ViewsTestBase { public: ConstrainedWindowViewsTest() = default; + + ConstrainedWindowViewsTest(const ConstrainedWindowViewsTest&) = delete; + ConstrainedWindowViewsTest& operator=(const ConstrainedWindowViewsTest&) = + delete; + ~ConstrainedWindowViewsTest() override = default; void SetUp() override { @@ -124,8 +133,6 @@ class ConstrainedWindowViewsTest : public views::ViewsTestBase { views::View* contents_ = nullptr; std::unique_ptr<web_modal::TestWebContentsModalDialogHost> dialog_host_; Widget* dialog_ = nullptr; - - DISALLOW_COPY_AND_ASSIGN(ConstrainedWindowViewsTest); }; } // namespace diff --git a/chromium/components/constrained_window/native_web_contents_modal_dialog_manager_views.h b/chromium/components/constrained_window/native_web_contents_modal_dialog_manager_views.h index 03eaacdcf29..801fc0b6b79 100644 --- a/chromium/components/constrained_window/native_web_contents_modal_dialog_manager_views.h +++ b/chromium/components/constrained_window/native_web_contents_modal_dialog_manager_views.h @@ -29,6 +29,11 @@ class NativeWebContentsModalDialogManagerViews gfx::NativeWindow dialog, web_modal::SingleWebContentsDialogManagerDelegate* native_delegate); + NativeWebContentsModalDialogManagerViews( + const NativeWebContentsModalDialogManagerViews&) = delete; + NativeWebContentsModalDialogManagerViews& operator=( + const NativeWebContentsModalDialogManagerViews&) = delete; + ~NativeWebContentsModalDialogManagerViews() override; // Sets up this object to manage the |dialog_|. Registers for closing events @@ -78,8 +83,6 @@ class NativeWebContentsModalDialogManagerViews bool host_destroying_ = false; std::set<views::Widget*> observed_widgets_; std::set<views::Widget*> shown_widgets_; - - DISALLOW_COPY_AND_ASSIGN(NativeWebContentsModalDialogManagerViews); }; } // namespace constrained_window |