From 01deea5da9d794221713beff0befa85a23cacd95 Mon Sep 17 00:00:00 2001 From: Boram Bae Date: Mon, 4 Jul 2022 10:31:04 +0900 Subject: [PATCH 01/10] Remove OnGeometryChanged from TizenWindow Signed-off-by: Boram Bae --- shell/platform/tizen/channels/window_channel.cc | 11 +++++++---- shell/platform/tizen/tizen_renderer_egl.cc | 4 ++-- shell/platform/tizen/tizen_renderer_egl.h | 1 + shell/platform/tizen/tizen_window.h | 2 -- shell/platform/tizen/tizen_window_ecore_wl2.cc | 4 +--- shell/platform/tizen/tizen_window_ecore_wl2.h | 4 +++- shell/platform/tizen/tizen_window_elementary.cc | 5 ----- shell/platform/tizen/tizen_window_elementary.h | 2 -- 8 files changed, 14 insertions(+), 19 deletions(-) diff --git a/shell/platform/tizen/channels/window_channel.cc b/shell/platform/tizen/channels/window_channel.cc index 1fec67ff07d26..6eb8c905c646a 100644 --- a/shell/platform/tizen/channels/window_channel.cc +++ b/shell/platform/tizen/channels/window_channel.cc @@ -7,6 +7,9 @@ #include "flutter/shell/platform/common/client_wrapper/include/flutter/standard_method_codec.h" #include "flutter/shell/platform/tizen/channels/encodable_value_holder.h" #include "flutter/shell/platform/tizen/logger.h" +#ifndef TIZEN_RENDERER_EVAS_GL +#include "flutter/shell/platform/tizen/tizen_window_ecore_wl2.h" +#endif namespace flutter { @@ -58,10 +61,10 @@ void WindowChannel::HandleMethodCall( EncodableValueHolder height(arguments, "height"); TizenGeometry geometry = window_->GetGeometry(); - // FIXME: Use SetGeometry() instead of OnGeometryChanged() - // After the SetGeometry was successfully executed, I expected a - // handler of ECORE_WL2_EVENT_WINDOW_CONFIGURE to be called, but it didn't. - window_->OnGeometryChanged({ + // FIXME: Use SetGeometry() instead of HandleSetWindowGeometry() + // If the windows resize callback is implemented properly, that callback + // should be called after resizing. + reinterpret_cast(window_)->HandleSetWindowGeometry({ x ? *x : geometry.left, y ? *y : geometry.top, width ? *width : geometry.width, diff --git a/shell/platform/tizen/tizen_renderer_egl.cc b/shell/platform/tizen/tizen_renderer_egl.cc index dd3ffa87e54ce..97173eb7d8846 100644 --- a/shell/platform/tizen/tizen_renderer_egl.cc +++ b/shell/platform/tizen/tizen_renderer_egl.cc @@ -60,10 +60,10 @@ bool TizenRendererEgl::CreateSurface(void* render_target, { const EGLint attribs[] = {EGL_NONE}; - + render_target_ = render_target; auto* egl_window = static_cast(ecore_wl2_egl_window_native_get( - static_cast(render_target))); + static_cast(render_target_))); egl_surface_ = eglCreateWindowSurface(egl_display_, egl_config_, egl_window, attribs); if (egl_surface_ == EGL_NO_SURFACE) { diff --git a/shell/platform/tizen/tizen_renderer_egl.h b/shell/platform/tizen/tizen_renderer_egl.h index a981ae1a76cd4..633596271d0ee 100644 --- a/shell/platform/tizen/tizen_renderer_egl.h +++ b/shell/platform/tizen/tizen_renderer_egl.h @@ -53,6 +53,7 @@ class TizenRendererEgl : public TizenRenderer { EGLSurface egl_resource_surface_ = EGL_NO_SURFACE; std::string egl_extension_str_; + void* render_target_ = nullptr; }; } // namespace flutter diff --git a/shell/platform/tizen/tizen_window.h b/shell/platform/tizen/tizen_window.h index d8846afeb7c78..a8250da058097 100644 --- a/shell/platform/tizen/tizen_window.h +++ b/shell/platform/tizen/tizen_window.h @@ -30,8 +30,6 @@ class TizenWindow : public TizenViewBase { // Returns the geometry of the display screen. virtual TizenGeometry GetScreenGeometry() = 0; - virtual void OnGeometryChanged(TizenGeometry geometry) = 0; - virtual void BindKeys(const std::vector& keys) = 0; TizenViewType GetType() override { return TizenViewType::kWindow; }; diff --git a/shell/platform/tizen/tizen_window_ecore_wl2.cc b/shell/platform/tizen/tizen_window_ecore_wl2.cc index edcef9fc4a5bd..f9cb83e7df515 100644 --- a/shell/platform/tizen/tizen_window_ecore_wl2.cc +++ b/shell/platform/tizen/tizen_window_ecore_wl2.cc @@ -444,9 +444,7 @@ void TizenWindowEcoreWl2::Show() { ecore_wl2_window_show(ecore_wl2_window_); } -void TizenWindowEcoreWl2::OnGeometryChanged(TizenGeometry geometry) { - // This implementation mimics the situation in which the handler of - // ECORE_WL2_EVENT_WINDOW_CONFIGURE is called. +void TizenWindowEcoreWl2::HandleSetWindowGeometry(TizenGeometry geometry) { SetGeometry(geometry); view_->OnResize(geometry.left, geometry.top, geometry.width, geometry.height); } diff --git a/shell/platform/tizen/tizen_window_ecore_wl2.h b/shell/platform/tizen/tizen_window_ecore_wl2.h index 8d8d00745014d..d2016d2d25246 100644 --- a/shell/platform/tizen/tizen_window_ecore_wl2.h +++ b/shell/platform/tizen/tizen_window_ecore_wl2.h @@ -52,7 +52,9 @@ class TizenWindowEcoreWl2 : public TizenWindow { void Show() override; - void OnGeometryChanged(TizenGeometry geometry) override; + // FIXME: Don't use this method except for window channel. + // This is a temporary solution. + void HandleSetWindowGeometry(TizenGeometry geometry); private: bool CreateWindow(); diff --git a/shell/platform/tizen/tizen_window_elementary.cc b/shell/platform/tizen/tizen_window_elementary.cc index 43d8dc0d5e84d..ffe3be17c4bff 100644 --- a/shell/platform/tizen/tizen_window_elementary.cc +++ b/shell/platform/tizen/tizen_window_elementary.cc @@ -371,11 +371,6 @@ void TizenWindowElementary::Show() { evas_object_show(elm_win_); } -void TizenWindowElementary::OnGeometryChanged(TizenGeometry geometry) { - SetGeometry(geometry); - view_->OnResize(geometry.left, geometry.top, geometry.width, geometry.height); -} - void TizenWindowElementary::PrepareInputMethod() { input_method_context_ = std::make_unique(GetWindowId()); diff --git a/shell/platform/tizen/tizen_window_elementary.h b/shell/platform/tizen/tizen_window_elementary.h index 16478e82a966b..6a705fe745596 100644 --- a/shell/platform/tizen/tizen_window_elementary.h +++ b/shell/platform/tizen/tizen_window_elementary.h @@ -51,8 +51,6 @@ class TizenWindowElementary : public TizenWindow { void Show() override; - void OnGeometryChanged(TizenGeometry geometry) override; - private: bool CreateWindow(); From 9e1120d6b7c2a20cc94a473295c6c461db802bb4 Mon Sep 17 00:00:00 2001 From: Boram Bae Date: Mon, 4 Jul 2022 10:42:59 +0900 Subject: [PATCH 02/10] Introduce TizenViewEventHandlerDelegate Signed-off-by: Boram Bae --- shell/platform/tizen/flutter_tizen_view.h | 30 ++++---- .../tizen/tizen_view_event_handler_delegate.h | 70 +++++++++++++++++++ 2 files changed, 87 insertions(+), 13 deletions(-) create mode 100644 shell/platform/tizen/tizen_view_event_handler_delegate.h diff --git a/shell/platform/tizen/flutter_tizen_view.h b/shell/platform/tizen/flutter_tizen_view.h index 78526f664c52b..742a0c786a51c 100644 --- a/shell/platform/tizen/flutter_tizen_view.h +++ b/shell/platform/tizen/flutter_tizen_view.h @@ -16,14 +16,15 @@ #include "flutter/shell/platform/tizen/channels/window_channel.h" #include "flutter/shell/platform/tizen/flutter_tizen_engine.h" #include "flutter/shell/platform/tizen/tizen_view_base.h" +#include "flutter/shell/platform/tizen/tizen_view_event_handler_delegate.h" namespace flutter { -class FlutterTizenView { +class FlutterTizenView : public TizenViewEventHandlerDelegate { public: FlutterTizenView(std::unique_ptr tizen_view); - ~FlutterTizenView(); + virtual ~FlutterTizenView(); // Configures the window instance with an instance of a running Flutter // engine. @@ -51,27 +52,30 @@ class FlutterTizenView { void* OnProcResolver(const char* name); - void OnResize(int32_t left, int32_t top, int32_t width, int32_t height); + void OnResize(int32_t left, + int32_t top, + int32_t width, + int32_t height) override; - void OnRotate(int32_t degree); + void OnRotate(int32_t degree) override; void OnPointerMove(double x, double y, size_t timestamp, FlutterPointerDeviceKind device_kind, - int32_t device_id); + int32_t device_id) override; void OnPointerDown(double x, double y, size_t timestamp, FlutterPointerDeviceKind device_kind, - int32_t device_id); + int32_t device_id) override; void OnPointerUp(double x, double y, size_t timestamp, FlutterPointerDeviceKind device_kind, - int32_t device_id); + int32_t device_id) override; void OnScroll(double x, double y, @@ -80,22 +84,22 @@ class FlutterTizenView { int scroll_offset_multiplier, size_t timestamp, FlutterPointerDeviceKind device_kind, - int32_t device_id); + int32_t device_id) override; void OnKey(const char* key, const char* string, const char* compose, uint32_t modifiers, uint32_t scan_code, - bool is_down); + bool is_down) override; - void OnComposeBegin(); + void OnComposeBegin() override; - void OnComposeChange(const std::string& str, int cursor_pos); + void OnComposeChange(const std::string& str, int cursor_pos) override; - void OnComposeEnd(); + void OnComposeEnd() override; - void OnCommit(const std::string& str); + void OnCommit(const std::string& str) override; FlutterTransformation GetFlutterTransformation() { return flutter_transformation_; diff --git a/shell/platform/tizen/tizen_view_event_handler_delegate.h b/shell/platform/tizen/tizen_view_event_handler_delegate.h new file mode 100644 index 0000000000000..bca6de9d9c1ed --- /dev/null +++ b/shell/platform/tizen/tizen_view_event_handler_delegate.h @@ -0,0 +1,70 @@ +// Copyright 2022 Samsung Electronics Co., Ltd. All rights reserved. +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef EMBEDDER_TIZEN_VIEW_EVENT_HANDLER_DELEGATE_H_ +#define EMBEDDER_TIZEN_VIEW_EVENT_HANDLER_DELEGATE_H_ + +#include +#include + +#include "flutter/shell/platform/embedder/embedder.h" + +namespace flutter { + +class TizenViewEventHandlerDelegate { + public: + virtual void OnResize(int32_t left, + int32_t top, + int32_t width, + int32_t height) = 0; + + virtual void OnRotate(int32_t degree) = 0; + + virtual void OnPointerMove(double x, + double y, + size_t timestamp, + FlutterPointerDeviceKind device_kind, + int32_t device_id) = 0; + + virtual void OnPointerDown(double x, + double y, + size_t timestamp, + FlutterPointerDeviceKind device_kind, + int32_t device_id) = 0; + + virtual void OnPointerUp(double x, + double y, + size_t timestamp, + FlutterPointerDeviceKind device_kind, + int32_t device_id) = 0; + + virtual void OnScroll(double x, + double y, + double delta_x, + double delta_y, + int scroll_offset_multiplier, + size_t timestamp, + FlutterPointerDeviceKind device_kind, + int32_t device_id) = 0; + + virtual void OnKey(const char* key, + const char* string, + const char* compose, + uint32_t modifiers, + uint32_t scan_code, + bool is_down) = 0; + + virtual void OnComposeBegin() = 0; + + virtual void OnComposeChange(const std::string& str, int cursor_pos) = 0; + + virtual void OnComposeEnd() = 0; + + virtual void OnCommit(const std::string& str) = 0; +}; + +} // namespace flutter + +#endif // EMBEDDER_TIZEN_VIEW_EVENT_HANDLER_DELEGATE_H_ From 536087f53aafe54daa2a410c9b8c241605baab37 Mon Sep 17 00:00:00 2001 From: Boram Bae Date: Mon, 4 Jul 2022 13:59:56 +0900 Subject: [PATCH 03/10] Refactor FlutterTizenView's OnResize and OnRotate * Do not manipulate the view, but manipulate renderer. Signed-off-by: Boram Bae --- shell/platform/tizen/flutter_tizen_view.cc | 6 ++--- shell/platform/tizen/tizen_renderer.h | 2 ++ shell/platform/tizen/tizen_renderer_egl.cc | 4 ++++ shell/platform/tizen/tizen_renderer_egl.h | 2 ++ shell/platform/tizen/tizen_renderer_evas_gl.h | 2 +- shell/platform/tizen/tizen_view_base.h | 9 ++++---- shell/platform/tizen/tizen_view_elementary.cc | 9 -------- shell/platform/tizen/tizen_view_elementary.h | 2 -- .../platform/tizen/tizen_window_ecore_wl2.cc | 15 ++++++------ shell/platform/tizen/tizen_window_ecore_wl2.h | 2 -- .../platform/tizen/tizen_window_elementary.cc | 23 +++++++++++++------ .../platform/tizen/tizen_window_elementary.h | 2 -- 12 files changed, 40 insertions(+), 38 deletions(-) diff --git a/shell/platform/tizen/flutter_tizen_view.cc b/shell/platform/tizen/flutter_tizen_view.cc index 64e0003c117cc..7096ef7127499 100644 --- a/shell/platform/tizen/flutter_tizen_view.cc +++ b/shell/platform/tizen/flutter_tizen_view.cc @@ -135,7 +135,8 @@ void FlutterTizenView::OnResize(int32_t left, std::swap(width, height); } - tizen_view_->ResizeWithRotation({left, top, width, height}, rotation_degree_); + engine_->renderer()->ResizeSurface(width, height); + SendWindowMetrics(left, top, width, height, 0.0); } @@ -167,8 +168,7 @@ void FlutterTizenView::OnRotate(int32_t degree) { std::swap(width, height); } - tizen_view_->ResizeWithRotation({geometry.left, geometry.top, width, height}, - rotation_degree_); + engine_->renderer()->ResizeSurface(width, height); // Window position does not change on rotation regardless of its orientation. SendWindowMetrics(geometry.left, geometry.top, width, height, 0.0); diff --git a/shell/platform/tizen/tizen_renderer.h b/shell/platform/tizen/tizen_renderer.h index c5f600a251641..1077b173d1927 100644 --- a/shell/platform/tizen/tizen_renderer.h +++ b/shell/platform/tizen/tizen_renderer.h @@ -38,6 +38,8 @@ class TizenRenderer { virtual bool IsSupportedExtension(const char* name) = 0; + virtual void ResizeSurface(int32_t width, int32_t height) = 0; + protected: bool is_valid_ = false; }; diff --git a/shell/platform/tizen/tizen_renderer_egl.cc b/shell/platform/tizen/tizen_renderer_egl.cc index 97173eb7d8846..a0ebc84344921 100644 --- a/shell/platform/tizen/tizen_renderer_egl.cc +++ b/shell/platform/tizen/tizen_renderer_egl.cc @@ -271,6 +271,10 @@ bool TizenRendererEgl::IsSupportedExtension(const char* name) { return strstr(egl_extension_str_.c_str(), name); } +void TizenRendererEgl::ResizeSurface(int32_t width, int32_t height) { + // Do nothing. +} + void* TizenRendererEgl::OnProcResolver(const char* name) { auto address = eglGetProcAddress(name); if (address != nullptr) { diff --git a/shell/platform/tizen/tizen_renderer_egl.h b/shell/platform/tizen/tizen_renderer_egl.h index 633596271d0ee..dfa823d41451a 100644 --- a/shell/platform/tizen/tizen_renderer_egl.h +++ b/shell/platform/tizen/tizen_renderer_egl.h @@ -40,6 +40,8 @@ class TizenRendererEgl : public TizenRenderer { bool IsSupportedExtension(const char* name) override; + void ResizeSurface(int32_t width, int32_t height) override; + private: bool ChooseEGLConfiguration(); diff --git a/shell/platform/tizen/tizen_renderer_evas_gl.h b/shell/platform/tizen/tizen_renderer_evas_gl.h index fd41d8a5c8097..48101f027b934 100644 --- a/shell/platform/tizen/tizen_renderer_evas_gl.h +++ b/shell/platform/tizen/tizen_renderer_evas_gl.h @@ -47,7 +47,7 @@ class TizenRendererEvasGL : public TizenRenderer { void MarkPixelsDirty(); - void ResizeSurface(int32_t width, int32_t height); + void ResizeSurface(int32_t width, int32_t height) override; private: Evas_GL* evas_gl_ = nullptr; diff --git a/shell/platform/tizen/tizen_view_base.h b/shell/platform/tizen/tizen_view_base.h index 718133a9d4031..0a47a91b8837c 100644 --- a/shell/platform/tizen/tizen_view_base.h +++ b/shell/platform/tizen/tizen_view_base.h @@ -11,10 +11,11 @@ #include #include "flutter/shell/platform/tizen/tizen_input_method_context.h" +#include "flutter/shell/platform/tizen/tizen_view_event_handler_delegate.h" namespace flutter { -class FlutterTizenView; +class TizenViewEventHandlerDelegate; struct TizenGeometry { int32_t left = 0, top = 0, width = 0, height = 0; @@ -44,9 +45,7 @@ class TizenViewBase { // Sets the delegate used to communicate state changes from render target to // view such as key presses, mouse position updates etc. - void SetView(FlutterTizenView* view) { view_ = view; } - - virtual void ResizeWithRotation(TizenGeometry geometry, int32_t degree) = 0; + void SetView(TizenViewEventHandlerDelegate* view) { view_ = view; } virtual void Show() = 0; @@ -57,7 +56,7 @@ class TizenViewBase { } protected: - FlutterTizenView* view_ = nullptr; + TizenViewEventHandlerDelegate* view_ = nullptr; // The Tizen input method context. nullptr if not set. std::unique_ptr input_method_context_; diff --git a/shell/platform/tizen/tizen_view_elementary.cc b/shell/platform/tizen/tizen_view_elementary.cc index b68fd4a9b317c..7a5de8f5c1ac6 100644 --- a/shell/platform/tizen/tizen_view_elementary.cc +++ b/shell/platform/tizen/tizen_view_elementary.cc @@ -334,15 +334,6 @@ uintptr_t TizenViewElementary::GetWindowId() { ecore_evas_ecore_evas_get(evas_object_evas_get(image_))); } -void TizenViewElementary::ResizeWithRotation(TizenGeometry geometry, - int32_t angle) { - SetGeometry(geometry); - - TizenRendererEvasGL* renderer_evas_gl = - reinterpret_cast(view_->engine()->renderer()); - renderer_evas_gl->ResizeSurface(geometry.width, geometry.height); -} - void TizenViewElementary::Show() { evas_object_show(container_); evas_object_show(image_); diff --git a/shell/platform/tizen/tizen_view_elementary.h b/shell/platform/tizen/tizen_view_elementary.h index 960a62b47a825..479dbbbcc15de 100644 --- a/shell/platform/tizen/tizen_view_elementary.h +++ b/shell/platform/tizen/tizen_view_elementary.h @@ -36,8 +36,6 @@ class TizenViewElementary : public TizenView { uintptr_t GetWindowId() override; - void ResizeWithRotation(TizenGeometry geometry, int32_t angle) override; - void Show() override; private: diff --git a/shell/platform/tizen/tizen_window_ecore_wl2.cc b/shell/platform/tizen/tizen_window_ecore_wl2.cc index f9cb83e7df515..cd7450164632f 100644 --- a/shell/platform/tizen/tizen_window_ecore_wl2.cc +++ b/shell/platform/tizen/tizen_window_ecore_wl2.cc @@ -394,6 +394,14 @@ void TizenWindowEcoreWl2::SetGeometry(TizenGeometry geometry) { // only after calling `ecore_wl2_window_position_set`. Call a more appropriate // API that flushes geometry settings to the compositor. ecore_wl2_window_position_set(ecore_wl2_window_, geometry.left, geometry.top); + + FT_LOG(Error) << "geometry.left[" << geometry.left << "]"; + FT_LOG(Error) << "geometry.top[" << geometry.top << "]"; + FT_LOG(Error) << "geometry.width[" << geometry.width << "]"; + FT_LOG(Error) << "geometry.height[" << geometry.height << "]"; + ecore_wl2_egl_window_resize_with_rotation( + ecore_wl2_egl_window_, geometry.left, geometry.top, geometry.width, + geometry.height, GetRotation()); } TizenGeometry TizenWindowEcoreWl2::GetScreenGeometry() { @@ -420,13 +428,6 @@ uintptr_t TizenWindowEcoreWl2::GetWindowId() { return ecore_wl2_window_id_get(ecore_wl2_window_); } -void TizenWindowEcoreWl2::ResizeWithRotation(TizenGeometry geometry, - int32_t angle) { - ecore_wl2_egl_window_resize_with_rotation( - ecore_wl2_egl_window_, geometry.left, geometry.top, geometry.width, - geometry.height, angle); -} - void TizenWindowEcoreWl2::SetPreferredOrientations( const std::vector& rotations) { ecore_wl2_window_available_rotations_set(ecore_wl2_window_, rotations.data(), diff --git a/shell/platform/tizen/tizen_window_ecore_wl2.h b/shell/platform/tizen/tizen_window_ecore_wl2.h index d2016d2d25246..49f0a1d7970a0 100644 --- a/shell/platform/tizen/tizen_window_ecore_wl2.h +++ b/shell/platform/tizen/tizen_window_ecore_wl2.h @@ -44,8 +44,6 @@ class TizenWindowEcoreWl2 : public TizenWindow { void* GetWindowHandle() override { return ecore_wl2_window_; } - void ResizeWithRotation(TizenGeometry geometry, int32_t angle) override; - void SetPreferredOrientations(const std::vector& rotations) override; void BindKeys(const std::vector& keys) override; diff --git a/shell/platform/tizen/tizen_window_elementary.cc b/shell/platform/tizen/tizen_window_elementary.cc index ffe3be17c4bff..86ec1e4c92a16 100644 --- a/shell/platform/tizen/tizen_window_elementary.cc +++ b/shell/platform/tizen/tizen_window_elementary.cc @@ -150,6 +150,22 @@ void TizenWindowElementary::RegisterEventHandlers() { evas_object_smart_callback_add(elm_win_, "rotation,changed", rotation_changed_callback_, this); + evas_object_callbacks_[EVAS_CALLBACK_RESIZE] = + [](void* data, Evas* evas, Evas_Object* object, void* event_info) { + auto* self = reinterpret_cast(data); + if (self->view_) { + if (self->elm_win_ == object) { + int32_t width = 0, height = 0; + evas_object_geometry_get(object, nullptr, nullptr, &width, &height); + + self->view_->OnResize(0, 0, width, height); + } + } + }; + evas_object_event_callback_add(elm_win_, EVAS_CALLBACK_RESIZE, + evas_object_callbacks_[EVAS_CALLBACK_RESIZE], + this); + evas_object_callbacks_[EVAS_CALLBACK_MOUSE_DOWN] = [](void* data, Evas* evas, Evas_Object* object, void* event_info) { auto* self = reinterpret_cast(data); @@ -346,13 +362,6 @@ uintptr_t TizenWindowElementary::GetWindowId() { return elm_win_window_id_get(elm_win_); } -void TizenWindowElementary::ResizeWithRotation(TizenGeometry geometry, - int32_t angle) { - TizenRendererEvasGL* renderer_evas_gl = - reinterpret_cast(view_->engine()->renderer()); - renderer_evas_gl->ResizeSurface(geometry.width, geometry.height); -} - void TizenWindowElementary::SetPreferredOrientations( const std::vector& rotations) { elm_win_wm_rotation_available_rotations_set( diff --git a/shell/platform/tizen/tizen_window_elementary.h b/shell/platform/tizen/tizen_window_elementary.h index 6a705fe745596..cf2d0aa7c8a01 100644 --- a/shell/platform/tizen/tizen_window_elementary.h +++ b/shell/platform/tizen/tizen_window_elementary.h @@ -43,8 +43,6 @@ class TizenWindowElementary : public TizenWindow { void* GetWindowHandle() override { return elm_win_; } - void ResizeWithRotation(TizenGeometry geometry, int32_t angle) override; - void SetPreferredOrientations(const std::vector& rotations) override; void BindKeys(const std::vector& keys) override; From 61de5208e56223636cd8a67ed492ff1649af401e Mon Sep 17 00:00:00 2001 From: Boram Bae Date: Mon, 4 Jul 2022 15:32:46 +0900 Subject: [PATCH 04/10] Use TizenViewBase::SetGeometry in window channel * Use ecore_wl2_window_rotation_geometry_set instead of ecore_wl2_window_geometry_set, it triggers a ECORE_WL2_EVENT_WINDOW_CONFIGURE callback. Signed-off-by: Boram Bae --- shell/platform/tizen/channels/window_channel.cc | 8 +------- shell/platform/tizen/tizen_renderer_egl.cc | 3 +-- shell/platform/tizen/tizen_renderer_egl.h | 1 - shell/platform/tizen/tizen_window_ecore_wl2.cc | 15 +++------------ shell/platform/tizen/tizen_window_ecore_wl2.h | 4 ---- 5 files changed, 5 insertions(+), 26 deletions(-) diff --git a/shell/platform/tizen/channels/window_channel.cc b/shell/platform/tizen/channels/window_channel.cc index 6eb8c905c646a..3eeab011bbffd 100644 --- a/shell/platform/tizen/channels/window_channel.cc +++ b/shell/platform/tizen/channels/window_channel.cc @@ -7,9 +7,6 @@ #include "flutter/shell/platform/common/client_wrapper/include/flutter/standard_method_codec.h" #include "flutter/shell/platform/tizen/channels/encodable_value_holder.h" #include "flutter/shell/platform/tizen/logger.h" -#ifndef TIZEN_RENDERER_EVAS_GL -#include "flutter/shell/platform/tizen/tizen_window_ecore_wl2.h" -#endif namespace flutter { @@ -61,10 +58,7 @@ void WindowChannel::HandleMethodCall( EncodableValueHolder height(arguments, "height"); TizenGeometry geometry = window_->GetGeometry(); - // FIXME: Use SetGeometry() instead of HandleSetWindowGeometry() - // If the windows resize callback is implemented properly, that callback - // should be called after resizing. - reinterpret_cast(window_)->HandleSetWindowGeometry({ + window_->SetGeometry({ x ? *x : geometry.left, y ? *y : geometry.top, width ? *width : geometry.width, diff --git a/shell/platform/tizen/tizen_renderer_egl.cc b/shell/platform/tizen/tizen_renderer_egl.cc index a0ebc84344921..1680012520dc9 100644 --- a/shell/platform/tizen/tizen_renderer_egl.cc +++ b/shell/platform/tizen/tizen_renderer_egl.cc @@ -60,10 +60,9 @@ bool TizenRendererEgl::CreateSurface(void* render_target, { const EGLint attribs[] = {EGL_NONE}; - render_target_ = render_target; auto* egl_window = static_cast(ecore_wl2_egl_window_native_get( - static_cast(render_target_))); + static_cast(render_target))); egl_surface_ = eglCreateWindowSurface(egl_display_, egl_config_, egl_window, attribs); if (egl_surface_ == EGL_NO_SURFACE) { diff --git a/shell/platform/tizen/tizen_renderer_egl.h b/shell/platform/tizen/tizen_renderer_egl.h index dfa823d41451a..1026f675b9d2b 100644 --- a/shell/platform/tizen/tizen_renderer_egl.h +++ b/shell/platform/tizen/tizen_renderer_egl.h @@ -55,7 +55,6 @@ class TizenRendererEgl : public TizenRenderer { EGLSurface egl_resource_surface_ = EGL_NO_SURFACE; std::string egl_extension_str_; - void* render_target_ = nullptr; }; } // namespace flutter diff --git a/shell/platform/tizen/tizen_window_ecore_wl2.cc b/shell/platform/tizen/tizen_window_ecore_wl2.cc index cd7450164632f..8640cd44cd0c2 100644 --- a/shell/platform/tizen/tizen_window_ecore_wl2.cc +++ b/shell/platform/tizen/tizen_window_ecore_wl2.cc @@ -218,7 +218,6 @@ void TizenWindowEcoreWl2::RegisterEventHandlers() { if (configure_event->win == self->GetWindowId()) { self->view_->OnResize(configure_event->x, configure_event->y, configure_event->w, configure_event->h); - ecore_wl2_window_commit(self->ecore_wl2_window_, EINA_FALSE); return ECORE_CALLBACK_DONE; } } @@ -388,17 +387,14 @@ TizenGeometry TizenWindowEcoreWl2::GetGeometry() { } void TizenWindowEcoreWl2::SetGeometry(TizenGeometry geometry) { - ecore_wl2_window_geometry_set(ecore_wl2_window_, geometry.left, geometry.top, - geometry.width, geometry.height); + ecore_wl2_window_rotation_geometry_set(ecore_wl2_window_, GetRotation(), + geometry.left, geometry.top, + geometry.width, geometry.height); // FIXME: The changes set in `ecore_wl2_window_geometry_set` seems to apply // only after calling `ecore_wl2_window_position_set`. Call a more appropriate // API that flushes geometry settings to the compositor. ecore_wl2_window_position_set(ecore_wl2_window_, geometry.left, geometry.top); - FT_LOG(Error) << "geometry.left[" << geometry.left << "]"; - FT_LOG(Error) << "geometry.top[" << geometry.top << "]"; - FT_LOG(Error) << "geometry.width[" << geometry.width << "]"; - FT_LOG(Error) << "geometry.height[" << geometry.height << "]"; ecore_wl2_egl_window_resize_with_rotation( ecore_wl2_egl_window_, geometry.left, geometry.top, geometry.width, geometry.height, GetRotation()); @@ -445,11 +441,6 @@ void TizenWindowEcoreWl2::Show() { ecore_wl2_window_show(ecore_wl2_window_); } -void TizenWindowEcoreWl2::HandleSetWindowGeometry(TizenGeometry geometry) { - SetGeometry(geometry); - view_->OnResize(geometry.left, geometry.top, geometry.width, geometry.height); -} - void TizenWindowEcoreWl2::SetTizenPolicyNotificationLevel(int level) { wl_registry* registry = ecore_wl2_display_registry_get(ecore_wl2_display_); if (!registry) { diff --git a/shell/platform/tizen/tizen_window_ecore_wl2.h b/shell/platform/tizen/tizen_window_ecore_wl2.h index 49f0a1d7970a0..c44b114454805 100644 --- a/shell/platform/tizen/tizen_window_ecore_wl2.h +++ b/shell/platform/tizen/tizen_window_ecore_wl2.h @@ -50,10 +50,6 @@ class TizenWindowEcoreWl2 : public TizenWindow { void Show() override; - // FIXME: Don't use this method except for window channel. - // This is a temporary solution. - void HandleSetWindowGeometry(TizenGeometry geometry); - private: bool CreateWindow(); From 8730e811a56ce902f1a49830d74323d96b2f8033 Mon Sep 17 00:00:00 2001 From: Boram Bae Date: Mon, 4 Jul 2022 17:35:53 +0900 Subject: [PATCH 05/10] Rework FlutterDesktopViewResize Signed-off-by: Boram Bae --- shell/platform/tizen/flutter_tizen.cc | 11 ++++++++ shell/platform/tizen/flutter_tizen_ecore.cc | 6 ----- .../tizen/flutter_tizen_elementary.cc | 9 +------ shell/platform/tizen/flutter_tizen_view.cc | 7 +++++ shell/platform/tizen/flutter_tizen_view.h | 2 ++ shell/platform/tizen/tizen_view_elementary.cc | 27 +++++++++++-------- .../platform/tizen/tizen_window_ecore_wl2.cc | 9 ++++--- .../platform/tizen/tizen_window_elementary.cc | 12 ++++----- 8 files changed, 48 insertions(+), 35 deletions(-) diff --git a/shell/platform/tizen/flutter_tizen.cc b/shell/platform/tizen/flutter_tizen.cc index 6d3beb3a4f1c5..cf29309bede6b 100644 --- a/shell/platform/tizen/flutter_tizen.cc +++ b/shell/platform/tizen/flutter_tizen.cc @@ -27,6 +27,11 @@ FlutterDesktopEngineRef HandleForEngine(flutter::FlutterTizenEngine* engine) { return reinterpret_cast(engine); } +// Returns the view corresponding to the given opaque API handle. +flutter::FlutterTizenView* ViewFromHandle(FlutterDesktopViewRef view) { + return reinterpret_cast(view); +} + // Returns the texture registrar corresponding to the given opaque API handle. flutter::FlutterTizenTextureRegistrar* TextureRegistrarFromHandle( FlutterDesktopTextureRegistrarRef ref) { @@ -176,6 +181,12 @@ void FlutterDesktopEngineNotifyAppIsDetached(FlutterDesktopEngineRef engine) { EngineFromHandle(engine)->lifecycle_channel()->AppIsDetached(); } +void FlutterDesktopViewResize(FlutterDesktopViewRef view, + int32_t width, + int32_t height) { + ViewFromHandle(view)->Resize(width, height); +} + void FlutterDesktopRegisterViewFactory( FlutterDesktopPluginRegistrarRef registrar, const char* view_type, diff --git a/shell/platform/tizen/flutter_tizen_ecore.cc b/shell/platform/tizen/flutter_tizen_ecore.cc index 87ade651f9396..c6fecd069b1a8 100644 --- a/shell/platform/tizen/flutter_tizen_ecore.cc +++ b/shell/platform/tizen/flutter_tizen_ecore.cc @@ -63,9 +63,3 @@ void* FlutterDesktopViewGetEvasObject(FlutterDesktopViewRef view_ref) { FT_LOG(Warn) << "Not applicable!"; return nullptr; } - -void FlutterDesktopViewResize(FlutterDesktopViewRef view_ref, - int32_t width, - int32_t height) { - FT_LOG(Warn) << "Not applicable!"; -} diff --git a/shell/platform/tizen/flutter_tizen_elementary.cc b/shell/platform/tizen/flutter_tizen_elementary.cc index f72cbbca1df99..c0f12e8b6ff1a 100644 --- a/shell/platform/tizen/flutter_tizen_elementary.cc +++ b/shell/platform/tizen/flutter_tizen_elementary.cc @@ -86,11 +86,4 @@ void* FlutterDesktopViewGetEvasObject(FlutterDesktopViewRef view_ref) { return tizen_view->GetRenderTargetContainer(); } return nullptr; -} - -void FlutterDesktopViewResize(FlutterDesktopViewRef view_ref, - int32_t width, - int32_t height) { - auto* view = reinterpret_cast(view_ref); - view->OnResize(0, 0, width, height); -} +} \ No newline at end of file diff --git a/shell/platform/tizen/flutter_tizen_view.cc b/shell/platform/tizen/flutter_tizen_view.cc index 7096ef7127499..3359f7ffb4f66 100644 --- a/shell/platform/tizen/flutter_tizen_view.cc +++ b/shell/platform/tizen/flutter_tizen_view.cc @@ -103,6 +103,13 @@ void FlutterTizenView::DestroyRenderSurface() { } } +void FlutterTizenView::Resize(int32_t width, int32_t height) { + TizenGeometry geometry = tizen_view_->GetGeometry(); + geometry.width = width; + geometry.height = height; + tizen_view_->SetGeometry(geometry); +} + bool FlutterTizenView::OnMakeCurrent() { return engine_->renderer()->OnMakeCurrent(); } diff --git a/shell/platform/tizen/flutter_tizen_view.h b/shell/platform/tizen/flutter_tizen_view.h index 742a0c786a51c..1860541c23fa7 100644 --- a/shell/platform/tizen/flutter_tizen_view.h +++ b/shell/platform/tizen/flutter_tizen_view.h @@ -41,6 +41,8 @@ class FlutterTizenView : public TizenViewEventHandlerDelegate { // Destroys current rendering surface if one has been allocated. void DestroyRenderSurface(); + void Resize(int32_t width, int32_t height); + // Callbacks for clearing context, settings context and swapping buffers, // these are typically called on an engine-controlled (non-platform) thread. bool OnMakeCurrent(); diff --git a/shell/platform/tizen/tizen_view_elementary.cc b/shell/platform/tizen/tizen_view_elementary.cc index 7a5de8f5c1ac6..0f613cbf0f067 100644 --- a/shell/platform/tizen/tizen_view_elementary.cc +++ b/shell/platform/tizen/tizen_view_elementary.cc @@ -30,7 +30,9 @@ uint32_t EvasModifierToEcoreEventModifiers(const Evas_Modifier* evas_modifier) { return modifiers; } -void EvasObjectResize(Evas_Object* object, int32_t width, int32_t height) { +void EvasObjectResizeWithMinMaxHint(Evas_Object* object, + int32_t width, + int32_t height) { evas_object_resize(object, width, height); evas_object_size_hint_min_set(object, width, height); evas_object_size_hint_max_set(object, width, height); @@ -80,6 +82,7 @@ bool TizenViewElementary::CreateView() { } evas_object_size_hint_weight_set(container_, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + EvasObjectResizeWithMinMaxHint(container_, initial_width_, initial_height_); image_ = evas_object_image_filled_add(evas_object_evas_get(container_)); if (!image_) { @@ -87,8 +90,10 @@ bool TizenViewElementary::CreateView() { return false; } evas_object_size_hint_align_set(image_, EVAS_HINT_FILL, EVAS_HINT_FILL); + EvasObjectResizeWithMinMaxHint(image_, initial_width_, initial_height_); evas_object_image_size_set(image_, initial_width_, initial_height_); evas_object_image_alpha_set(image_, EINA_TRUE); + elm_table_pack(container_, image_, 0, 0, 1, 1); // FIXME: Button widgets can receive both mouse events and key events. But the @@ -106,8 +111,6 @@ bool TizenViewElementary::CreateView() { evas_object_color_set(event_layer_, 0, 0, 0, 0); elm_table_pack(container_, event_layer_, 0, 0, 1, 1); - SetGeometry(TizenGeometry{0, 0, initial_width_, initial_height_}); - return true; } @@ -123,10 +126,16 @@ void TizenViewElementary::RegisterEventHandlers() { auto* self = reinterpret_cast(data); if (self->view_) { if (self->container_ == object) { - int32_t width = 0, height = 0; - evas_object_geometry_get(object, nullptr, nullptr, &width, &height); + int32_t x = 0, y = 0, width = 0, height = 0; + evas_object_geometry_get(self->container_, &x, &y, &width, &height); + + evas_object_size_hint_min_set(self->container_, width, height); + evas_object_size_hint_max_set(self->container_, width, height); - self->view_->OnResize(0, 0, width, height); + EvasObjectResizeWithMinMaxHint(self->image_, width, height); + evas_object_move(self->image_, x, y); + + self->view_->OnResize(x, y, width, height); } } }; @@ -313,11 +322,7 @@ TizenGeometry TizenViewElementary::GetGeometry() { } void TizenViewElementary::SetGeometry(TizenGeometry geometry) { - EvasObjectResize(image_, geometry.width, geometry.height); - evas_object_move(image_, geometry.left, geometry.top); - evas_object_image_size_set(image_, geometry.width, geometry.height); - - EvasObjectResize(container_, geometry.width, geometry.height); + EvasObjectResizeWithMinMaxHint(container_, geometry.width, geometry.height); evas_object_move(container_, geometry.left, geometry.top); } diff --git a/shell/platform/tizen/tizen_window_ecore_wl2.cc b/shell/platform/tizen/tizen_window_ecore_wl2.cc index 8640cd44cd0c2..01a246dc50f18 100644 --- a/shell/platform/tizen/tizen_window_ecore_wl2.cc +++ b/shell/platform/tizen/tizen_window_ecore_wl2.cc @@ -216,6 +216,11 @@ void TizenWindowEcoreWl2::RegisterEventHandlers() { auto* configure_event = reinterpret_cast(event); if (configure_event->win == self->GetWindowId()) { + ecore_wl2_egl_window_resize_with_rotation( + self->ecore_wl2_egl_window_, configure_event->x, + configure_event->y, configure_event->w, configure_event->h, + self->GetRotation()); + self->view_->OnResize(configure_event->x, configure_event->y, configure_event->w, configure_event->h); return ECORE_CALLBACK_DONE; @@ -394,10 +399,6 @@ void TizenWindowEcoreWl2::SetGeometry(TizenGeometry geometry) { // only after calling `ecore_wl2_window_position_set`. Call a more appropriate // API that flushes geometry settings to the compositor. ecore_wl2_window_position_set(ecore_wl2_window_, geometry.left, geometry.top); - - ecore_wl2_egl_window_resize_with_rotation( - ecore_wl2_egl_window_, geometry.left, geometry.top, geometry.width, - geometry.height, GetRotation()); } TizenGeometry TizenWindowEcoreWl2::GetScreenGeometry() { diff --git a/shell/platform/tizen/tizen_window_elementary.cc b/shell/platform/tizen/tizen_window_elementary.cc index 86ec1e4c92a16..4b9e286625b50 100644 --- a/shell/platform/tizen/tizen_window_elementary.cc +++ b/shell/platform/tizen/tizen_window_elementary.cc @@ -67,7 +67,7 @@ bool TizenWindowElementary::CreateWindow() { // Please uncomment below and enable setWindowGeometry of window channel when // Tizen 5.5 or later was chosen as default. - // elm_win_aux_hint_add(elm_win_, "wm.policy.win.user.geometry", "1"); + elm_win_aux_hint_add(elm_win_, "wm.policy.win.user.geometry", "1"); Ecore_Evas* ecore_evas = ecore_evas_ecore_evas_get(evas_object_evas_get(elm_win_)); @@ -155,8 +155,11 @@ void TizenWindowElementary::RegisterEventHandlers() { auto* self = reinterpret_cast(data); if (self->view_) { if (self->elm_win_ == object) { - int32_t width = 0, height = 0; - evas_object_geometry_get(object, nullptr, nullptr, &width, &height); + int32_t x = 0, y = 0, width = 0, height = 0; + evas_object_geometry_get(object, &x, &y, &width, &height); + + evas_object_resize(self->image_, width, height); + evas_object_move(self->image_, x, y); self->view_->OnResize(0, 0, width, height); } @@ -332,9 +335,6 @@ TizenGeometry TizenWindowElementary::GetGeometry() { void TizenWindowElementary::SetGeometry(TizenGeometry geometry) { evas_object_resize(elm_win_, geometry.width, geometry.height); evas_object_move(elm_win_, geometry.left, geometry.top); - - evas_object_resize(image_, geometry.width, geometry.height); - evas_object_move(image_, geometry.left, geometry.top); } TizenGeometry TizenWindowElementary::GetScreenGeometry() { From 2b5fa337dfe05d2cd40d052d407f23fae140dcd8 Mon Sep 17 00:00:00 2001 From: Boram Bae Date: Tue, 5 Jul 2022 13:26:33 +0900 Subject: [PATCH 06/10] Rename to |view_delegate_| Signed-off-by: Boram Bae --- shell/platform/tizen/tizen_view_base.h | 6 +- shell/platform/tizen/tizen_view_elementary.cc | 39 ++++---- .../platform/tizen/tizen_window_ecore_wl2.cc | 60 +++++++------ .../platform/tizen/tizen_window_elementary.cc | 89 ++++++++++--------- 4 files changed, 100 insertions(+), 94 deletions(-) diff --git a/shell/platform/tizen/tizen_view_base.h b/shell/platform/tizen/tizen_view_base.h index 0a47a91b8837c..f5162e4a0e489 100644 --- a/shell/platform/tizen/tizen_view_base.h +++ b/shell/platform/tizen/tizen_view_base.h @@ -45,7 +45,9 @@ class TizenViewBase { // Sets the delegate used to communicate state changes from render target to // view such as key presses, mouse position updates etc. - void SetView(TizenViewEventHandlerDelegate* view) { view_ = view; } + void SetView(TizenViewEventHandlerDelegate* view_delegate) { + view_delegate_ = view_delegate; + } virtual void Show() = 0; @@ -56,7 +58,7 @@ class TizenViewBase { } protected: - TizenViewEventHandlerDelegate* view_ = nullptr; + TizenViewEventHandlerDelegate* view_delegate_ = nullptr; // The Tizen input method context. nullptr if not set. std::unique_ptr input_method_context_; diff --git a/shell/platform/tizen/tizen_view_elementary.cc b/shell/platform/tizen/tizen_view_elementary.cc index 0f613cbf0f067..cf8053c44317d 100644 --- a/shell/platform/tizen/tizen_view_elementary.cc +++ b/shell/platform/tizen/tizen_view_elementary.cc @@ -7,8 +7,8 @@ #include #include -#include "flutter/shell/platform/tizen/flutter_tizen_view.h" #include "flutter/shell/platform/tizen/logger.h" +#include "flutter/shell/platform/tizen/tizen_view_event_handler_delegate.h" namespace { @@ -124,7 +124,7 @@ void TizenViewElementary::RegisterEventHandlers() { evas_object_callbacks_[EVAS_CALLBACK_RESIZE] = [](void* data, Evas* evas, Evas_Object* object, void* event_info) { auto* self = reinterpret_cast(data); - if (self->view_) { + if (self->view_delegate_) { if (self->container_ == object) { int32_t x = 0, y = 0, width = 0, height = 0; evas_object_geometry_get(self->container_, &x, &y, &width, &height); @@ -135,7 +135,7 @@ void TizenViewElementary::RegisterEventHandlers() { EvasObjectResizeWithMinMaxHint(self->image_, width, height); evas_object_move(self->image_, x, y); - self->view_->OnResize(x, y, width, height); + self->view_delegate_->OnResize(x, y, width, height); } } }; @@ -146,12 +146,12 @@ void TizenViewElementary::RegisterEventHandlers() { evas_object_callbacks_[EVAS_CALLBACK_MOUSE_DOWN] = [](void* data, Evas* evas, Evas_Object* object, void* event_info) { auto* self = reinterpret_cast(data); - if (self->view_) { + if (self->view_delegate_) { if (self->event_layer_ == object) { auto* mouse_event = reinterpret_cast(event_info); TizenGeometry geometry = self->GetGeometry(); - self->view_->OnPointerDown( + self->view_delegate_->OnPointerDown( mouse_event->canvas.x - geometry.left, mouse_event->canvas.y - geometry.top, mouse_event->timestamp, kFlutterPointerDeviceKindTouch, mouse_event->button); @@ -166,7 +166,7 @@ void TizenViewElementary::RegisterEventHandlers() { Evas_Object* object, void* event_info) { auto* self = reinterpret_cast(data); - if (self->view_) { + if (self->view_delegate_) { if (self->event_layer_ == object) { auto* mouse_event = reinterpret_cast(event_info); if (self->scroll_hold_) { @@ -174,7 +174,7 @@ void TizenViewElementary::RegisterEventHandlers() { self->scroll_hold_ = false; } TizenGeometry geometry = self->GetGeometry(); - self->view_->OnPointerUp( + self->view_delegate_->OnPointerUp( mouse_event->canvas.x - geometry.left, mouse_event->canvas.y - geometry.top, mouse_event->timestamp, kFlutterPointerDeviceKindTouch, mouse_event->button); @@ -189,7 +189,7 @@ void TizenViewElementary::RegisterEventHandlers() { Evas_Object* object, void* event_info) { auto* self = reinterpret_cast(data); - if (self->view_) { + if (self->view_delegate_) { if (self->event_layer_ == object) { auto* mouse_event = reinterpret_cast(event_info); @@ -200,7 +200,7 @@ void TizenViewElementary::RegisterEventHandlers() { self->scroll_hold_ = true; } TizenGeometry geometry = self->GetGeometry(); - self->view_->OnPointerMove( + self->view_delegate_->OnPointerMove( mouse_event->cur.canvas.x - geometry.left, mouse_event->cur.canvas.y - geometry.top, mouse_event->timestamp, kFlutterPointerDeviceKindTouch, mouse_event->buttons); @@ -214,7 +214,7 @@ void TizenViewElementary::RegisterEventHandlers() { evas_object_callbacks_[EVAS_CALLBACK_MOUSE_WHEEL] = [](void* data, Evas* evas, Evas_Object* object, void* event_info) { auto* self = reinterpret_cast(data); - if (self->view_) { + if (self->view_delegate_) { if (self->event_layer_ == object) { auto* wheel_event = reinterpret_cast(event_info); @@ -227,7 +227,7 @@ void TizenViewElementary::RegisterEventHandlers() { delta_x += wheel_event->z; } TizenGeometry geometry = self->GetGeometry(); - self->view_->OnScroll( + self->view_delegate_->OnScroll( wheel_event->x - geometry.left, wheel_event->y - geometry.top, delta_x, delta_y, kScrollOffsetMultiplier, wheel_event->timestamp, kFlutterPointerDeviceKindTouch, 0); @@ -242,7 +242,7 @@ void TizenViewElementary::RegisterEventHandlers() { Evas_Object* object, void* event_info) { auto* self = reinterpret_cast(data); - if (self->view_) { + if (self->view_delegate_) { if (self->event_layer_ == object) { auto* key_event = reinterpret_cast(event_info); bool handled = false; @@ -253,7 +253,7 @@ void TizenViewElementary::RegisterEventHandlers() { self->input_method_context_->HandleEvasEventKeyDown(key_event); } if (!handled) { - self->view_->OnKey( + self->view_delegate_->OnKey( key_event->key, key_event->string, key_event->compose, EvasModifierToEcoreEventModifiers(key_event->modifiers), key_event->keycode, true); @@ -268,7 +268,7 @@ void TizenViewElementary::RegisterEventHandlers() { evas_object_callbacks_[EVAS_CALLBACK_KEY_UP] = [](void* data, Evas* evas, Evas_Object* object, void* event_info) { auto* self = reinterpret_cast(data); - if (self->view_) { + if (self->view_delegate_) { if (self->event_layer_ == object) { auto* key_event = reinterpret_cast(event_info); bool handled = false; @@ -279,7 +279,7 @@ void TizenViewElementary::RegisterEventHandlers() { self->input_method_context_->HandleEvasEventKeyUp(key_event); } if (!handled) { - self->view_->OnKey( + self->view_delegate_->OnKey( key_event->key, key_event->string, key_event->compose, EvasModifierToEcoreEventModifiers(key_event->modifiers), key_event->keycode, false); @@ -351,14 +351,15 @@ void TizenViewElementary::PrepareInputMethod() { // Set input method callbacks. input_method_context_->SetOnPreeditStart( - [this]() { view_->OnComposeBegin(); }); + [this]() { view_delegate_->OnComposeBegin(); }); input_method_context_->SetOnPreeditChanged( [this](std::string str, int cursor_pos) { - view_->OnComposeChange(str, cursor_pos); + view_delegate_->OnComposeChange(str, cursor_pos); }); - input_method_context_->SetOnPreeditEnd([this]() { view_->OnComposeEnd(); }); + input_method_context_->SetOnPreeditEnd( + [this]() { view_delegate_->OnComposeEnd(); }); input_method_context_->SetOnCommit( - [this](std::string str) { view_->OnCommit(str); }); + [this](std::string str) { view_delegate_->OnCommit(str); }); } } // namespace flutter diff --git a/shell/platform/tizen/tizen_window_ecore_wl2.cc b/shell/platform/tizen/tizen_window_ecore_wl2.cc index 01a246dc50f18..06964a9546ec4 100644 --- a/shell/platform/tizen/tizen_window_ecore_wl2.cc +++ b/shell/platform/tizen/tizen_window_ecore_wl2.cc @@ -8,8 +8,8 @@ #include #endif -#include "flutter/shell/platform/tizen/flutter_tizen_view.h" #include "flutter/shell/platform/tizen/logger.h" +#include "flutter/shell/platform/tizen/tizen_view_event_handler_delegate.h" namespace { @@ -191,12 +191,12 @@ void TizenWindowEcoreWl2::RegisterEventHandlers() { ECORE_WL2_EVENT_WINDOW_ROTATE, [](void* data, int type, void* event) -> Eina_Bool { auto* self = reinterpret_cast(data); - if (self->view_) { + if (self->view_delegate_) { auto* rotation_event = reinterpret_cast(event); if (rotation_event->win == self->GetWindowId()) { int32_t degree = rotation_event->angle; - self->view_->OnRotate(degree); + self->view_delegate_->OnRotate(degree); TizenGeometry geometry = self->GetGeometry(); ecore_wl2_window_rotation_change_done_send( self->ecore_wl2_window_, rotation_event->rotation, @@ -212,7 +212,7 @@ void TizenWindowEcoreWl2::RegisterEventHandlers() { ECORE_WL2_EVENT_WINDOW_CONFIGURE, [](void* data, int type, void* event) -> Eina_Bool { auto* self = reinterpret_cast(data); - if (self->view_) { + if (self->view_delegate_) { auto* configure_event = reinterpret_cast(event); if (configure_event->win == self->GetWindowId()) { @@ -221,8 +221,9 @@ void TizenWindowEcoreWl2::RegisterEventHandlers() { configure_event->y, configure_event->w, configure_event->h, self->GetRotation()); - self->view_->OnResize(configure_event->x, configure_event->y, - configure_event->w, configure_event->h); + self->view_delegate_->OnResize( + configure_event->x, configure_event->y, configure_event->w, + configure_event->h); return ECORE_CALLBACK_DONE; } } @@ -234,11 +235,11 @@ void TizenWindowEcoreWl2::RegisterEventHandlers() { ECORE_EVENT_MOUSE_BUTTON_DOWN, [](void* data, int type, void* event) -> Eina_Bool { auto* self = reinterpret_cast(data); - if (self->view_) { + if (self->view_delegate_) { auto* button_event = reinterpret_cast(event); if (button_event->window == self->GetWindowId()) { - self->view_->OnPointerDown( + self->view_delegate_->OnPointerDown( button_event->x, button_event->y, button_event->timestamp, kFlutterPointerDeviceKindTouch, button_event->multi.device); return ECORE_CALLBACK_DONE; @@ -252,11 +253,11 @@ void TizenWindowEcoreWl2::RegisterEventHandlers() { ECORE_EVENT_MOUSE_BUTTON_UP, [](void* data, int type, void* event) -> Eina_Bool { auto* self = reinterpret_cast(data); - if (self->view_) { + if (self->view_delegate_) { auto* button_event = reinterpret_cast(event); if (button_event->window == self->GetWindowId()) { - self->view_->OnPointerUp( + self->view_delegate_->OnPointerUp( button_event->x, button_event->y, button_event->timestamp, kFlutterPointerDeviceKindTouch, button_event->multi.device); return ECORE_CALLBACK_DONE; @@ -270,10 +271,10 @@ void TizenWindowEcoreWl2::RegisterEventHandlers() { ECORE_EVENT_MOUSE_MOVE, [](void* data, int type, void* event) -> Eina_Bool { auto* self = reinterpret_cast(data); - if (self->view_) { + if (self->view_delegate_) { auto* move_event = reinterpret_cast(event); if (move_event->window == self->GetWindowId()) { - self->view_->OnPointerMove( + self->view_delegate_->OnPointerMove( move_event->x, move_event->y, move_event->timestamp, kFlutterPointerDeviceKindTouch, move_event->multi.device); return ECORE_CALLBACK_DONE; @@ -287,7 +288,7 @@ void TizenWindowEcoreWl2::RegisterEventHandlers() { ECORE_EVENT_MOUSE_WHEEL, [](void* data, int type, void* event) -> Eina_Bool { auto* self = reinterpret_cast(data); - if (self->view_) { + if (self->view_delegate_) { auto* wheel_event = reinterpret_cast(event); if (wheel_event->window == self->GetWindowId()) { double delta_x = 0.0; @@ -299,10 +300,10 @@ void TizenWindowEcoreWl2::RegisterEventHandlers() { delta_x += wheel_event->z; } - self->view_->OnScroll(wheel_event->x, wheel_event->y, delta_x, - delta_y, kScrollOffsetMultiplier, - wheel_event->timestamp, - kFlutterPointerDeviceKindTouch, 0); + self->view_delegate_->OnScroll( + wheel_event->x, wheel_event->y, delta_x, delta_y, + kScrollOffsetMultiplier, wheel_event->timestamp, + kFlutterPointerDeviceKindTouch, 0); return ECORE_CALLBACK_DONE; } } @@ -314,7 +315,7 @@ void TizenWindowEcoreWl2::RegisterEventHandlers() { ECORE_EVENT_KEY_DOWN, [](void* data, int type, void* event) -> Eina_Bool { auto* self = reinterpret_cast(data); - if (self->view_) { + if (self->view_delegate_) { auto* key_event = reinterpret_cast(event); if (key_event->window == self->GetWindowId()) { bool handled = false; @@ -323,9 +324,9 @@ void TizenWindowEcoreWl2::RegisterEventHandlers() { key_event, true); } if (!handled) { - self->view_->OnKey(key_event->key, key_event->string, - key_event->compose, key_event->modifiers, - key_event->keycode, true); + self->view_delegate_->OnKey( + key_event->key, key_event->string, key_event->compose, + key_event->modifiers, key_event->keycode, true); } return ECORE_CALLBACK_DONE; } @@ -338,7 +339,7 @@ void TizenWindowEcoreWl2::RegisterEventHandlers() { ECORE_EVENT_KEY_UP, [](void* data, int type, void* event) -> Eina_Bool { auto* self = reinterpret_cast(data); - if (self->view_) { + if (self->view_delegate_) { auto* key_event = reinterpret_cast(event); if (key_event->window == self->GetWindowId()) { bool handled = false; @@ -347,9 +348,9 @@ void TizenWindowEcoreWl2::RegisterEventHandlers() { key_event, false); } if (!handled) { - self->view_->OnKey(key_event->key, key_event->string, - key_event->compose, key_event->modifiers, - key_event->keycode, false); + self->view_delegate_->OnKey( + key_event->key, key_event->string, key_event->compose, + key_event->modifiers, key_event->keycode, false); } return ECORE_CALLBACK_DONE; } @@ -479,14 +480,15 @@ void TizenWindowEcoreWl2::PrepareInputMethod() { // Set input method callbacks. input_method_context_->SetOnPreeditStart( - [this]() { view_->OnComposeBegin(); }); + [this]() { view_delegate_->OnComposeBegin(); }); input_method_context_->SetOnPreeditChanged( [this](std::string str, int cursor_pos) { - view_->OnComposeChange(str, cursor_pos); + view_delegate_->OnComposeChange(str, cursor_pos); }); - input_method_context_->SetOnPreeditEnd([this]() { view_->OnComposeEnd(); }); + input_method_context_->SetOnPreeditEnd( + [this]() { view_delegate_->OnComposeEnd(); }); input_method_context_->SetOnCommit( - [this](std::string str) { view_->OnCommit(str); }); + [this](std::string str) { view_delegate_->OnCommit(str); }); } } // namespace flutter diff --git a/shell/platform/tizen/tizen_window_elementary.cc b/shell/platform/tizen/tizen_window_elementary.cc index 4b9e286625b50..9a4c29057191d 100644 --- a/shell/platform/tizen/tizen_window_elementary.cc +++ b/shell/platform/tizen/tizen_window_elementary.cc @@ -7,8 +7,8 @@ #include #include -#include "flutter/shell/platform/tizen/flutter_tizen_view.h" #include "flutter/shell/platform/tizen/logger.h" +#include "flutter/shell/platform/tizen/tizen_view_event_handler_delegate.h" namespace { @@ -138,11 +138,11 @@ void TizenWindowElementary::RegisterEventHandlers() { rotation_changed_callback_ = [](void* data, Evas_Object* object, void* event_info) { auto* self = reinterpret_cast(data); - if (self->view_) { + if (self->view_delegate_) { if (self->elm_win_ == object) { // FIXME FT_UNIMPLEMENTED(); - self->view_->OnRotate(self->GetRotation()); + self->view_delegate_->OnRotate(self->GetRotation()); elm_win_wm_rotation_manual_rotation_done(self->elm_win_); } } @@ -153,7 +153,7 @@ void TizenWindowElementary::RegisterEventHandlers() { evas_object_callbacks_[EVAS_CALLBACK_RESIZE] = [](void* data, Evas* evas, Evas_Object* object, void* event_info) { auto* self = reinterpret_cast(data); - if (self->view_) { + if (self->view_delegate_) { if (self->elm_win_ == object) { int32_t x = 0, y = 0, width = 0, height = 0; evas_object_geometry_get(object, &x, &y, &width, &height); @@ -161,7 +161,7 @@ void TizenWindowElementary::RegisterEventHandlers() { evas_object_resize(self->image_, width, height); evas_object_move(self->image_, x, y); - self->view_->OnResize(0, 0, width, height); + self->view_delegate_->OnResize(0, 0, width, height); } } }; @@ -172,11 +172,11 @@ void TizenWindowElementary::RegisterEventHandlers() { evas_object_callbacks_[EVAS_CALLBACK_MOUSE_DOWN] = [](void* data, Evas* evas, Evas_Object* object, void* event_info) { auto* self = reinterpret_cast(data); - if (self->view_) { + if (self->view_delegate_) { if (self->elm_win_ == object) { auto* mouse_event = reinterpret_cast(event_info); - self->view_->OnPointerDown( + self->view_delegate_->OnPointerDown( mouse_event->canvas.x, mouse_event->canvas.y, mouse_event->timestamp, kFlutterPointerDeviceKindTouch, mouse_event->button); @@ -191,13 +191,13 @@ void TizenWindowElementary::RegisterEventHandlers() { Evas_Object* object, void* event_info) { auto* self = reinterpret_cast(data); - if (self->view_) { + if (self->view_delegate_) { if (self->elm_win_ == object) { auto* mouse_event = reinterpret_cast(event_info); - self->view_->OnPointerUp(mouse_event->canvas.x, mouse_event->canvas.y, - mouse_event->timestamp, - kFlutterPointerDeviceKindTouch, - mouse_event->button); + self->view_delegate_->OnPointerUp( + mouse_event->canvas.x, mouse_event->canvas.y, + mouse_event->timestamp, kFlutterPointerDeviceKindTouch, + mouse_event->button); } } }; @@ -208,11 +208,11 @@ void TizenWindowElementary::RegisterEventHandlers() { evas_object_callbacks_[EVAS_CALLBACK_MOUSE_MOVE] = [](void* data, Evas* evas, Evas_Object* object, void* event_info) { auto* self = reinterpret_cast(data); - if (self->view_) { + if (self->view_delegate_) { if (self->elm_win_ == object) { auto* mouse_event = reinterpret_cast(event_info); - self->view_->OnPointerMove( + self->view_delegate_->OnPointerMove( mouse_event->cur.canvas.x, mouse_event->cur.canvas.y, mouse_event->timestamp, kFlutterPointerDeviceKindTouch, mouse_event->buttons); @@ -223,29 +223,29 @@ void TizenWindowElementary::RegisterEventHandlers() { elm_win_, EVAS_CALLBACK_MOUSE_MOVE, evas_object_callbacks_[EVAS_CALLBACK_MOUSE_MOVE], this); - evas_object_callbacks_[EVAS_CALLBACK_MOUSE_WHEEL] = [](void* data, Evas* evas, - Evas_Object* object, - void* event_info) { - auto* self = reinterpret_cast(data); - if (self->view_) { - if (self->elm_win_ == object) { - auto* wheel_event = - reinterpret_cast(event_info); - double delta_x = 0.0; - double delta_y = 0.0; - - if (wheel_event->direction == kScrollDirectionVertical) { - delta_y += wheel_event->z; - } else if (wheel_event->direction == kScrollDirectionHorizontal) { - delta_x += wheel_event->z; - } + evas_object_callbacks_[EVAS_CALLBACK_MOUSE_WHEEL] = + [](void* data, Evas* evas, Evas_Object* object, void* event_info) { + auto* self = reinterpret_cast(data); + if (self->view_delegate_) { + if (self->elm_win_ == object) { + auto* wheel_event = + reinterpret_cast(event_info); + double delta_x = 0.0; + double delta_y = 0.0; + + if (wheel_event->direction == kScrollDirectionVertical) { + delta_y += wheel_event->z; + } else if (wheel_event->direction == kScrollDirectionHorizontal) { + delta_x += wheel_event->z; + } - self->view_->OnScroll(wheel_event->x, wheel_event->y, delta_x, delta_y, - kScrollOffsetMultiplier, wheel_event->timestamp, - kFlutterPointerDeviceKindTouch, 0); - } - } - }; + self->view_delegate_->OnScroll( + wheel_event->x, wheel_event->y, delta_x, delta_y, + kScrollOffsetMultiplier, wheel_event->timestamp, + kFlutterPointerDeviceKindTouch, 0); + } + } + }; evas_object_event_callback_add( elm_win_, EVAS_CALLBACK_MOUSE_WHEEL, evas_object_callbacks_[EVAS_CALLBACK_MOUSE_WHEEL], this); @@ -254,7 +254,7 @@ void TizenWindowElementary::RegisterEventHandlers() { Evas_Object* object, void* event_info) { auto* self = reinterpret_cast(data); - if (self->view_) { + if (self->view_delegate_) { if (self->elm_win_ == object) { auto* key_event = reinterpret_cast(event_info); bool handled = false; @@ -263,7 +263,7 @@ void TizenWindowElementary::RegisterEventHandlers() { self->input_method_context_->HandleEvasEventKeyDown(key_event); } if (!handled) { - self->view_->OnKey( + self->view_delegate_->OnKey( key_event->key, key_event->string, key_event->compose, EvasModifierToEcoreEventModifiers(key_event->modifiers), key_event->keycode, true); @@ -278,7 +278,7 @@ void TizenWindowElementary::RegisterEventHandlers() { evas_object_callbacks_[EVAS_CALLBACK_KEY_UP] = [](void* data, Evas* evas, Evas_Object* object, void* event_info) { auto* self = reinterpret_cast(data); - if (self->view_) { + if (self->view_delegate_) { if (self->elm_win_ == object) { auto* key_event = reinterpret_cast(event_info); bool handled = false; @@ -287,7 +287,7 @@ void TizenWindowElementary::RegisterEventHandlers() { self->input_method_context_->HandleEvasEventKeyUp(key_event); } if (!handled) { - self->view_->OnKey( + self->view_delegate_->OnKey( key_event->key, key_event->string, key_event->compose, EvasModifierToEcoreEventModifiers(key_event->modifiers), key_event->keycode, false); @@ -386,14 +386,15 @@ void TizenWindowElementary::PrepareInputMethod() { // Set input method callbacks. input_method_context_->SetOnPreeditStart( - [this]() { view_->OnComposeBegin(); }); + [this]() { view_delegate_->OnComposeBegin(); }); input_method_context_->SetOnPreeditChanged( [this](std::string str, int cursor_pos) { - view_->OnComposeChange(str, cursor_pos); + view_delegate_->OnComposeChange(str, cursor_pos); }); - input_method_context_->SetOnPreeditEnd([this]() { view_->OnComposeEnd(); }); + input_method_context_->SetOnPreeditEnd( + [this]() { view_delegate_->OnComposeEnd(); }); input_method_context_->SetOnCommit( - [this](std::string str) { view_->OnCommit(str); }); + [this](std::string str) { view_delegate_->OnCommit(str); }); } } // namespace flutter From 1c466343ff98fff574e911c6f64190058ff6cf9e Mon Sep 17 00:00:00 2001 From: Boram Bae Date: Tue, 5 Jul 2022 14:08:54 +0900 Subject: [PATCH 07/10] Revert unintended modification Signed-off-by: Boram Bae --- shell/platform/tizen/flutter_tizen_elementary.cc | 2 +- shell/platform/tizen/tizen_window_elementary.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/shell/platform/tizen/flutter_tizen_elementary.cc b/shell/platform/tizen/flutter_tizen_elementary.cc index c0f12e8b6ff1a..ec408aec5ff93 100644 --- a/shell/platform/tizen/flutter_tizen_elementary.cc +++ b/shell/platform/tizen/flutter_tizen_elementary.cc @@ -86,4 +86,4 @@ void* FlutterDesktopViewGetEvasObject(FlutterDesktopViewRef view_ref) { return tizen_view->GetRenderTargetContainer(); } return nullptr; -} \ No newline at end of file +} diff --git a/shell/platform/tizen/tizen_window_elementary.cc b/shell/platform/tizen/tizen_window_elementary.cc index 9a4c29057191d..a5c9e4055a815 100644 --- a/shell/platform/tizen/tizen_window_elementary.cc +++ b/shell/platform/tizen/tizen_window_elementary.cc @@ -67,7 +67,7 @@ bool TizenWindowElementary::CreateWindow() { // Please uncomment below and enable setWindowGeometry of window channel when // Tizen 5.5 or later was chosen as default. - elm_win_aux_hint_add(elm_win_, "wm.policy.win.user.geometry", "1"); + // elm_win_aux_hint_add(elm_win_, "wm.policy.win.user.geometry", "1"); Ecore_Evas* ecore_evas = ecore_evas_ecore_evas_get(evas_object_evas_get(elm_win_)); From 3a219ee596a04baa72abb3612479baf57b980421 Mon Sep 17 00:00:00 2001 From: Boram Bae Date: Tue, 5 Jul 2022 15:10:49 +0900 Subject: [PATCH 08/10] Remove forward declaration Signed-off-by: Boram Bae --- shell/platform/tizen/tizen_view_base.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/shell/platform/tizen/tizen_view_base.h b/shell/platform/tizen/tizen_view_base.h index f5162e4a0e489..a66e3ae8d6d60 100644 --- a/shell/platform/tizen/tizen_view_base.h +++ b/shell/platform/tizen/tizen_view_base.h @@ -15,8 +15,6 @@ namespace flutter { -class TizenViewEventHandlerDelegate; - struct TizenGeometry { int32_t left = 0, top = 0, width = 0, height = 0; }; From 369d32f674efeb4963e799e7d98766e533086c7c Mon Sep 17 00:00:00 2001 From: Boram Bae Date: Tue, 5 Jul 2022 18:16:49 +0900 Subject: [PATCH 09/10] Don't use position of container on resize callback Signed-off-by: Boram Bae --- shell/platform/tizen/tizen_view_elementary.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/shell/platform/tizen/tizen_view_elementary.cc b/shell/platform/tizen/tizen_view_elementary.cc index cf8053c44317d..9602867a4f0c5 100644 --- a/shell/platform/tizen/tizen_view_elementary.cc +++ b/shell/platform/tizen/tizen_view_elementary.cc @@ -126,16 +126,16 @@ void TizenViewElementary::RegisterEventHandlers() { auto* self = reinterpret_cast(data); if (self->view_delegate_) { if (self->container_ == object) { - int32_t x = 0, y = 0, width = 0, height = 0; - evas_object_geometry_get(self->container_, &x, &y, &width, &height); + int32_t width = 0, height = 0; + evas_object_geometry_get(self->container_, nullptr, nullptr, &width, + &height); evas_object_size_hint_min_set(self->container_, width, height); evas_object_size_hint_max_set(self->container_, width, height); EvasObjectResizeWithMinMaxHint(self->image_, width, height); - evas_object_move(self->image_, x, y); - self->view_delegate_->OnResize(x, y, width, height); + self->view_delegate_->OnResize(0, 0, width, height); } } }; From 02e1d4dae4b56932cbd8eb672c88a5e19fa64208 Mon Sep 17 00:00:00 2001 From: Boram Bae Date: Mon, 11 Jul 2022 10:13:26 +0900 Subject: [PATCH 10/10] Update based on review Signed-off-by: Boram Bae --- shell/platform/tizen/tizen_renderer_egl.cc | 1 + shell/platform/tizen/tizen_view_elementary.cc | 6 +++--- shell/platform/tizen/tizen_view_event_handler_delegate.h | 1 - 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/shell/platform/tizen/tizen_renderer_egl.cc b/shell/platform/tizen/tizen_renderer_egl.cc index 1680012520dc9..0cf59eca14791 100644 --- a/shell/platform/tizen/tizen_renderer_egl.cc +++ b/shell/platform/tizen/tizen_renderer_egl.cc @@ -60,6 +60,7 @@ bool TizenRendererEgl::CreateSurface(void* render_target, { const EGLint attribs[] = {EGL_NONE}; + auto* egl_window = static_cast(ecore_wl2_egl_window_native_get( static_cast(render_target))); diff --git a/shell/platform/tizen/tizen_view_elementary.cc b/shell/platform/tizen/tizen_view_elementary.cc index 9602867a4f0c5..2c2ab5c973bdb 100644 --- a/shell/platform/tizen/tizen_view_elementary.cc +++ b/shell/platform/tizen/tizen_view_elementary.cc @@ -316,7 +316,7 @@ void TizenViewElementary::UnregisterEventHandlers() { TizenGeometry TizenViewElementary::GetGeometry() { TizenGeometry result; - evas_object_geometry_get(image_, &result.left, &result.top, &result.width, + evas_object_geometry_get(container_, &result.left, &result.top, &result.width, &result.height); return result; } @@ -328,7 +328,7 @@ void TizenViewElementary::SetGeometry(TizenGeometry geometry) { int32_t TizenViewElementary::GetDpi() { Ecore_Evas* ecore_evas = - ecore_evas_ecore_evas_get(evas_object_evas_get(image_)); + ecore_evas_ecore_evas_get(evas_object_evas_get(container_)); int32_t xdpi, ydpi; ecore_evas_screen_dpi_get(ecore_evas, &xdpi, &ydpi); return xdpi; @@ -336,7 +336,7 @@ int32_t TizenViewElementary::GetDpi() { uintptr_t TizenViewElementary::GetWindowId() { return ecore_evas_window_get( - ecore_evas_ecore_evas_get(evas_object_evas_get(image_))); + ecore_evas_ecore_evas_get(evas_object_evas_get(container_))); } void TizenViewElementary::Show() { diff --git a/shell/platform/tizen/tizen_view_event_handler_delegate.h b/shell/platform/tizen/tizen_view_event_handler_delegate.h index bca6de9d9c1ed..1bf668b65dbac 100644 --- a/shell/platform/tizen/tizen_view_event_handler_delegate.h +++ b/shell/platform/tizen/tizen_view_event_handler_delegate.h @@ -6,7 +6,6 @@ #ifndef EMBEDDER_TIZEN_VIEW_EVENT_HANDLER_DELEGATE_H_ #define EMBEDDER_TIZEN_VIEW_EVENT_HANDLER_DELEGATE_H_ -#include #include #include "flutter/shell/platform/embedder/embedder.h"