jypark pushed a commit to branch master.

commit 5ea23821214a818b98acb904a4a427798abad68a
Author: Jiyoun Park <[email protected]>
Date:   Tue Mar 5 12:44:46 2013 +0900

     Fix elm_conform didn't set size hint when keypad on
     and check each window's property before zone property check
---
 ChangeLog             |  4 ++++
 NEWS                  |  1 +
 src/lib/elm_conform.c | 23 ++++++++++++++++++++---
 3 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 3972e76..4e6a542 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1096,3 +1096,7 @@
 2013-03-04  Junki Cho
 
         * Improved gengrid item append performance.
+
+2013-03-05 Jiyoun Park
+
+        * Fix elm_conform didn't set size hint when keypad on.
diff --git a/NEWS b/NEWS
index fbb286d..6d3c14e 100644
--- a/NEWS
+++ b/NEWS
@@ -168,6 +168,7 @@ Fixes:
    * Fix initial value of the spinner on the first mouse move.
    * Fix elm_index to send a signal to the selected item in smart theme.
    * Focus highlight should not be shown on (0 ,0).
+   * Fix elm_conform didn't set size hint when keypad on.
    
 Removals:
 
diff --git a/src/lib/elm_conform.c b/src/lib/elm_conform.c
index e94de1b..443825f 100644
--- a/src/lib/elm_conform.c
+++ b/src/lib/elm_conform.c
@@ -772,13 +772,21 @@ _virtualkeypad_state_change(Evas_Object *obj, 
Ecore_X_Event_Window_Property *ev)
 
    Ecore_X_Window zone = ecore_x_e_illume_zone_get(ev->win);
    Ecore_X_Virtual_Keyboard_State state =
-      ecore_x_e_virtual_keyboard_state_get(zone);
+      ecore_x_e_virtual_keyboard_state_get(ev->win);
+
+   DBG("[KEYPAD]:window's state pid=%d, win=0x%x, state=%d.", getpid(), 
ev->win, state);
+   if (state == ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN)
+     {
+        state = ecore_x_e_virtual_keyboard_state_get(zone);
+        DBG("[KEYPAD]:zone's state pid=%d, zone=0x%x, state=%d.", getpid(), 
zone, state);
+     }
 
    if (sd->vkb_state == state) return;
    sd->vkb_state = state;
 
    if (state == ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF)
      {
+        DBG("[KEYPAD]:ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF");
         evas_object_size_hint_min_set(sd->virtualkeypad, -1, 0);
         evas_object_size_hint_max_set(sd->virtualkeypad, -1, 0);
         elm_widget_display_mode_set(obj, EVAS_DISPLAY_MODE_NONE);
@@ -786,6 +794,8 @@ _virtualkeypad_state_change(Evas_Object *obj, 
Ecore_X_Event_Window_Property *ev)
      }
    else if (state == ECORE_X_VIRTUAL_KEYBOARD_STATE_ON)
      {
+        DBG("[KEYPAD]:ECORE_X_VIRTUAL_KEYBOARD_STATE_ON");
+        _conformant_part_sizing_eval(obj, ELM_CONFORMANT_VIRTUAL_KEYPAD_PART);
         elm_widget_display_mode_set(obj, EVAS_DISPLAY_MODE_COMPRESS);
         _autoscroll_objects_update(obj);
         evas_object_smart_callback_call(obj, SIG_VIRTUALKEYPAD_STATE_ON, NULL);
@@ -799,7 +809,15 @@ _clipboard_state_change(Evas_Object *obj, 
Ecore_X_Event_Window_Property *ev)
 
    Ecore_X_Window zone = ecore_x_e_illume_zone_get(ev->win);
    Ecore_X_Illume_Clipboard_State state =
-      ecore_x_e_illume_clipboard_state_get(zone);
+      ecore_x_e_illume_clipboard_state_get(ev->win);
+
+   DBG("[CLIPBOARD]:window's state pid=%d, win=0x%x, state=%d.", getpid(), 
ev->win, state);
+
+   if (state == ECORE_X_ILLUME_CLIPBOARD_STATE_UNKNOWN)
+     {
+        state = ecore_x_e_illume_clipboard_state_get(ev->win);
+        DBG("[CLIPBOARD]:zone's state pid=%d, zone=0x%x, state=%d.", getpid(), 
zone, state);
+     }
 
    if (sd->clipboard_state == state) return;
    sd->clipboard_state = state;
@@ -834,7 +852,6 @@ _on_prop_change(void *data,
 
    if (ev->atom == ECORE_X_ATOM_E_ILLUME_ZONE)
      {
-
                DBG("pid=%d, win=0x%x, ECORE_X_ATOM_E_ILLUME_ZONE.\n", pid, 
ev->win);
         Conformant_Part_Type part_type;
 

-- 

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb

Reply via email to