Add SetClipboardOwner
authorChoi Munseok <ms47.choi@samsung.com>
Fri, 12 Apr 2013 09:05:12 +0000 (18:05 +0900)
committerChoi Munseok <ms47.choi@samsung.com>
Fri, 12 Apr 2013 09:05:12 +0000 (18:05 +0900)
Change-Id: I47286ce51c8a7b945ec61f11650fd9150d1c317b
Signed-off-by: Choi Munseok <ms47.choi@samsung.com>
src/ui/FUi_ControlManager.cpp
src/ui/FUi_EcoreEvas.cpp
src/ui/controls/FUiCtrl_Keypad.cpp
src/ui/inc/FUi_ControlManager.h [changed mode: 0755->0644]

index dd1fe76..65958ba 100644 (file)
@@ -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)
 {
index 994d206..9141de2 100644 (file)
@@ -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;
index 9efd977..53946ee 100644 (file)
@@ -67,10 +67,14 @@ _Keypad::_Keypad(void)
        {
                pAccessibilityContainer->Activate(true);
        }
+
+       _ControlManager::GetInstance()->SetClipboardOwner(this);
 }
 
 _Keypad::~_Keypad(void)
 {
+       _ControlManager::GetInstance()->SetClipboardOwner(null);
+
        Dispose();
 }
 
old mode 100755 (executable)
new mode 100644 (file)
index 9c43abe..692b2b1
@@ -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