From a323c7fd5ee2378b54c42d355d3b4219bec75933 Mon Sep 17 00:00:00 2001 From: Choi Munseok Date: Fri, 12 Apr 2013 18:05:12 +0900 Subject: [PATCH] Add SetClipboardOwner Change-Id: I47286ce51c8a7b945ec61f11650fd9150d1c317b Signed-off-by: Choi Munseok --- src/ui/FUi_ControlManager.cpp | 18 ++++++++++++++++++ src/ui/FUi_EcoreEvas.cpp | 12 ++++++------ src/ui/controls/FUiCtrl_Keypad.cpp | 4 ++++ src/ui/inc/FUi_ControlManager.h | 3 +++ 4 files changed, 31 insertions(+), 6 deletions(-) mode change 100755 => 100644 src/ui/inc/FUi_ControlManager.h diff --git a/src/ui/FUi_ControlManager.cpp b/src/ui/FUi_ControlManager.cpp index dd1fe76..65958ba 100644 --- a/src/ui/FUi_ControlManager.cpp +++ b/src/ui/FUi_ControlManager.cpp @@ -315,6 +315,7 @@ _ControlManager::_ControlManager(void) // [ToDo] exception check. , __isDefaultFontChanged(false) , __defaultFontName(L"") , __screenDpi(0) + , __pClipboardOwner(null) { result r = GetAppCoordinateSystem(__isCoordinateSystemLogical, __logicalCoordinateSystem, __logicalBaseScreenSize); SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, E_SYSTEM, "[E_SYSTEM] System error occurred."); @@ -1166,6 +1167,23 @@ _ControlManager::GetFocusedControl(void) const return __pFocusedControl; } +void +_ControlManager::SetClipboardOwner(_Window* pOwner) +{ + __pClipboardOwner = pOwner; +} + +_Window* +_ControlManager::GetClipboardOwner(void) const +{ + if (__pClipboardOwner) + { + return __pClipboardOwner; + } + + return GetCurrentFrame(); +} + _Control* _ControlManager::GetTopmostTouchedControl(const Point& point) { diff --git a/src/ui/FUi_EcoreEvas.cpp b/src/ui/FUi_EcoreEvas.cpp index 994d206..9141de2 100644 --- a/src/ui/FUi_EcoreEvas.cpp +++ b/src/ui/FUi_EcoreEvas.cpp @@ -839,7 +839,7 @@ NotifyTarget(_Clip* pClip, Ecore_X_Event_Selection_Notify* pNotify) _ControlManager* pControlManager = _ControlManager::GetInstance(); SysTryReturn(NID_UI, pControlManager, ECORE_CALLBACK_PASS_ON, E_SYSTEM, "[E_SYSTEM] A system error occurred."); - _Window* pWindow = pControlManager->GetCurrentFrame(); + _Window* pWindow = pControlManager->GetClipboardOwner(); SysTryReturn(NID_UI, pWindow, ECORE_CALLBACK_PASS_ON, E_SYSTEM, "[E_SYSTEM] A system error occurred."); _RootVisualElement* pRootVE = pWindow->GetRootVisualElement(); @@ -1567,7 +1567,7 @@ _EcoreEvas::CopyClip(_ClipFormat format, const char* pChar) _ControlManager* pControlManager = _ControlManager::GetInstance(); - _Window* pWindow = pControlManager->GetCurrentFrame(); + _Window* pWindow = pControlManager->GetClipboardOwner(); if (!pWindow) { return E_SUCCESS; @@ -1594,7 +1594,7 @@ _EcoreEvas::RetrieveClipN(int index, int* format, char** pData) _ControlManager* pControlManager = _ControlManager::GetInstance(); - _Window* pWindow = pControlManager->GetCurrentFrame(); + _Window* pWindow = pControlManager->GetClipboardOwner(); if (!pWindow) { return false; @@ -1645,7 +1645,7 @@ _EcoreEvas::GetClipCount(void) const { _ControlManager* pControlManager = _ControlManager::GetInstance(); - _Window* pWindow = pControlManager->GetCurrentFrame(); + _Window* pWindow = pControlManager->GetClipboardOwner(); if (!pWindow) { return 0; @@ -1667,7 +1667,7 @@ _EcoreEvas::OpenClipboard(unsigned long clipFormats) { _ControlManager* pControlManager = _ControlManager::GetInstance(); - _Window* pWindow = pControlManager->GetCurrentFrame(); + _Window* pWindow = pControlManager->GetClipboardOwner(); if (!pWindow) { return; @@ -1701,7 +1701,7 @@ _EcoreEvas::CloseClipboard(void) { _ControlManager* pControlManager = _ControlManager::GetInstance(); - _Window* pWindow = pControlManager->GetCurrentFrame(); + _Window* pWindow = pControlManager->GetClipboardOwner(); if (!pWindow) { return; diff --git a/src/ui/controls/FUiCtrl_Keypad.cpp b/src/ui/controls/FUiCtrl_Keypad.cpp index 9efd977..53946ee 100644 --- a/src/ui/controls/FUiCtrl_Keypad.cpp +++ b/src/ui/controls/FUiCtrl_Keypad.cpp @@ -67,10 +67,14 @@ _Keypad::_Keypad(void) { pAccessibilityContainer->Activate(true); } + + _ControlManager::GetInstance()->SetClipboardOwner(this); } _Keypad::~_Keypad(void) { + _ControlManager::GetInstance()->SetClipboardOwner(null); + Dispose(); } diff --git a/src/ui/inc/FUi_ControlManager.h b/src/ui/inc/FUi_ControlManager.h old mode 100755 new mode 100644 index 9c43abe..692b2b1 --- a/src/ui/inc/FUi_ControlManager.h +++ b/src/ui/inc/FUi_ControlManager.h @@ -124,6 +124,8 @@ public: _Window* GetTouchedWindow(void) const; result MoveWindowToTop(const _Window& window); result MoveWindowToBottom(const _Window& window); + void SetClipboardOwner(_Window* pOwner); + _Window* GetClipboardOwner(void) const; private: ~_ControlManager(void); @@ -173,6 +175,7 @@ private: Tizen::Base::String __defaultFontFileName; static _ControlManager* __pInstance; int __screenDpi; + _Window* __pClipboardOwner; }; // _ControlManager }} // Tizen::Ui -- 2.7.4