Fixed copy & paste popup is displayed twice after chaning font size in email app.
authorYuni Jeong <yhnet.jung@samsung.com>
Tue, 17 Sep 2013 05:58:10 +0000 (14:58 +0900)
committerTaeyun An <ty.an@samsung.com>
Thu, 10 Oct 2013 08:02:32 +0000 (17:02 +0900)
[Title] Fixed copy & paste popup is displayed twice after chaning font size in email app.
[Issue#] P130812-03666
[Problem] copy & paste popup is displayed twice after chaning font size in email app.
[Cause] Condition to check IME state is wrong.
[Solution] changed condition to checking IME state properly.

Change-Id: Ic02f740aa9fce20d1688075133350fbcfb9217c7

Source/WebKit2/UIProcess/API/efl/tizen/TextSelection.cpp
Source/WebKit2/UIProcess/efl/InputMethodContextEfl.cpp

index 3db92b1..9350d4d 100755 (executable)
@@ -567,9 +567,9 @@ void TextSelection::updateHandlesAndContextMenu(bool isShow, bool isScrolling)
 
         InputMethodContextEfl* inputMethodContext = m_viewImpl->inputMethodContext();
         if (inputMethodContext) {
-            bool isIMEShow = inputMethodContext->isShow();
+            bool isIMEShow = InputMethodContextEfl::isSystemKeypadShow();
             int isIMEState = inputMethodContext->state();
-            if (!isIMEShow && isIMEState == ECORE_IMF_INPUT_PANEL_STATE_WILL_SHOW) {
+            if (!isIMEShow && (isIMEState == ECORE_IMF_INPUT_PANEL_STATE_WILL_SHOW)) {
                 requestToShow();
                 return;
             }
index 24c0661..e6089ed 100755 (executable)
@@ -77,7 +77,7 @@ Eina_Bool InputMethodContextEfl::windowPropertyChanged(void*, int, void* event)
                 pages[i]->setFocusUIEnabled(false);
         }
 #endif
-    } else {
+    } else if (propertyEvent->atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE) {
         if (ecore_x_e_virtual_keyboard_state_get(propertyEvent->win) == ECORE_X_VIRTUAL_KEYBOARD_STATE_ON)
             s_isSystemKeypadShow = true;
         else
@@ -634,7 +634,8 @@ void InputMethodContextEfl::onFocusIn()
 
     ecore_imf_context_focus_in(m_context.get());
     ecore_imf_context_input_panel_show(m_context.get());
-    setState(ECORE_IMF_INPUT_PANEL_STATE_WILL_SHOW);
+    if (!isSystemKeypadShow())
+        setState(ECORE_IMF_INPUT_PANEL_STATE_WILL_SHOW);
 }
 
 void InputMethodContextEfl::onFocusOut()
@@ -776,7 +777,8 @@ void InputMethodContextEfl::showIMFContext(const EditorState& editor, bool isUse
     resetIMFContext();
     ecore_imf_context_focus_in(m_context.get());
     ecore_imf_context_input_panel_show(m_context.get());
-    setState(ECORE_IMF_INPUT_PANEL_STATE_WILL_SHOW);
+    if (!isSystemKeypadShow())
+        setState(ECORE_IMF_INPUT_PANEL_STATE_WILL_SHOW);
 }
 
 void InputMethodContextEfl::hideIMFContext()