1e0dac50fSopenharmony_ci/* 2e0dac50fSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 3e0dac50fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4e0dac50fSopenharmony_ci * you may not use this file except in compliance with the License. 5e0dac50fSopenharmony_ci * You may obtain a copy of the License at 6e0dac50fSopenharmony_ci * 7e0dac50fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8e0dac50fSopenharmony_ci * 9e0dac50fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10e0dac50fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11e0dac50fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12e0dac50fSopenharmony_ci * See the License for the specific language governing permissions and 13e0dac50fSopenharmony_ci * limitations under the License. 14e0dac50fSopenharmony_ci */ 15e0dac50fSopenharmony_ci 16e0dac50fSopenharmony_ci#ifndef OHOS_ROSEN_WINDOW_SCENE_SESSION_IMPL_H 17e0dac50fSopenharmony_ci#define OHOS_ROSEN_WINDOW_SCENE_SESSION_IMPL_H 18e0dac50fSopenharmony_ci 19e0dac50fSopenharmony_ci#include "window_session_impl.h" 20e0dac50fSopenharmony_ci 21e0dac50fSopenharmony_cinamespace OHOS { 22e0dac50fSopenharmony_cinamespace Rosen { 23e0dac50fSopenharmony_ci 24e0dac50fSopenharmony_ciclass WindowSceneSessionImpl : public WindowSessionImpl { 25e0dac50fSopenharmony_cipublic: 26e0dac50fSopenharmony_ci explicit WindowSceneSessionImpl(const sptr<WindowOption>& option); 27e0dac50fSopenharmony_ci ~WindowSceneSessionImpl(); 28e0dac50fSopenharmony_ci WMError Create(const std::shared_ptr<AbilityRuntime::Context>& context, 29e0dac50fSopenharmony_ci const sptr<Rosen::ISession>& iSession, const std::string& identityToken = "") override; 30e0dac50fSopenharmony_ci WMError Show(uint32_t reason = 0, bool withAnimation = false, bool withFocus = true) override; 31e0dac50fSopenharmony_ci WMError Hide(uint32_t reason, bool withAnimation, bool isFromInnerkits) override; 32e0dac50fSopenharmony_ci WMError Destroy(bool needNotifyServer, bool needClearListener = true) override; 33e0dac50fSopenharmony_ci WMError NotifyDrawingCompleted() override; 34e0dac50fSopenharmony_ci WMError SetTextFieldAvoidInfo(double textFieldPositionY, double textFieldHeight) override; 35e0dac50fSopenharmony_ci void PreProcessCreate(); 36e0dac50fSopenharmony_ci void SetDefaultProperty(); 37e0dac50fSopenharmony_ci WMError DisableAppWindowDecor() override; 38e0dac50fSopenharmony_ci bool IsDecorEnable() const override; 39e0dac50fSopenharmony_ci WMError Minimize() override; 40e0dac50fSopenharmony_ci WMError MaximizeFloating() override; 41e0dac50fSopenharmony_ci WMError Maximize() override; 42e0dac50fSopenharmony_ci WMError Maximize(MaximizePresentation presentation) override; 43e0dac50fSopenharmony_ci WMError Recover() override; 44e0dac50fSopenharmony_ci WMError Recover(uint32_t reason) override; 45e0dac50fSopenharmony_ci WMError Restore() override; 46e0dac50fSopenharmony_ci void StartMove() override; 47e0dac50fSopenharmony_ci bool GetStartMoveFlag() override; 48e0dac50fSopenharmony_ci WmErrorCode StartMoveSystemWindow() override; 49e0dac50fSopenharmony_ci WMError Close() override; 50e0dac50fSopenharmony_ci WindowMode GetMode() const override; 51e0dac50fSopenharmony_ci WMError MoveTo(int32_t x, int32_t y, bool isMoveToGlobal = false) override; 52e0dac50fSopenharmony_ci WMError MoveToAsync(int32_t x, int32_t y) override; 53e0dac50fSopenharmony_ci WMError Resize(uint32_t width, uint32_t height) override; 54e0dac50fSopenharmony_ci WMError ResizeAsync(uint32_t width, uint32_t height) override; 55e0dac50fSopenharmony_ci WMError RaiseToAppTop() override; 56e0dac50fSopenharmony_ci WMError RaiseAboveTarget(int32_t subWindowId) override; 57e0dac50fSopenharmony_ci void PerformBack() override; 58e0dac50fSopenharmony_ci WMError SetAspectRatio(float ratio) override; 59e0dac50fSopenharmony_ci WMError ResetAspectRatio() override; 60e0dac50fSopenharmony_ci WMError SetGlobalMaximizeMode(MaximizeMode mode) override; 61e0dac50fSopenharmony_ci MaximizeMode GetGlobalMaximizeMode() const override; 62e0dac50fSopenharmony_ci WMError GetAvoidAreaByType(AvoidAreaType type, AvoidArea& avoidArea) override; 63e0dac50fSopenharmony_ci SystemBarProperty GetSystemBarPropertyByType(WindowType type) const override; 64e0dac50fSopenharmony_ci WMError SetSystemBarProperty(WindowType type, const SystemBarProperty& property) override; 65e0dac50fSopenharmony_ci WMError SetLayoutFullScreen(bool status) override; 66e0dac50fSopenharmony_ci WMError SetTitleAndDockHoverShown(bool isTitleHoverShown = true, 67e0dac50fSopenharmony_ci bool isDockHoverShown = true) override; 68e0dac50fSopenharmony_ci WMError SetFullScreen(bool status) override; 69e0dac50fSopenharmony_ci WMError BindDialogTarget(sptr<IRemoteObject> targetToken) override; 70e0dac50fSopenharmony_ci WMError SetDialogBackGestureEnabled(bool isEnabled) override; 71e0dac50fSopenharmony_ci WMError GetWindowLimits(WindowLimits& windowLimits) override; 72e0dac50fSopenharmony_ci WMError SetWindowLimits(WindowLimits& windowLimits) override; 73e0dac50fSopenharmony_ci static void UpdateConfigurationForAll(const std::shared_ptr<AppExecFwk::Configuration>& configuration); 74e0dac50fSopenharmony_ci static sptr<Window> GetTopWindowWithContext(const std::shared_ptr<AbilityRuntime::Context>& context = nullptr); 75e0dac50fSopenharmony_ci static sptr<Window> GetTopWindowWithId(uint32_t mainWinId); 76e0dac50fSopenharmony_ci static sptr<Window> GetMainWindowWithContext(const std::shared_ptr<AbilityRuntime::Context>& context = nullptr); 77e0dac50fSopenharmony_ci static sptr<WindowSessionImpl> GetMainWindowWithId(uint32_t mainWinId); 78e0dac50fSopenharmony_ci static sptr<WindowSessionImpl> GetWindowWithId(uint32_t windId); 79e0dac50fSopenharmony_ci // only main window, sub window, dialog window can use 80e0dac50fSopenharmony_ci static int32_t GetParentMainWindowId(int32_t windowId); 81e0dac50fSopenharmony_ci virtual void UpdateConfiguration(const std::shared_ptr<AppExecFwk::Configuration>& configuration) override; 82e0dac50fSopenharmony_ci WMError NotifyMemoryLevel(int32_t level) override; 83e0dac50fSopenharmony_ci 84e0dac50fSopenharmony_ci virtual WMError AddWindowFlag(WindowFlag flag) override; 85e0dac50fSopenharmony_ci virtual WMError RemoveWindowFlag(WindowFlag flag) override; 86e0dac50fSopenharmony_ci virtual WMError SetWindowFlags(uint32_t flags) override; 87e0dac50fSopenharmony_ci virtual uint32_t GetWindowFlags() const override; 88e0dac50fSopenharmony_ci 89e0dac50fSopenharmony_ci // window effect 90e0dac50fSopenharmony_ci virtual WMError SetCornerRadius(float cornerRadius) override; 91e0dac50fSopenharmony_ci virtual WMError SetShadowRadius(float radius) override; 92e0dac50fSopenharmony_ci virtual WMError SetShadowColor(std::string color) override; 93e0dac50fSopenharmony_ci virtual WMError SetShadowOffsetX(float offsetX) override; 94e0dac50fSopenharmony_ci virtual WMError SetShadowOffsetY(float offsetY) override; 95e0dac50fSopenharmony_ci virtual WMError SetBlur(float radius) override; 96e0dac50fSopenharmony_ci virtual WMError SetBackdropBlur(float radius) override; 97e0dac50fSopenharmony_ci virtual WMError SetBackdropBlurStyle(WindowBlurStyle blurStyle) override; 98e0dac50fSopenharmony_ci virtual WMError SetWindowMode(WindowMode mode) override; 99e0dac50fSopenharmony_ci virtual WMError SetGrayScale(float grayScale) override; 100e0dac50fSopenharmony_ci 101e0dac50fSopenharmony_ci virtual WMError SetTransparent(bool isTransparent) override; 102e0dac50fSopenharmony_ci virtual WMError SetTurnScreenOn(bool turnScreenOn) override; 103e0dac50fSopenharmony_ci virtual WMError SetKeepScreenOn(bool keepScreenOn) override; 104e0dac50fSopenharmony_ci virtual WMError SetPrivacyMode(bool isPrivacyMode) override; 105e0dac50fSopenharmony_ci virtual void SetSystemPrivacyMode(bool isSystemPrivacyMode) override; 106e0dac50fSopenharmony_ci virtual WMError SetSnapshotSkip(bool isSkip) override; 107e0dac50fSopenharmony_ci virtual std::shared_ptr<Media::PixelMap> Snapshot() override; 108e0dac50fSopenharmony_ci WMError SetTouchHotAreas(const std::vector<Rect>& rects) override; 109e0dac50fSopenharmony_ci virtual WmErrorCode KeepKeyboardOnFocus(bool keepKeyboardFlag) override; 110e0dac50fSopenharmony_ci virtual WMError SetCallingWindow(uint32_t callingSessionId) override; 111e0dac50fSopenharmony_ci 112e0dac50fSopenharmony_ci virtual bool IsTransparent() const override; 113e0dac50fSopenharmony_ci virtual bool IsTurnScreenOn() const override; 114e0dac50fSopenharmony_ci virtual bool IsKeepScreenOn() const override; 115e0dac50fSopenharmony_ci virtual bool IsPrivacyMode() const override; 116e0dac50fSopenharmony_ci virtual bool IsLayoutFullScreen() const override; 117e0dac50fSopenharmony_ci virtual bool IsFullScreen() const override; 118e0dac50fSopenharmony_ci WMError RegisterAnimationTransitionController(const sptr<IAnimationTransitionController>& listener) override; 119e0dac50fSopenharmony_ci void SetNeedDefaultAnimation(bool needDefaultAnimation) override; 120e0dac50fSopenharmony_ci WMError SetTransform(const Transform& trans) override; 121e0dac50fSopenharmony_ci const Transform& GetTransform() const override; 122e0dac50fSopenharmony_ci WMError UpdateSurfaceNodeAfterCustomAnimation(bool isAdd) override; 123e0dac50fSopenharmony_ci WMError SetAlpha(float alpha) override; 124e0dac50fSopenharmony_ci void DumpSessionElementInfo(const std::vector<std::string>& params) override; 125e0dac50fSopenharmony_ci WSError UpdateWindowMode(WindowMode mode) override; 126e0dac50fSopenharmony_ci WSError UpdateMaximizeMode(MaximizeMode mode) override; 127e0dac50fSopenharmony_ci WSError UpdateTitleInTargetPos(bool isShow, int32_t height) override; 128e0dac50fSopenharmony_ci void NotifySessionForeground(uint32_t reason, bool withAnimation) override; 129e0dac50fSopenharmony_ci void NotifySessionBackground(uint32_t reason, bool withAnimation, bool isFromInnerkits) override; 130e0dac50fSopenharmony_ci WMError NotifyPrepareClosePiPWindow() override; 131e0dac50fSopenharmony_ci void UpdateSubWindowState(const WindowType& type); 132e0dac50fSopenharmony_ci WMError SetSystemBarProperties(const std::map<WindowType, SystemBarProperty>& properties, 133e0dac50fSopenharmony_ci const std::map<WindowType, SystemBarPropertyFlag>& propertyFlags) override; 134e0dac50fSopenharmony_ci WMError GetSystemBarProperties(std::map<WindowType, SystemBarProperty>& properties) override; 135e0dac50fSopenharmony_ci WMError SetSpecificBarProperty(WindowType type, const SystemBarProperty& property) override; 136e0dac50fSopenharmony_ci void ConsumePointerEvent(const std::shared_ptr<MMI::PointerEvent>& pointerEvent) override; 137e0dac50fSopenharmony_ci bool PreNotifyKeyEvent(const std::shared_ptr<MMI::KeyEvent>& keyEvent) override; 138e0dac50fSopenharmony_ci WSError NotifyDialogStateChange(bool isForeground) override; 139e0dac50fSopenharmony_ci WMError SetDefaultDensityEnabled(bool enabled) override; 140e0dac50fSopenharmony_ci bool GetDefaultDensityEnabled() override; 141e0dac50fSopenharmony_ci WMError HideNonSecureWindows(bool shouldHide) override; 142e0dac50fSopenharmony_ci virtual WMError SetWindowMask(const std::vector<std::vector<uint32_t>>& windowMask) override; 143e0dac50fSopenharmony_ci WSError CompatibleFullScreenRecover() override; 144e0dac50fSopenharmony_ci WSError CompatibleFullScreenMinimize() override; 145e0dac50fSopenharmony_ci WSError CompatibleFullScreenClose() override; 146e0dac50fSopenharmony_ci WSError NotifyCompatibleModeEnableInPad(bool enabled) override; 147e0dac50fSopenharmony_ci void UpdateDensity() override; 148e0dac50fSopenharmony_ci WSError UpdateOrientation() override; 149e0dac50fSopenharmony_ci WSError UpdateDisplayId(uint64_t displayId) override; 150e0dac50fSopenharmony_ci WMError AdjustKeyboardLayout(const KeyboardLayoutParams& params) override; 151e0dac50fSopenharmony_ci 152e0dac50fSopenharmony_ci /* 153e0dac50fSopenharmony_ci * PC Window 154e0dac50fSopenharmony_ci */ 155e0dac50fSopenharmony_ci bool IsPcOrPadCapabilityEnabled() const override; 156e0dac50fSopenharmony_ci bool IsPcOrPadFreeMultiWindowMode() const override; 157e0dac50fSopenharmony_ci 158e0dac50fSopenharmony_ci WSError SwitchFreeMultiWindow(bool enable) override; 159e0dac50fSopenharmony_ci virtual bool GetFreeMultiWindowModeEnabledState() override; 160e0dac50fSopenharmony_ci void NotifyKeyboardPanelInfoChange(const KeyboardPanelInfo& keyboardPanelInfo) override; 161e0dac50fSopenharmony_ci virtual WMError SetImmersiveModeEnabledState(bool enable) override; 162e0dac50fSopenharmony_ci virtual bool GetImmersiveModeEnabledState() const override; 163e0dac50fSopenharmony_ci uint32_t GetStatusBarHeight() override; 164e0dac50fSopenharmony_ci void NotifySessionFullScreen(bool fullScreen) override; 165e0dac50fSopenharmony_ci WMError GetWindowStatus(WindowStatus& windowStatus) override; 166e0dac50fSopenharmony_ci bool GetIsUIExtFirstSubWindow() const override; 167e0dac50fSopenharmony_ci bool GetIsUIExtAnySubWindow() const override; 168e0dac50fSopenharmony_ci 169e0dac50fSopenharmony_ci /* 170e0dac50fSopenharmony_ci * Gesture Back 171e0dac50fSopenharmony_ci */ 172e0dac50fSopenharmony_ci WMError SetGestureBackEnabled(bool enable) override; 173e0dac50fSopenharmony_ci bool GetGestureBackEnabled() const override; 174e0dac50fSopenharmony_ci 175e0dac50fSopenharmony_ciprotected: 176e0dac50fSopenharmony_ci WMError CreateAndConnectSpecificSession(); 177e0dac50fSopenharmony_ci WMError CreateSystemWindow(WindowType type); 178e0dac50fSopenharmony_ci WMError RecoverAndConnectSpecificSession(); 179e0dac50fSopenharmony_ci WMError RecoverAndReconnectSceneSession(); 180e0dac50fSopenharmony_ci sptr<WindowSessionImpl> FindParentSessionByParentId(uint32_t parentId); 181e0dac50fSopenharmony_ci bool IsSessionMainWindow(uint32_t parentId); 182e0dac50fSopenharmony_ci bool VerifySubWindowLevel(uint32_t parentId); 183e0dac50fSopenharmony_ci void LimitWindowSize(uint32_t& width, uint32_t& height); 184e0dac50fSopenharmony_ci void LimitCameraFloatWindowMininumSize(uint32_t& width, uint32_t& height, float& vpr); 185e0dac50fSopenharmony_ci void UpdateFloatingWindowSizeBySizeLimits(uint32_t& width, uint32_t& height) const; 186e0dac50fSopenharmony_ci WMError NotifyWindowSessionProperty(); 187e0dac50fSopenharmony_ci WMError NotifyWindowNeedAvoid(bool status = false); 188e0dac50fSopenharmony_ci WMError SetLayoutFullScreenByApiVersion(bool status) override; 189e0dac50fSopenharmony_ci void UpdateWindowSizeLimits(); 190e0dac50fSopenharmony_ci WindowLimits GetSystemSizeLimits(uint32_t displayWidth, uint32_t displayHeight, float vpr); 191e0dac50fSopenharmony_ci void GetConfigurationFromAbilityInfo(); 192e0dac50fSopenharmony_ci float GetVirtualPixelRatio(sptr<DisplayInfo> displayInfo) override; 193e0dac50fSopenharmony_ci WMError NotifySpecificWindowSessionProperty(WindowType type, const SystemBarProperty& property); 194e0dac50fSopenharmony_ci using SessionMap = std::map<std::string, std::pair<int32_t, sptr<WindowSessionImpl>>>; 195e0dac50fSopenharmony_ci sptr<WindowSessionImpl> FindParentMainSession(uint32_t parentId, const SessionMap& sessionMap); 196e0dac50fSopenharmony_ci 197e0dac50fSopenharmony_ciprivate: 198e0dac50fSopenharmony_ci WMError DestroyInner(bool needNotifyServer); 199e0dac50fSopenharmony_ci WMError MainWindowCloseInner(); 200e0dac50fSopenharmony_ci WMError SyncDestroyAndDisconnectSpecificSession(int32_t persistentId); 201e0dac50fSopenharmony_ci bool IsValidSystemWindowType(const WindowType& type); 202e0dac50fSopenharmony_ci WMError CheckParmAndPermission(); 203e0dac50fSopenharmony_ci static uint32_t maxFloatingWindowSize_; 204e0dac50fSopenharmony_ci void TransformSurfaceNode(const Transform& trans); 205e0dac50fSopenharmony_ci void AdjustWindowAnimationFlag(bool withAnimation = false); 206e0dac50fSopenharmony_ci void RegisterSessionRecoverListener(bool isSpecificSession); 207e0dac50fSopenharmony_ci WMError UpdateAnimationFlagProperty(bool withAnimation); 208e0dac50fSopenharmony_ci void UpdateFocusableOnShow(bool withFocus); 209e0dac50fSopenharmony_ci WMError UpdateWindowModeImmediately(WindowMode mode); 210e0dac50fSopenharmony_ci uint32_t UpdateConfigVal(uint32_t minVal, uint32_t maxVal, uint32_t configVal, uint32_t defaultVal, float vpr); 211e0dac50fSopenharmony_ci void UpdateWindowState(); 212e0dac50fSopenharmony_ci void UpdateNewSize(); 213e0dac50fSopenharmony_ci void fillWindowLimits(WindowLimits& windowLimits); 214e0dac50fSopenharmony_ci void ConsumePointerEventInner(const std::shared_ptr<MMI::PointerEvent>& pointerEvent, 215e0dac50fSopenharmony_ci MMI::PointerEvent::PointerItem& pointerItem); 216e0dac50fSopenharmony_ci void HandleEventForCompatibleMode(const std::shared_ptr<MMI::PointerEvent>& pointerEvent, 217e0dac50fSopenharmony_ci MMI::PointerEvent::PointerItem& pointerItem); 218e0dac50fSopenharmony_ci void HandleDownForCompatibleMode(const std::shared_ptr<MMI::PointerEvent>& pointerEvent, 219e0dac50fSopenharmony_ci MMI::PointerEvent::PointerItem& pointerItem); 220e0dac50fSopenharmony_ci void HandleMoveForCompatibleMode(const std::shared_ptr<MMI::PointerEvent>& pointerEvent, 221e0dac50fSopenharmony_ci MMI::PointerEvent::PointerItem& pointerItem); 222e0dac50fSopenharmony_ci void HandleUpForCompatibleMode(const std::shared_ptr<MMI::PointerEvent>& pointerEvent, 223e0dac50fSopenharmony_ci MMI::PointerEvent::PointerItem& pointerItem); 224e0dac50fSopenharmony_ci void ConvertPointForCompatibleMode(const std::shared_ptr<MMI::PointerEvent>& pointerEvent, 225e0dac50fSopenharmony_ci MMI::PointerEvent::PointerItem& pointerItem, int32_t transferX); 226e0dac50fSopenharmony_ci bool IsInMappingRegionForCompatibleMode(int32_t displayX, int32_t displayY); 227e0dac50fSopenharmony_ci bool CheckTouchSlop(int32_t pointerId, int32_t x, int32_t y, int32_t threshold); 228e0dac50fSopenharmony_ci void IgnoreClickEvent(const std::shared_ptr<MMI::PointerEvent>& pointerEvent); 229e0dac50fSopenharmony_ci bool HandlePointDownEvent(const std::shared_ptr<MMI::PointerEvent>& pointerEvent, 230e0dac50fSopenharmony_ci const MMI::PointerEvent::PointerItem& pointerItem, int32_t sourceType, float vpr, const WSRect& rect); 231e0dac50fSopenharmony_ci std::unique_ptr<Media::PixelMap> HandleWindowMask(const std::vector<std::vector<uint32_t>>& windowMask); 232e0dac50fSopenharmony_ci void CalculateNewLimitsByLimits( 233e0dac50fSopenharmony_ci WindowLimits& newLimits, WindowLimits& customizedLimits, float& virtualPixelRatio); 234e0dac50fSopenharmony_ci void CalculateNewLimitsByRatio(WindowLimits& newLimits, WindowLimits& customizedLimits); 235e0dac50fSopenharmony_ci void NotifyDisplayInfoChange(const sptr<DisplayInfo>& info = nullptr); 236e0dac50fSopenharmony_ci void UpdateDensityInner(const sptr<DisplayInfo>& info = nullptr); 237e0dac50fSopenharmony_ci 238e0dac50fSopenharmony_ci /** 239e0dac50fSopenharmony_ci * Window Immersive 240e0dac50fSopenharmony_ci */ 241e0dac50fSopenharmony_ci void UpdateDefaultStatusBarColor(); 242e0dac50fSopenharmony_ci WMError MoveAndResizeKeyboard(const KeyboardLayoutParams& params); 243e0dac50fSopenharmony_ci bool userLimitsSet_ = false; 244e0dac50fSopenharmony_ci bool enableDefaultAnimation_ = true; 245e0dac50fSopenharmony_ci sptr<IAnimationTransitionController> animationTransitionController_; 246e0dac50fSopenharmony_ci uint32_t setSameSystembarPropertyCnt_ = 0; 247e0dac50fSopenharmony_ci std::atomic<bool> isDefaultDensityEnabled_ = false; 248e0dac50fSopenharmony_ci std::atomic<uint32_t> getAvoidAreaCnt_ = 0; 249e0dac50fSopenharmony_ci bool enableImmersiveMode_ = false; 250e0dac50fSopenharmony_ci bool titleHoverShowEnabled_ = true; 251e0dac50fSopenharmony_ci bool dockHoverShowEnabled_ = true; 252e0dac50fSopenharmony_ci void PreLayoutOnShow(WindowType type, const sptr<DisplayInfo>& info = nullptr); 253e0dac50fSopenharmony_ci 254e0dac50fSopenharmony_ci /* 255e0dac50fSopenharmony_ci * Gesture Back 256e0dac50fSopenharmony_ci */ 257e0dac50fSopenharmony_ci bool gestureBackEnabled_ = true; 258e0dac50fSopenharmony_ci 259e0dac50fSopenharmony_ci /* 260e0dac50fSopenharmony_ci * Window Property. 261e0dac50fSopenharmony_ci */ 262e0dac50fSopenharmony_ci void InitSystemSessionDragEnable(); 263e0dac50fSopenharmony_ci 264e0dac50fSopenharmony_ci /** 265e0dac50fSopenharmony_ci * Sub Window 266e0dac50fSopenharmony_ci */ 267e0dac50fSopenharmony_ci void AddSubWindowMapForExtensionWindow(); 268e0dac50fSopenharmony_ci WMError GetParentSessionAndVerify(bool isToast, sptr<WindowSessionImpl>& parentSession); 269e0dac50fSopenharmony_ci 270e0dac50fSopenharmony_ci /* 271e0dac50fSopenharmony_ci * system window 272e0dac50fSopenharmony_ci */ 273e0dac50fSopenharmony_ci WMError SetSystemWindowDisplayId(WindowType type); 274e0dac50fSopenharmony_ci 275e0dac50fSopenharmony_ci WMError RegisterKeyboardPanelInfoChangeListener(const sptr<IKeyboardPanelInfoChangeListener>& listener) override; 276e0dac50fSopenharmony_ci WMError UnregisterKeyboardPanelInfoChangeListener(const sptr<IKeyboardPanelInfoChangeListener>& listener) override; 277e0dac50fSopenharmony_ci static std::mutex keyboardPanelInfoChangeListenerMutex_; 278e0dac50fSopenharmony_ci sptr<IKeyboardPanelInfoChangeListener> keyboardPanelInfoChangeListeners_ = nullptr; 279e0dac50fSopenharmony_ci bool isOverTouchSlop_ = false; 280e0dac50fSopenharmony_ci bool isDown_ = false; 281e0dac50fSopenharmony_ci std::unordered_map<int32_t, std::vector<bool>> eventMapTriggerByDisplay_; 282e0dac50fSopenharmony_ci std::unordered_map<int32_t, std::vector<int32_t>> eventMapDeltaXByDisplay_; 283e0dac50fSopenharmony_ci std::unordered_map<int32_t, std::vector<PointInfo>> downPointerByDisplay_; 284e0dac50fSopenharmony_ci}; 285e0dac50fSopenharmony_ci} // namespace Rosen 286e0dac50fSopenharmony_ci} // namespace OHOS 287e0dac50fSopenharmony_ci#endif // OHOS_ROSEN_WINDOW_SCENE_SESSION_IMPL_H 288