X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fweb-view%2Fweb-view-impl.h;h=fc5d06a1b2bad24073648da0e1ed10f7be39cf1e;hb=HEAD;hp=5cf24e549be76a309310c5e7eaec5ae958ee76b4;hpb=a3cf869a1aaa6cc8c83888817543f1d391507aea;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/web-view/web-view-impl.h b/dali-toolkit/internal/controls/web-view/web-view-impl.h old mode 100755 new mode 100644 index 5cf24e5..6415a8b --- a/dali-toolkit/internal/controls/web-view/web-view-impl.h +++ b/dali-toolkit/internal/controls/web-view/web-view-impl.h @@ -2,7 +2,7 @@ #define DALI_TOOLKIT_INTERNAL_WEB_VIEW_H /* - * Copyright (c) 2023 Samsung Electronics Co., Ltd. + * Copyright (c) 2024 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -472,6 +472,11 @@ private: // From Control */ void OnSceneConnection(int depth) override; + /** + * @copydoc Toolkit::Control::OnSceneDisconnection() + */ + void OnSceneDisconnection() override; + private: // Undefined WebView(const WebView& webView); @@ -678,6 +683,13 @@ private: void OnVisibilityChanged(Actor actor, bool isVisible, Dali::DevelActor::VisibilityChange::Type type); /** + * @brief Callback when the visibility of the window is changed. + * @param[in] window The window whose visibility has changed + * @param[in] visible Whether the window is now visible or not + */ + void OnWindowVisibilityChanged(Window window, bool visible); + + /** * @brief callback for screen shot captured. * @param[in] pixel Pixel data of screen shot. */ @@ -691,6 +703,11 @@ private: */ void SetDisplayArea(const Dali::Rect& displayArea); + /** + * @brief Apply self visibility state and send visibility chagend to web engine. + */ + void ApplyVisibilityCheck(); + protected: class WebViewAccessible : public DevelControl::ControlAccessible { @@ -727,6 +744,19 @@ private: uint32_t mLastRenderedNativeImageWidth; uint32_t mLastRenderedNativeImageHeight; + enum WebViewVisibleStateFlag + { + NONE = 0, + SCENE_ON = 1 << 0, + WINDOW_SHOW = 1 << 1, + SELF_SHOW = 1 << 2, + PARENT_SHOW = 1 << 3, + + VISIBLE = SCENE_ON | WINDOW_SHOW | SELF_SHOW | PARENT_SHOW, + }; + uint32_t mWebViewVisibleState{WebViewVisibleStateFlag::NONE}; /// Flag of web view visible. + WeakHandle mPlacementWindow; + std::unique_ptr mWebSettings; std::unique_ptr mWebBackForwardList;