summaryrefslogtreecommitdiffstats
path: root/recipes-wam/cef/files/cef/0009-Allow-passing-the-app_id-on-widget-creation.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-wam/cef/files/cef/0009-Allow-passing-the-app_id-on-widget-creation.patch')
-rw-r--r--recipes-wam/cef/files/cef/0009-Allow-passing-the-app_id-on-widget-creation.patch130
1 files changed, 130 insertions, 0 deletions
diff --git a/recipes-wam/cef/files/cef/0009-Allow-passing-the-app_id-on-widget-creation.patch b/recipes-wam/cef/files/cef/0009-Allow-passing-the-app_id-on-widget-creation.patch
new file mode 100644
index 00000000..006664d3
--- /dev/null
+++ b/recipes-wam/cef/files/cef/0009-Allow-passing-the-app_id-on-widget-creation.patch
@@ -0,0 +1,130 @@
+From 6bd43a70c23d407ca6c4d4a68f0e95eb3301290a Mon Sep 17 00:00:00 2001
+From: Roger Zanoni <rzanoni@igalia.com>
+Date: Tue, 4 Jul 2023 12:10:41 +0200
+Subject: [PATCH 09/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 52ccb7dc5..fd3e1c1b5 100644
+--- a/include/views/cef_window.h
++++ b/include/views/cef_window.h
+@@ -63,6 +63,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 485943ec6..35df22c51 100644
+--- a/libcef/browser/views/window_impl.cc
++++ b/libcef/browser/views/window_impl.cc
+@@ -115,14 +115,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);
+ if (delegate)
+ delegate->OnWindowCreated(window.get());
+ return window;
+@@ -678,10 +683,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 89c136873..d3330dfd8 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;
+@@ -155,7 +156,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_;
+
+diff --git a/libcef/browser/views/window_view.cc b/libcef/browser/views/window_view.cc
+index 1e8d58a32..f4bf79ce3 100644
+--- a/libcef/browser/views/window_view.cc
++++ b/libcef/browser/views/window_view.cc
+@@ -255,7 +255,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
+@@ -265,6 +265,7 @@ void CefWindowView::CreateWidget(gfx::AcceleratedWidget parent_widget) {
+
+ views::Widget::InitParams params;
+ params.delegate = this;
++ params.wayland_app_id = app_id;
+
+ bool can_activate = true;
+ bool can_resize = true;
+diff --git a/libcef/browser/views/window_view.h b/libcef/browser/views/window_view.h
+index 6789636b8..ca593c60a 100644
+--- a/libcef/browser/views/window_view.h
++++ b/libcef/browser/views/window_view.h
+@@ -51,7 +51,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.39.2
+