conformant: Added "virtualkeypad,size,changed" smart callback. 03/135703/1 submit/tizen_3.0/20170626.041320
authorHosang Kim <hosang12.kim@samsung.com>
Fri, 23 Jun 2017 10:27:08 +0000 (19:27 +0900)
committerkim hosang <hosang12.kim@samsung.com>
Mon, 26 Jun 2017 04:05:16 +0000 (04:05 +0000)
When the virtualkeypad size is changed, applications get the notice.
Applications can do internal object calculation according to the exact
virtualkeypad size.

Change-Id: Ic1e551a885c0d371f33295b2db993c97a46160c6

src/lib/elm_conform.c

index 3a5a8303789f46510d92f6f32bfc7c60e0dc10f9..5f980531b713898f97b80b67c9c411858d466679 100644 (file)
@@ -29,6 +29,7 @@ static const char SOFTKEY_PART[] = "elm.swallow.softkey";
 
 static const char SIG_VIRTUALKEYPAD_STATE_ON[] = "virtualkeypad,state,on";
 static const char SIG_VIRTUALKEYPAD_STATE_OFF[] = "virtualkeypad,state,off";
+static const char SIG_VIRTUALKEYPAD_SIZE_CHANGED[] = "virtualkeypad,size,changed";
 static const char SIG_CLIPBOARD_STATE_ON[] = "clipboard,state,on";
 static const char SIG_CLIPBOARD_STATE_OFF[] = "clipboard,state,off";
 //TIZEN_ONLY(20161213): apply screen_reader_changed callback
@@ -38,6 +39,7 @@ static const char SIG_ATSPI_SCREEN_READER_CHANGED[] = "atspi,screen,reader,chang
 static const Evas_Smart_Cb_Description _smart_callbacks[] = {
    {SIG_VIRTUALKEYPAD_STATE_ON, ""},
    {SIG_VIRTUALKEYPAD_STATE_OFF, ""},
+   {SIG_VIRTUALKEYPAD_SIZE_CHANGED, ""},
    {SIG_CLIPBOARD_STATE_ON, ""},
    {SIG_CLIPBOARD_STATE_OFF, ""},
    //TIZEN_ONLY(20161213): apply screen_reader_changed callback
@@ -339,8 +341,14 @@ _conformant_part_sizing_eval(Evas_Object *obj,
                                                       (access, sx, sy, sw, sh);
           }
         if (sd->virtualkeypad)
-          _conformant_part_size_hints_set
-             (obj, sd->virtualkeypad, sx, sy, sw, sh);
+          {
+             Evas_Coord_Rectangle rect;
+
+             _conformant_part_size_hints_set
+                (obj, sd->virtualkeypad, sx, sy, sw, sh);
+             rect.x = sx; rect.y = sy; rect.w = sw; rect.h = sh;
+             evas_object_smart_callback_call(obj, SIG_VIRTUALKEYPAD_SIZE_CHANGED, (void *)&rect);
+          }
      }
 
    if (part_type & ELM_CONFORMANT_SOFTKEY_PART)