Fix IME Window is not shown issue.
[platform/core/uifw/dali-adaptor.git] / dali / internal / window-system / tizen-wayland / ecore-wl2 / window-base-ecore-wl2.h
1 #ifndef DALI_INTERNAL_WINDOWSYSTEM_TIZENWAYLAND_WINDOW_BASE_ECORE_WL2_H
2 #define DALI_INTERNAL_WINDOWSYSTEM_TIZENWAYLAND_WINDOW_BASE_ECORE_WL2_H
3
4 /*
5  * Copyright (c) 2023 Samsung Electronics Co., Ltd.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  */
20
21 // INTERNAL INCLUDES
22 #include <dali/internal/window-system/common/window-base.h>
23
24 // EXTERNAL HEADERS
25 #include <Ecore.h>
26 #include <Ecore_Wl2.h>
27 #include <input-method-client-protocol.h>
28 #include <tizen-extension-client-protocol.h>
29 #include <wayland-egl.h>
30 #include <xkbcommon/xkbcommon.h>
31
32 namespace Dali
33 {
34 namespace Internal
35 {
36 namespace Adaptor
37 {
38 class WindowRenderSurface;
39 class WindowRenderSurfaceEcoreWl2;
40
41 /**
42  * WindowBaseEcoreWl2 class provides an WindowBase Ecore-Wayland2 implementation.
43  */
44 class WindowBaseEcoreWl2 : public WindowBase
45 {
46 public:
47   /**
48    * @brief Constructor
49    */
50   WindowBaseEcoreWl2(PositionSize positionSize, Any surface, bool isTransparent);
51
52   /**
53    * @brief Destructor
54    */
55   virtual ~WindowBaseEcoreWl2();
56
57 public:
58   /**
59    * @brief Called when the window iconify state is changed.
60    */
61   Eina_Bool OnIconifyStateChanged(void* data, int type, void* event);
62
63   /**
64    * @brief Called when the window gains focus.
65    */
66   Eina_Bool OnFocusIn(void* data, int type, void* event);
67
68   /**
69    * @brief Called when the window loses focus.
70    */
71   Eina_Bool OnFocusOut(void* data, int type, void* event);
72
73   /**
74    * @brief Called when the output is transformed.
75    */
76   Eina_Bool OnOutputTransform(void* data, int type, void* event);
77
78   /**
79    * @brief Called when the output transform should be ignored.
80    */
81   Eina_Bool OnIgnoreOutputTransform(void* data, int type, void* event);
82
83   /**
84    * @brief Called when a rotation event is recevied.
85    */
86   void OnRotation(void* data, int type, void* event);
87
88   /**
89    * @brief Called when a configure event is recevied.
90    */
91   void OnConfiguration(void* data, int type, void* event);
92
93   /**
94    * @brief Called when a touch down is received.
95    */
96   void OnMouseButtonDown(void* data, int type, void* event);
97
98   /**
99    * @brief Called when a touch up is received.
100    */
101   void OnMouseButtonUp(void* data, int type, void* event);
102
103   /**
104    * @brief Called when a touch motion is received.
105    */
106   void OnMouseButtonMove(void* data, int type, void* event);
107
108   /**
109    * @brief Called when a touch motion is received.
110    */
111   void OnMouseButtonRelativeMove(void* data, int type, void* event);
112
113   /**
114    * @brief Called when a touch is canceled.
115    */
116   void OnMouseButtonCancel(void* data, int type, void* event);
117
118   /**
119    * @brief Called when a pointer is locked or unlocked.
120    */
121   void OnPointerConstraints(void* data, int type, void* event);
122
123   /**
124    * @brief Called when a mouse wheel is received.
125    */
126   void OnMouseWheel(void* data, int type, void* event);
127
128   /**
129    * @brief Called when a mouse in or out is received.
130    */
131   void OnMouseInOut(void* data, int type, void* event, Dali::DevelWindow::MouseInOutEvent::Type action);
132
133   /**
134    * @brief Called when a detent rotation event is recevied.
135    */
136   void OnDetentRotation(void* data, int type, void* event);
137
138   /**
139    * @brief Called when a key down is received.
140    */
141   void OnKeyDown(void* data, int type, void* event);
142
143   /**
144    * @brief Called when a key up is received.
145    */
146   void OnKeyUp(void* data, int type, void* event);
147
148   /**
149    * @brief Called when the source window notifies us the content in clipboard is selected.
150    */
151   void OnDataSend(void* data, int type, void* event);
152
153   /**
154    * @brief Called when the source window sends us about the selected content.
155    */
156   void OnDataReceive(void* data, int type, void* event);
157
158   /**
159    * @brief Called when a font name is changed.
160    */
161   void OnFontNameChanged();
162
163   /**
164    * @brief Called when a font size is changed.
165    */
166   void OnFontSizeChanged();
167
168   /**
169    * @brief Called when a transition effect-start/end event is received.
170    */
171   void OnTransitionEffectEvent(WindowEffectState state, WindowEffectType type);
172
173   /**
174    * @brief Called when a keyboard repeat event is changed.
175    */
176   void OnKeyboardRepeatSettingsChanged();
177
178   /**
179    * @brief Called when a window redraw is requested.
180    */
181   void OnEcoreEventWindowRedrawRequest();
182
183   /**
184    * @brief Called when a conformant is changed.
185    */
186   void OnEcoreEventConformantChange(void* event);
187
188   /**
189    * @brief Called when window's auxiliary is changed then display server send the changed message.
190    *
191    * @param[in] auxiliary's message data. It has key, value and integer list data.
192    */
193   void OnEcoreEventWindowAuxiliaryMessage(void* event);
194
195   /**
196    * @brief Called when window has been moved by then display server.
197    * To move the window by display server, RequestMoveToServer() should be called.
198    * After the moving job is completed, this function will be called.
199    *
200    * @param[in] the completed event's data. It has the latest window geometry data.
201    */
202   void OnMoveCompleted(void* event);
203
204   /**
205    * @brief Called when window has been resized by then display server.
206    * To resize the window by display server, RequestResizeToServer() should be called.
207    * After the resizing job is completed, this function will be called.
208    *
209    * @param[in] the completed event's data. It has the latest window geometry data.
210    */
211   void OnResizeCompleted(void* event);
212
213   /**
214    * @brief Called when a keymap is changed.
215    */
216   void KeymapChanged(void* data, int type, void* event);
217
218   /**
219    * @brief RegistryGlobalCallback
220    */
221   void RegistryGlobalCallback(void* data, struct wl_registry* registry, uint32_t name, const char* interface, uint32_t version);
222
223   /**
224    * @brief RegistryGlobalCallbackRemove
225    */
226   void RegistryGlobalCallbackRemove(void* data, struct wl_registry* registry, uint32_t id);
227
228   /**
229    * @brief TizenPolicyConformantArea
230    */
231   void TizenPolicyConformantArea(void* data, struct tizen_policy* tizenPolicy, struct wl_surface* surface, uint32_t conformantPart, uint32_t state, int32_t x, int32_t y, int32_t w, int32_t h);
232
233   /**
234    * @brief TizenPolicyNotificationChangeDone
235    */
236   void TizenPolicyNotificationChangeDone(void* data, struct tizen_policy* tizenPolicy, struct wl_surface* surface, int32_t level, uint32_t state);
237
238   /**
239    * @brief TizenPolicyScreenModeChangeDone
240    */
241   void TizenPolicyScreenModeChangeDone(void* data, struct tizen_policy* tizenPolicy, struct wl_surface* surface, uint32_t mode, uint32_t state);
242
243   /**
244    * @brief DisplayPolicyBrightnessChangeDone
245    */
246   void DisplayPolicyBrightnessChangeDone(void* data, struct tizen_display_policy* displayPolicy, struct wl_surface* surface, int32_t brightness, uint32_t state);
247
248   /**
249    * @brief Gets the key code by keyName.
250    */
251   void GetKeyCode(std::string keyName, int32_t& keyCode);
252
253 public:
254   /**
255    * @copydoc Dali::Internal::Adaptor::WindowBase::GetNativeWindow()
256    */
257   Any GetNativeWindow() override;
258
259   /**
260    * @copydoc Dali::Internal::Adaptor::WindowBase::GetNativeWindowId()
261    */
262   int GetNativeWindowId() override;
263
264   /**
265    * @copydoc Dali::Internal::Adaptor::WindowBase::GetNativeWindowResourceId()
266    */
267   std::string GetNativeWindowResourceId() override;
268
269   /**
270    * @copydoc Dali::Internal::Adaptor::WindowBase::CreateEglWindow()
271    */
272   EGLNativeWindowType CreateEglWindow(int width, int height) override;
273
274   /**
275    * @copydoc Dali::Internal::Adaptor::WindowBase::DestroyEglWindow()
276    */
277   void DestroyEglWindow() override;
278
279   /**
280    * @copydoc Dali::Internal::Adaptor::WindowBase::SetEglWindowRotation()
281    */
282   void SetEglWindowRotation(int angle) override;
283
284   /**
285    * @copydoc Dali::Internal::Adaptor::WindowBase::SetEglWindowBufferTransform()
286    */
287   void SetEglWindowBufferTransform(int angle) override;
288
289   /**
290    * @copydoc Dali::Internal::Adaptor::WindowBase::SetEglWindowTransform()
291    */
292   void SetEglWindowTransform(int angle) override;
293
294   /**
295    * @copydoc Dali::Internal::Adaptor::WindowBase::ResizeEglWindow()
296    */
297   void ResizeEglWindow(PositionSize positionSize) override;
298
299   /**
300    * @copydoc Dali::Internal::Adaptor::WindowBase::IsEglWindowRotationSupported()
301    */
302   bool IsEglWindowRotationSupported() override;
303
304   /**
305    * @copydoc Dali::Internal::Adaptor::WindowBase::Move()
306    */
307   void Move(PositionSize positionSize) override;
308
309   /**
310    * @copydoc Dali::Internal::Adaptor::WindowBase::Resize()
311    */
312   void Resize(PositionSize positionSize) override;
313
314   /**
315    * @copydoc Dali::Internal::Adaptor::WindowBase::MoveResize()
316    */
317   void MoveResize(PositionSize positionSize) override;
318
319   /**
320    * @copydoc Dali::Internal::Adaptor::WindowBase::SetLayout()
321    */
322   void SetLayout(unsigned int numCols, unsigned int numRows, unsigned int column, unsigned int row, unsigned int colSpan, unsigned int rowSpan) override;
323
324   /**
325    * @copydoc Dali::Internal::Adaptor::WindowBase::SetClass()
326    */
327   void SetClass(const std::string& name, const std::string& className) override;
328
329   /**
330    * @copydoc Dali::Internal::Adaptor::WindowBase::Raise()
331    */
332   void Raise() override;
333
334   /**
335    * @copydoc Dali::Internal::Adaptor::WindowBase::Lower()
336    */
337   void Lower() override;
338
339   /**
340    * @copydoc Dali::Internal::Adaptor::WindowBase::Activate()
341    */
342   void Activate() override;
343
344   /**
345    * @copydoc Dali::Internal::Adaptor::WindowBase::Maximize()
346    */
347   void Maximize(bool maximize) override;
348
349   /**
350    * @copydoc Dali::Internal::Adaptor::WindowBase::IsMaximized()
351    */
352   bool IsMaximized() const override;
353
354   /**
355    * @copydoc Dali::Internal::Adaptor::WindowBase::SetMaximumSize()
356    */
357   void SetMaximumSize(Dali::Window::WindowSize size) override;
358
359   /**
360    * @copydoc Dali::Internal::Adaptor::WindowBase::Minimize()
361    */
362   void Minimize(bool minimize) override;
363
364   /**
365    * @copydoc Dali::Internal::Adaptor::WindowBase::IsMinimized()
366    */
367   bool IsMinimized() const override;
368
369   /**
370    * @copydoc Dali::Internal::Adaptor::WindowBase::SetMimimumSize()
371    */
372   void SetMimimumSize(Dali::Window::WindowSize size) override;
373
374   /**
375    * @copydoc Dali::Internal::Adaptor::WindowBase::SetAvailableAnlges()
376    */
377   void SetAvailableAnlges(const std::vector<int>& angles) override;
378
379   /**
380    * @copydoc Dali::Internal::Adaptor::WindowBase::SetPreferredAngle()
381    */
382   void SetPreferredAngle(int angle) override;
383
384   /**
385    * @copydoc Dali::Internal::Adaptor::WindowBase::SetAcceptFocus()
386    */
387   void SetAcceptFocus(bool accept) override;
388
389   /**
390    * @copydoc Dali::Internal::Adaptor::WindowBase::Show()
391    */
392   void Show() override;
393
394   /**
395    * @copydoc Dali::Internal::Adaptor::WindowBase::Hide()
396    */
397   void Hide() override;
398
399   /**
400    * @copydoc Dali::Internal::Adaptor::WindowBase::GetSupportedAuxiliaryHintCount()
401    */
402   unsigned int GetSupportedAuxiliaryHintCount() const override;
403
404   /**
405    * @copydoc Dali::Internal::Adaptor::WindowBase::GetSupportedAuxiliaryHint()
406    */
407   std::string GetSupportedAuxiliaryHint(unsigned int index) const override;
408
409   /**
410    * @copydoc Dali::Internal::Adaptor::WindowBase::AddAuxiliaryHint()
411    */
412   unsigned int AddAuxiliaryHint(const std::string& hint, const std::string& value) override;
413
414   /**
415    * @copydoc Dali::Internal::Adaptor::WindowBase::RemoveAuxiliaryHint()
416    */
417   bool RemoveAuxiliaryHint(unsigned int id) override;
418
419   /**
420    * @copydoc Dali::Internal::Adaptor::WindowBase::SetAuxiliaryHintValue()
421    */
422   bool SetAuxiliaryHintValue(unsigned int id, const std::string& value) override;
423
424   /**
425    * @copydoc Dali::Internal::Adaptor::WindowBase::GetAuxiliaryHintValue()
426    */
427   std::string GetAuxiliaryHintValue(unsigned int id) const override;
428
429   /**
430    * @copydoc Dali::Internal::Adaptor::WindowBase::GetAuxiliaryHintId()
431    */
432   unsigned int GetAuxiliaryHintId(const std::string& hint) const override;
433
434   /**
435    * @copydoc Dali::Internal::Adaptor::WindowBase::SetInputRegion()
436    */
437   void SetInputRegion(const Rect<int>& inputRegion) override;
438
439   /**
440    * @copydoc Dali::Internal::Adaptor::WindowBase::SetType()
441    */
442   void SetType(Dali::WindowType type) override;
443
444   /**
445    * @copydoc Dali::Internal::Adaptor::WindowBase::GetType()
446    */
447   Dali::WindowType GetType() const override;
448
449   /**
450    * @copydoc Dali::Internal::Adaptor::WindowBase::SetNotificationLevel()
451    */
452   Dali::WindowOperationResult SetNotificationLevel(Dali::WindowNotificationLevel level) override;
453
454   /**
455    * @copydoc Dali::Internal::Adaptor::WindowBase::GetNotificationLevel()
456    */
457   Dali::WindowNotificationLevel GetNotificationLevel() const override;
458
459   /**
460    * @copydoc Dali::Internal::Adaptor::WindowBase::SetOpaqueState()
461    */
462   void SetOpaqueState(bool opaque) override;
463
464   /**
465    * @copydoc Dali::Internal::Adaptor::WindowBase::SetScreenOffMode()
466    */
467   Dali::WindowOperationResult SetScreenOffMode(WindowScreenOffMode screenOffMode) override;
468
469   /**
470    * @copydoc Dali::Internal::Adaptor::WindowBase::GetScreenOffMode()
471    */
472   WindowScreenOffMode GetScreenOffMode() const override;
473
474   /**
475    * @copydoc Dali::Internal::Adaptor::WindowBase::SetBrightness()
476    */
477   Dali::WindowOperationResult SetBrightness(int brightness) override;
478
479   /**
480    * @copydoc Dali::Internal::Adaptor::WindowBase::GetBrightness()
481    */
482   int GetBrightness() const override;
483
484   /**
485    * @copydoc Dali::Internal::Adaptor::WindowBase::GrabKey()
486    */
487   bool GrabKey(Dali::KEY key, KeyGrab::KeyGrabMode grabMode) override;
488
489   /**
490    * @copydoc Dali::Internal::Adaptor::WindowBase::UngrabKey()
491    */
492   bool UngrabKey(Dali::KEY key) override;
493
494   /**
495    * @copydoc Dali::Internal::Adaptor::WindowBase::GrabKeyList()
496    */
497   bool GrabKeyList(const Dali::Vector<Dali::KEY>& key, const Dali::Vector<KeyGrab::KeyGrabMode>& grabMode, Dali::Vector<bool>& result) override;
498
499   /**
500    * @copydoc Dali::Internal::Adaptor::WindowBase::UngrabKeyList()
501    */
502   bool UngrabKeyList(const Dali::Vector<Dali::KEY>& key, Dali::Vector<bool>& result) override;
503
504   /**
505    * @copydoc Dali::Internal::Adaptor::WindowBase::GetDpi()
506    */
507   void GetDpi(unsigned int& dpiHorizontal, unsigned int& dpiVertical) override;
508
509   /**
510    * @copydoc Dali::Internal::Adaptor::WindowBase::GetWindowRotationAngle()
511    */
512   int GetWindowRotationAngle() const override;
513
514   /**
515    * @copydoc Dali::Internal::Adaptor::WindowBase::GetScreenRotationAngle()
516    */
517   int GetScreenRotationAngle() override;
518
519   /**
520    * @copydoc Dali::Internal::Adaptor::WindowBase::SetWindowRotationAngle()
521    */
522   void SetWindowRotationAngle(int degree) override;
523
524   /**
525    * @copydoc Dali::Internal::Adaptor::WindowBase::WindowRotationCompleted()
526    */
527   void WindowRotationCompleted(int degree, int width, int height) override;
528
529   /**
530    * @copydoc Dali::Internal::Adaptor::WindowBase::SetTransparency()
531    */
532   void SetTransparency(bool transparent) override;
533
534   /**
535    * @copydoc Dali::Internal::Adaptor::WindowBase::SetParent()
536    */
537   void SetParent(WindowBase* parentWinBase, bool belowParent) override;
538
539   /**
540    * @copydoc  Dali::Internal::Adaptor::WindowBase::CreateFrameRenderedSyncFence()
541    */
542   int CreateFrameRenderedSyncFence() override;
543
544   /**
545    * @copydoc  Dali::Internal::Adaptor::WindowBase::CreateFramePresentedSyncFence()
546    */
547   int CreateFramePresentedSyncFence() override;
548
549   /**
550    * @copydoc Dali::Internal::Adaptor::WindowBase::SetPositionSizeWithAngle()
551    */
552   void SetPositionSizeWithAngle(PositionSize positionSize, int angle) override;
553
554   /**
555    * @copydoc Dali::Internal::Adaptor::WindowBase::InitializeIme()
556    */
557   void InitializeIme() override;
558
559   /**
560    * @copydoc Dali::Internal::Adaptor::WindowBase::ImeWindowReadyToRender()
561    */
562   void ImeWindowReadyToRender() override;
563
564   /**
565    * @copydoc Dali::Internal::Adaptor::WindowBase::RequestMoveToServer()
566    */
567   void RequestMoveToServer() override;
568
569   /**
570    * @copydoc Dali::Internal::Adaptor::WindowBase::RequestResizeToServer()
571    */
572   void RequestResizeToServer(WindowResizeDirection direction) override;
573
574   /**
575    * @copydoc Dali::Internal::Adaptor::WindowBase::EnableFloatingMode()
576    */
577   void EnableFloatingMode(bool enable) override;
578
579   /**
580    * @copydoc Dali::Internal::Adaptor::WindowBase::IsFloatingModeEnabled()
581    */
582   bool IsFloatingModeEnabled() const override;
583
584   /**
585    * @copydoc Dali::Internal::Adaptor::WindowBase::IncludeInputRegion()
586    */
587   void IncludeInputRegion(const Rect<int>& inputRegion) override;
588
589   /**
590    * @copydoc Dali::Internal::Adaptor::WindowBase::ExcludeInputRegion()
591    */
592   void ExcludeInputRegion(const Rect<int>& inputRegion) override;
593
594   /**
595    * @copydoc Dali::Internal::Adaptor::WindowBase::PointerConstraintsLock()
596    */
597   bool PointerConstraintsLock() override;
598
599   /**
600    * @copydoc Dali::Internal::Adaptor::WindowBase::PointerConstraintsUnlock()
601    */
602   bool PointerConstraintsUnlock() override;
603
604   /**
605    * @copydoc Dali::Internal::Adaptor::WindowBase::LockedPointerRegionSet()
606    */
607   void LockedPointerRegionSet(int32_t x, int32_t y, int32_t width, int32_t height) override;
608
609   /**
610    * @copydoc Dali::Internal::Adaptor::WindowBase::LockedPointerCursorPositionHintSet()
611    */
612   void LockedPointerCursorPositionHintSet(int32_t x, int32_t y) override;
613
614   /**
615    * @copydoc Dali::Internal::Adaptor::WindowBase::PointerWarp()
616    */
617   bool PointerWarp(int32_t x, int32_t y) override;
618
619   /**
620    * @copydoc Dali::Internal::Adaptor::WindowBase::CursorVisibleSet()
621    */
622   void CursorVisibleSet(bool visible) override;
623
624   /**
625    * @copydoc Dali::Internal::Adaptor::WindowBase::KeyboardGrab()
626    */
627   bool KeyboardGrab(Device::Subclass::Type deviceSubclass) override;
628
629   /**
630    * @copydoc Dali::Internal::Adaptor::WindowBase::KeyboardUnGrab()
631    */
632   bool KeyboardUnGrab() override;
633
634   /**
635    * @copydoc Dali::Internal::Adaptor::WindowBase::SetFullScreen()
636    */
637   void SetFullScreen(bool fullscreen) override;
638
639   /**
640    * @copydoc Dali::Internal::Adaptor::WindowBase::GetFullScreen()
641    */
642   bool GetFullScreen() override;
643
644 private:
645   /**
646    * Second stage initialization
647    */
648   void Initialize(PositionSize positionSize, Any surface, bool isTransparent);
649
650   /**
651    * @brief Create window
652    */
653   void CreateWindow(PositionSize positionSize);
654
655   /**
656    * @brief Return the window's position and size to recalulate with the default system coordinates.
657    * It is used when window is moved or resized for native ecore wayland window system.
658    *
659    * @param[in] positionSize the window's current position and size with current oriented window's coordinates.
660    * @return the re-calculated window's position and size on the default system coordinates.
661    */
662   PositionSize RecalculatePositionSizeToSystem(PositionSize positionSize);
663
664   /**
665    * @brief Return the window's position and size to recalulate with current oriented window's coordinates.
666    * It is used when window is moved or resized for dali and uppler layer framework.
667    *
668    * @param[in] positionSize the window's current position and size with the default system coordinates.
669    * @return the re-calculated window's position and size on current oriented window's coordinates.
670    */
671   PositionSize RecalculatePositionSizeToCurrentOrientation(PositionSize positionSize);
672
673 protected:
674   // Undefined
675   WindowBaseEcoreWl2(const WindowBaseEcoreWl2&) = delete;
676
677   // Undefined
678   WindowBaseEcoreWl2& operator=(const WindowBaseEcoreWl2& rhs) = delete;
679
680 private:
681   typedef std::vector<std::pair<std::string, std::string> > AuxiliaryHints;
682   Dali::Vector<Ecore_Event_Handler*>                        mEcoreEventHandler;
683   Ecore_Wl2_Window*                                         mEcoreWindow;
684
685   wl_surface* mWlSurface;
686 #ifdef OVER_TIZEN_VERSION_7
687   zwp_input_panel_v1* mWlInputPanel;
688 #else
689   wl_input_panel*         mWlInputPanel;
690 #endif
691   wl_output* mWlOutput;
692 #ifdef OVER_TIZEN_VERSION_7
693   zwp_input_panel_surface_v1* mWlInputPanelSurface;
694 #else
695   wl_input_panel_surface* mWlInputPanelSurface;
696 #endif
697
698   wl_egl_window*        mEglWindow;
699   wl_display*           mDisplay;
700   wl_event_queue*       mEventQueue;
701   tizen_policy*         mTizenPolicy;
702   tizen_display_policy* mTizenDisplayPolicy;
703   xkb_keymap*           mKeyMap;
704
705   std::vector<std::string> mSupportedAuxiliaryHints;
706
707   // It is based on the default system coordinates.
708   Dali::PositionSize mWindowPositionSize;
709
710   AuxiliaryHints mAuxiliaryHints;
711
712   WindowType mType;
713   int        mNotificationLevel;
714   int        mScreenOffMode;
715   int        mBrightness;
716   int        mWindowRotationAngle;
717   int        mScreenRotationAngle;
718   int        mSupportedPreProtation;
719
720   uint32_t          mNotificationChangeState;
721   uint32_t          mScreenOffModeChangeState;
722   uint32_t          mBrightnessChangeState;
723   uint32_t          mLastSubmittedMoveResizeSerial;
724   volatile uint32_t mMoveResizeSerial;
725
726   bool mNotificationLevelChangeDone;
727   bool mScreenOffModeChangeDone;
728   bool mVisible : 1;
729   bool mOwnSurface;
730   bool mBrightnessChangeDone;
731   bool mIsIMEWindowInitialized;
732 };
733
734 } // namespace Adaptor
735
736 } // namespace Internal
737
738 } // namespace Dali
739
740 #endif // DALI_INTERNAL_WINDOWSYSTEM_TIZENWAYLAND_WINDOW_BASE_ECORE_WL2_H