[entry & conformant] Support unfocusable clipboard
authorjae_hyun.cho <jae_hyun.cho@samsung.com>
Fri, 22 Mar 2013 08:11:02 +0000 (17:11 +0900)
committerSungho Kwak <sungho1.kwak@samsung.com>
Mon, 25 Mar 2013 06:35:02 +0000 (15:35 +0900)
Change-Id: I010e8946566a957567d36e94656d995ddee34e26

src/lib/elm_conform.c
src/lib/elm_entry.c
src/modules/ctxpopup_copypasteUI/copypaste.c

index 0014ff0..6db9369 100644 (file)
@@ -952,6 +952,8 @@ _clipboard_state_change(Evas_Object *obj, Ecore_X_Event_Window_Property *ev)
 
    if (state == ECORE_X_ILLUME_CLIPBOARD_STATE_OFF)
      {
+        // Tizen Only - SIP regions for virtual keypad and clipboard are the same in Tizen
+        edje_object_signal_emit(ELM_WIDGET_DATA(sd)->resize_obj, "elm,state,clipboard,off", "elm");
         evas_object_size_hint_min_set(sd->clipboard, -1, 0);
         evas_object_size_hint_max_set(sd->clipboard, -1, 0);
         // Tizen Only - SIP regions for virtual keypad and clipboard are the same in Tizen
@@ -963,6 +965,8 @@ _clipboard_state_change(Evas_Object *obj, Ecore_X_Event_Window_Property *ev)
      {
         elm_widget_display_mode_set(obj, EVAS_DISPLAY_MODE_COMPRESS);
         _autoscroll_objects_update(obj);
+        // Tizen Only - SIP regions for virtual keypad and clipboard are the same in Tizen
+        edje_object_signal_emit(ELM_WIDGET_DATA(sd)->resize_obj, "elm,state,clipboard,on", "elm");
         evas_object_smart_callback_call(obj, SIG_CLIPBOARD_STATE_ON, NULL);
      }
 }
index 179e1e9..e4068c6 100644 (file)
@@ -102,9 +102,6 @@ EVAS_SMART_SUBCLASS_IFACE_NEW
   _smart_interfaces);
 
 static Eina_List *entries = NULL;
-// TIZEN ONLY
-static Evas_Object *cnpwidgetdata = NULL;
-//
 
 struct _Mod_Api
 {
@@ -157,12 +154,6 @@ _select_word(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED_
    elm_object_scroll_freeze_pop(data);
 }
 
-static void
-_cnpinit(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
-{
-   cnpwidgetdata = data;
-}
-
 #ifdef HAVE_ELEMENTARY_X
 static Ecore_X_Window
 _cbhm_window_get()
@@ -224,7 +215,6 @@ _xclient_msg_cb(void *data, int type __UNUSED__, void *event)
      {
         if (elm_object_focus_get(obj) == EINA_TRUE)
           {
-             _cnpinit(obj, NULL, NULL);
              ecore_x_selection_secondary_set(elm_win_xwindow_get(data), "", 1);
 
              if (sd->cnp_mode != ELM_CNP_MODE_MARKUP)
@@ -233,11 +223,6 @@ _xclient_msg_cb(void *data, int type __UNUSED__, void *event)
                _cbhm_msg_send(data, "show1");
           }
      }
-   else if (!strcmp("INIT_CNPDATA", ev->data.b))
-     {
-        if (cnpwidgetdata == data)
-          _cnpinit(NULL, NULL, NULL);
-     }
 #endif
    return ECORE_CALLBACK_PASS_ON;
 }
@@ -673,7 +658,6 @@ void elm_entry_extension_module_data_get(Evas_Object *obj, Elm_Entry_Extension_d
    ext_mod->have_selection = sd->have_selection;
    ext_mod->password = sd->password;
    ext_mod->selmode = sd->sel_mode;
-   ext_mod->cnpinit = _cnpinit;
    ext_mod->context_menu = sd->context_menu;
    ext_mod->cnp_mode = sd->cnp_mode;
    ext_mod->viewport_rect = _viewport_region_get(obj);
@@ -1443,6 +1427,7 @@ _elm_entry_smart_on_focus(Evas_Object *obj)
    else
      {
         printf("[Elm_entry::Unfocused] obj : %p\n", obj); // TIZEN ONLY
+        _cbhm_msg_send(obj, "cbhm_hide"); // TIZEN ONLY : Hide clipboard
         edje_object_signal_emit(sd->entry_edje, "elm,action,unfocus", "elm");
         evas_object_focus_set(sd->entry_edje, EINA_FALSE);
         // TIZEN ONLY
@@ -1712,8 +1697,8 @@ _elm_entry_entry_paste(Evas_Object *obj,
 
    // TIZEN ONLY
 #ifdef HAVE_ELEMENTARY_X
-   if (cnpwidgetdata == obj)
-      ecore_x_selection_secondary_set(elm_win_xwindow_get(obj), "",1);
+   if (elm_widget_focus_get(obj))
+     ecore_x_selection_secondary_set(elm_win_xwindow_get(obj), "",1);
 #endif
    //
 }
@@ -2898,7 +2883,7 @@ _event_selection_clear(void *data __UNUSED__,
         return ECORE_CALLBACK_PASS_ON;
      }
 
-   if (cnpwidgetdata == data)
+   if (elm_widget_focus_get(data))
      {
         ELM_ENTRY_DATA_GET(data, sd);
         Elm_Sel_Format formats = ELM_SEL_FORMAT_MARKUP;
@@ -4283,7 +4268,7 @@ elm_entry_entry_insert(Evas_Object *obj,
    edje_object_part_text_insert(sd->entry_edje, "elm.text", entry);
    // TIZEN ONLY
 #ifdef HAVE_ELEMENTARY_X
-   if (cnpwidgetdata == obj)
+   if (elm_widget_focus_get(obj))
       ecore_x_selection_secondary_set(elm_win_xwindow_get(obj), "",1);
 #endif
    ///////////
index 1946ae5..45b3bce 100644 (file)
@@ -353,12 +353,11 @@ _clipboard_menu(void *data, Evas_Object *obj, void *event_info)
    // start for cbhm
 #ifdef HAVE_ELEMENTARY_X
    ecore_x_selection_secondary_set(elm_win_xwindow_get(obj), "",1);
-   ext_mod->cnpinit(data, NULL, NULL);
 #endif
    if (ext_mod->cnp_mode != ELM_CNP_MODE_MARKUP)
-     _cbhm_msg_send(obj, "show0");
+     _cbhm_msg_send(data, "show0");
    else
-     _cbhm_msg_send(obj, "show1");
+     _cbhm_msg_send(data, "show1");
    _ctxpopup_hide(obj);
    // end for cbhm
 }