diff options
Diffstat (limited to 'meta-agl-html5-demo/recipes-wam/cef/files/cef/0008-Allow-passing-the-app_id-on-widget-creation.patch')
-rw-r--r-- | meta-agl-html5-demo/recipes-wam/cef/files/cef/0008-Allow-passing-the-app_id-on-widget-creation.patch | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/meta-agl-html5-demo/recipes-wam/cef/files/cef/0008-Allow-passing-the-app_id-on-widget-creation.patch b/meta-agl-html5-demo/recipes-wam/cef/files/cef/0008-Allow-passing-the-app_id-on-widget-creation.patch new file mode 100644 index 000000000..e0a79b6c2 --- /dev/null +++ b/meta-agl-html5-demo/recipes-wam/cef/files/cef/0008-Allow-passing-the-app_id-on-widget-creation.patch @@ -0,0 +1,130 @@ +From 5a8d9996ee7b3ce77f7b3fd3c7839806a034ea16 Mon Sep 17 00:00:00 2001 +From: Roger Zanoni <rzanoni@igalia.com> +Date: Tue, 4 Jul 2023 12:10:41 +0200 +Subject: [PATCH 08/10] Allow passing the app_id on widget creation + +--- + include/views/cef_window.h | 6 ++++++ + libcef/browser/views/window_impl.cc | 13 +++++++++---- + libcef/browser/views/window_impl.h | 6 ++++-- + libcef/browser/views/window_view.cc | 3 ++- + libcef/browser/views/window_view.h | 2 +- + 5 files changed, 22 insertions(+), 8 deletions(-) + +diff --git a/include/views/cef_window.h b/include/views/cef_window.h +index 9f196a1e7..16c854b09 100644 +--- a/include/views/cef_window.h ++++ b/include/views/cef_window.h +@@ -65,6 +65,12 @@ class CefWindow : public CefPanel { + CefRefPtr<CefWindowDelegate> delegate); + + /// ++ /// Create a new Window with the provided ID ++ /// ++ /*--cef()--*/ ++ static CefRefPtr<CefWindow> CreateTopLevelWindowWithId( ++ CefRefPtr<CefWindowDelegate> delegate, const CefString& app_id); ++ /// + /// Show the Window. + /// + /*--cef()--*/ +diff --git a/libcef/browser/views/window_impl.cc b/libcef/browser/views/window_impl.cc +index 12858364e..f0fe9dfb2 100644 +--- a/libcef/browser/views/window_impl.cc ++++ b/libcef/browser/views/window_impl.cc +@@ -110,14 +110,19 @@ CefRefPtr<CefWindow> CefWindow::CreateTopLevelWindow( + return CefWindowImpl::Create(delegate, gfx::kNullAcceleratedWidget); + } + ++CefRefPtr<CefWindow> CefWindow::CreateTopLevelWindowWithId( ++ CefRefPtr<CefWindowDelegate> delegate, const CefString& app_id) { ++ return CefWindowImpl::Create(delegate, gfx::kNullAcceleratedWidget, app_id); ++} ++ + // static + CefRefPtr<CefWindowImpl> CefWindowImpl::Create( + CefRefPtr<CefWindowDelegate> delegate, +- gfx::AcceleratedWidget parent_widget) { ++ gfx::AcceleratedWidget parent_widget, const CefString& app_id) { + CEF_REQUIRE_UIT_RETURN(nullptr); + CefRefPtr<CefWindowImpl> window = new CefWindowImpl(delegate); + window->Initialize(); +- window->CreateWidget(parent_widget); ++ window->CreateWidget(parent_widget, app_id); + return window; + } + +@@ -745,10 +750,10 @@ void CefWindowImpl::InitializeRootView() { + static_cast<CefWindowView*>(root_view())->Initialize(); + } + +-void CefWindowImpl::CreateWidget(gfx::AcceleratedWidget parent_widget) { ++void CefWindowImpl::CreateWidget(gfx::AcceleratedWidget parent_widget, const CefString& app_id) { + DCHECK(!widget_); + +- root_view()->CreateWidget(parent_widget); ++ root_view()->CreateWidget(parent_widget, app_id); + widget_ = root_view()->GetWidget(); + DCHECK(widget_); + +diff --git a/libcef/browser/views/window_impl.h b/libcef/browser/views/window_impl.h +index aaca3c281..1c5be736f 100644 +--- a/libcef/browser/views/window_impl.h ++++ b/libcef/browser/views/window_impl.h +@@ -36,7 +36,8 @@ class CefWindowImpl + // Create a new CefWindow instance. |delegate| may be nullptr. |parent_widget| + // will be used when creating a Chrome child window. + static CefRefPtr<CefWindowImpl> Create(CefRefPtr<CefWindowDelegate> delegate, +- gfx::AcceleratedWidget parent_widget); ++ gfx::AcceleratedWidget parent_widget, ++ const CefString& app_id = ""); + + // CefWindow methods: + void Show() override; +@@ -157,7 +158,8 @@ class CefWindowImpl + void InitializeRootView() override; + + // Initialize the Widget. +- void CreateWidget(gfx::AcceleratedWidget parent_widget); ++ void CreateWidget(gfx::AcceleratedWidget parent_widget, ++ const CefString& app_id = ""); + + views::Widget* widget_ = nullptr; + +diff --git a/libcef/browser/views/window_view.cc b/libcef/browser/views/window_view.cc +index 2331caaea..5e4cb6b53 100644 +--- a/libcef/browser/views/window_view.cc ++++ b/libcef/browser/views/window_view.cc +@@ -371,7 +371,7 @@ CefWindowView::CefWindowView(CefWindowDelegate* cef_delegate, + DCHECK(window_delegate_); + } + +-void CefWindowView::CreateWidget(gfx::AcceleratedWidget parent_widget) { ++void CefWindowView::CreateWidget(gfx::AcceleratedWidget parent_widget, const CefString& app_id) { + DCHECK(!GetWidget()); + + // |widget| is owned by the NativeWidget and will be destroyed in response to +@@ -381,6 +381,7 @@ void CefWindowView::CreateWidget(gfx::AcceleratedWidget parent_widget) { + + views::Widget::InitParams params; + params.delegate = this; ++ params.wayland_app_id = app_id; + + views::Widget* host_widget = nullptr; + +diff --git a/libcef/browser/views/window_view.h b/libcef/browser/views/window_view.h +index b065f3700..c15e75d65 100644 +--- a/libcef/browser/views/window_view.h ++++ b/libcef/browser/views/window_view.h +@@ -52,7 +52,7 @@ class CefWindowView + CefWindowView& operator=(const CefWindowView&) = delete; + + // Create the Widget. +- void CreateWidget(gfx::AcceleratedWidget parent_widget); ++ void CreateWidget(gfx::AcceleratedWidget parent_widget, const CefString& app_id); + + // Returns the CefWindow associated with this view. See comments on + // CefViewView::GetCefView. +-- +2.42.1 + |