[wam][cef] Add the CEF recipe
[AGL/meta-agl-demo.git] / recipes-wam / cef / files / cef / 0008-Add-the-SetActivateRegion-method.patch
diff --git a/recipes-wam/cef/files/cef/0008-Add-the-SetActivateRegion-method.patch b/recipes-wam/cef/files/cef/0008-Add-the-SetActivateRegion-method.patch
new file mode 100644 (file)
index 0000000..ecc806a
--- /dev/null
@@ -0,0 +1,103 @@
+From fcbb9bc7c390f2b9ab54c9f8996140ff83b46538 Mon Sep 17 00:00:00 2001
+From: Roger Zanoni <rzanoni@igalia.com>
+Date: Sun, 2 Jul 2023 12:08:59 +0200
+Subject: [PATCH 08/10] Add the SetActivateRegion method
+
+---
+ include/views/cef_window.h             |  6 ++++++
+ libcef/browser/views/view_util.h       |  1 +
+ libcef/browser/views/view_util_aura.cc | 17 +++++++++++++++++
+ libcef/browser/views/window_impl.cc    |  7 +++++++
+ libcef/browser/views/window_impl.h     |  1 +
+ 5 files changed, 32 insertions(+)
+
+diff --git a/include/views/cef_window.h b/include/views/cef_window.h
+index 063529964..52ccb7dc5 100644
+--- a/include/views/cef_window.h
++++ b/include/views/cef_window.h
+@@ -387,6 +387,12 @@ class CefWindow : public CefPanel {
+   /*--cef()--*/
+   virtual bool IsSurfaceConfigured() = 0;
++  ///
++  /// A hint for the compositor to use a custom area, rather than inferring the activation area.
++  ///
++  /*--cef()--*/
++  virtual void SetupActivationArea(uint32_t x, uint32_t y, uint32_t width, uint32_t height) = 0;
++
+   // -----------------
+ };
+diff --git a/libcef/browser/views/view_util.h b/libcef/browser/views/view_util.h
+index 20b97038b..76c023254 100644
+--- a/libcef/browser/views/view_util.h
++++ b/libcef/browser/views/view_util.h
+@@ -149,6 +149,7 @@ void AglSetAppReady(views::Widget* widget);
+ void AglSetBackGroundApp(views::Widget* widget);
+ void AglSetPanelApp(views::Widget* widget, uint32_t edge);
+ bool IsSurfaceConfigured(views::Widget* widget);
++void SetupActivationArea(views::Widget* widget, uint32_t x, uint32_t y, uint32_t width, uint32_t height);
+ // -----------------
+diff --git a/libcef/browser/views/view_util_aura.cc b/libcef/browser/views/view_util_aura.cc
+index b5b4f414b..96e44dbb6 100644
+--- a/libcef/browser/views/view_util_aura.cc
++++ b/libcef/browser/views/view_util_aura.cc
+@@ -101,6 +101,23 @@ bool IsSurfaceConfigured(views::Widget* widget) {
+   }
+ }
++void SetupActivationArea(views::Widget* widget,
++                         uint32_t x,
++                         uint32_t y,
++                         uint32_t width,
++                         uint32_t height) {
++  if (!widget) {
++    return;
++  }
++  aura::Window* window = widget->GetNativeWindow();
++  if (window && window->GetRootWindow()) {
++    window->GetHost()->SetupActivationArea(x,
++                                           y,
++                                           width,
++                                           height);
++  }
++}
++
+ // -----------------
+ }  // namespace view_util
+diff --git a/libcef/browser/views/window_impl.cc b/libcef/browser/views/window_impl.cc
+index 1b5d196ab..485943ec6 100644
+--- a/libcef/browser/views/window_impl.cc
++++ b/libcef/browser/views/window_impl.cc
+@@ -548,6 +548,13 @@ bool CefWindowImpl::IsSurfaceConfigured() {
+   return view_util::IsSurfaceConfigured(widget_);
+ }
++void CefWindowImpl::SetupActivationArea(uint32_t x,
++                                        uint32_t y,
++                                        uint32_t width,
++                                        uint32_t height) {
++  view_util::SetupActivationArea(widget_, x, y, width, height);
++}
++
+ // -----------------
+ void CefWindowImpl::SendKeyPress(int key_code, uint32 event_flags) {
+diff --git a/libcef/browser/views/window_impl.h b/libcef/browser/views/window_impl.h
+index 4ab77dbe6..89c136873 100644
+--- a/libcef/browser/views/window_impl.h
++++ b/libcef/browser/views/window_impl.h
+@@ -140,6 +140,7 @@ class CefWindowImpl
+   void AglSetBackGroundApp() override;
+   void AglSetPanelApp(uint32_t edge) override;
+   bool IsSurfaceConfigured() override;
++  void SetupActivationArea(uint32_t x, uint32_t y, uint32_t width, uint32_t height) override;
+   // -----------------
+-- 
+2.39.2
+